基本的位运算的运用
a <<= 1equals toa = 2a
Number of 1 Bits
- 掌握检查每个bit是否为1的技巧
- 运用mask,进行与运算,如果AND的结果为1,那么证明与mask的1在同一位置的bit为1
- 然后在把mask向左位移一位
- 另一个办法,通过不断的把最低位的1变成0,直至最终数为0,得到1的个数
- 这里需要借助一个trick
n &= (n-1)能够把最低位的1变成0
- 这里需要借助一个trick
- 方法三把数字不断向右移动:
for (int i=0;i<32;i++) count += (num >> i) & 1;