问一个问题:有 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 1
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); |