按位与:
n&(n-1)作用:将n的二进制表示中的最低位为1的改为0,其余不变。
先看一个简单的例子:
n = 10100(二进制),则(n-1) = 10011 ==》n&(n-1) = 10000
可以看到原本最低位为1的那位变为0。
与运算:
- n &1 (与操作): 判断 n 二进制最右一位是否为 1 ;
- n >> 1 (移位操作): n 右移一位(可理解为删除最后一位)。
按位与:
n&(n-1)作用:将n的二进制表示中的最低位为1的改为0,其余不变。
先看一个简单的例子:
n = 10100(二进制),则(n-1) = 10011 ==》n&(n-1) = 10000
可以看到原本最低位为1的那位变为0。
与运算: