如何在整数中取消设置特定位
说,我有一个整数像,我想解开第三位得到;如果我有,我仍然会得到;我怎样才能实现它?10101
10001
10001
10001
unset(int i, int j)
int i= 10101 or 10000
int j = 00100
说,我有一个整数像,我想解开第三位得到;如果我有,我仍然会得到;我怎样才能实现它?10101
10001
10001
10001
unset(int i, int j)
int i= 10101 or 10000
int j = 00100
假设您从右侧索引位,这应该可以取消设置中的特定位:value
int mask = 1 << bitIndex;
value &= ~mask;
您可以使用类似的代码设置位:
value |= mask;
哪里和以前一样。(这假设位索引从 0 开始。mask
清除或取消设置一点
使用按位 AND 运算符 (&) 清除一个位。
number &= ~(1 << x);
这将清除位 x。您必须使用按位 NOT 运算符 (~) 反转位字符串,然后 AND 它。
注意:这里 x 是从 0 到 LSB 的位的位置。