如何将一个字节中的多个位设为1或0?
c语言吧
全部回复
仅看楼主
level 7
2022年10月06日 12点10分 1
level 14
val = ((1 << width) - 1) << offset;
设为1,x |= val;
设为0,x &= ~val;
2022年10月06日 13点10分 3
-1这一步好精髓[大拇指]
2022年10月07日 10点10分
可以翻译成中文吗?[菜狗]
2022年10月06日 14点10分
val是临时变量,width是需要设置的个数,offset是最低位是第几位
2022年10月06日 14点10分
将变量x从第2位开始,连续3个位设成1。x |= ((1 << 3) - 1) << 2;
2022年10月06日 14点10分
level 11
楼上妙啊
2022年10月07日 07点10分 5
level 8
把你要修改的位标1,比如修改第358位,那就是label = 二进制(00101001),然后把你要修改的字节和label数进行按位或|运算。这是设为1,
要修改的字节 |= label
设为0也差不多,
要修改的字节 &= ~label
取反也差不多,
要修改的字节 ^= label
2022年10月07日 10点10分 7
level 6
直接bitset
2022年10月07日 10点10分 8
level 3
蒙版
2022年10月07日 12点10分 9
level 1
掩码mask
2022年10月08日 03点10分 11
level 1
掩码
2022年10月08日 05点10分 12
level 1
& 和丨进行位操作
2022年10月08日 06点10分 13
1