问一个问题:有 byte[] dst ,7 个字节。 如何给前面 12bit 赋值为 0xfff 。给第 13bit 赋值为 0 ?
1 catro 2016-06-07 16:50:33 +08:00 dst[0] = 0xFF; dst[1]在没有初始值的情况下, dst[1] = 0xF0; 有初始值的情况下, dst[1] != 0xF0; dst[1] &= 0xF7; |
![]() | 2 zodiac1111 2016-06-07 18:18:53 +08:00 位域如何? |
3 am241 2016-06-07 19:10:22 +08:00 变量内部 位清零: x &= 0b1110111; 位赋值: x |= 0b0001000; |
![]() | 4 sfqtsh 2016-06-07 19:39:03 +08:00 via Android ![]() C 语言有 byte 类型?有 type[] var 这种写法? |
![]() | 5 chiu 2016-06-07 19:42:46 +08:00 暂且认为你说的“前面 12bit ”,是指“低 12bit ”。 *dst |= 0x00000000000FFF; *dst &= 0xFFFFFFFFFFEFFF; |
6 Neveroldmilk 2016-06-08 09:20:13 +08:00 @chiu 哥们,一个 16 进制数代表 4bit...... |
![]() | 7 chiu 2016-06-08 09:52:16 +08:00 @Neveroldmilk 对啊, LZ 不是说 dst 长度为 7 个字节吗? |
![]() | 8 adadada 2016-06-08 12:29:29 +08:00 via iPhone 这个有给定尾端吗? |
![]() | 9 ilotuo 2016-06-08 13:05:10 +08:00 uint64_t *tmp = dst; tmp |=0xfff; tmp &=(~0x1000); |