问题
如何将最低有效位更改为0而不影响值的其余部分,例如:0xffffffff
,例如在C或Python中?我不是一个数学天才,所以对我来说,要找到如何做到这一点是一件很麻烦的事。
解决方案
n = 0 // clear this bit
0xffffffff &= ~(1U << n) = 0xfffffffe
最佳答案
尝试清除最低有效位:
int x = 0xffffffff;
...
/* clear least significant bit */
x &= ~1;
设置LSB
int x = 0xffffffff;
...
/* set least significant bit */
x |= 1;
更改LSB
int x = 0xffffffff;
...
/* change least significant bit */
x ^= 1;
如果您想设置/清除/更改位
n
,请将1
更改为(1U<<n)
。