说,我有一个整数10101,我想取消第三位得到10001; 如果我有10001,我仍然会得到10001; 我怎么能实现它?
unset(int i, int j)
int i= 10101 or 10000
int j = 00100
Run Code Online (Sandbox Code Playgroud)
Ted*_*opp 43
假设您正在从右侧索引位,这应该可以解决以下问题value:
int mask = 1 << bitIndex;
value &= ~mask;
Run Code Online (Sandbox Code Playgroud)
您可以使用类似的代码设置该位:
value |= mask;
Run Code Online (Sandbox Code Playgroud)
其中,mask如前那样.(这假设位索引从0开始.)
Jee*_*tel 10
清除或取消一点
使用按位AND运算符(&)清除一下.
number &= ~(1 << x);
Run Code Online (Sandbox Code Playgroud)
这将清除位x.必须使用按位NOT运算符(〜)反转位串,然后运行AND.
注意:这里x是从0到LSB的位的位置.
| 归档时间: |
|
| 查看次数: |
22508 次 |
| 最近记录: |