作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我想将值的第 2 位设置为 0
,以下两者有什么区别:
value = value & (1<<2);
value = value & 0x2;
最佳答案
当使用按位与时,您将清除掩码中未设置的所有位。所以你实际上只保留了一点。如果您只想清除一位,请将除您想要的位之外的所有位都设置为 1。您可以使用 ~
运算符反转掩码中的所有位,如下所示:
value = value & ~(1<<2);
value = value & ~(0x2);
也就是说,这两个语句清除不同的位。在第一种情况下,1<<2
计算结果为 4,即 00000100
或0x04
。在第二种情况下,0x2
是 00000010
。它们的倒置是11111011
和11111101
分别。
关于c - 按位移位与十六进制值的 AND 运算之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38152247/
我是一名优秀的程序员,十分优秀!