常用位操作
- (x & 1) == 1 ---等价---> (x % 2 == 1)
- (x & 1) == 0 ---等价---> (x % 2 == 0)
- x / 2 ---等价---> x >> 1
- x &= (x - 1) ------> 把x最低位的二进制1给去掉
- x & -x -----> 得到最低位的1
- x & ~x -----> 0
指定位置的位运算
- 将X最右边的n位清零:x & (~0 << n)
- 获取x的第n位值:(x >> n) & 1
- 获取x的第n位的幂值:x & (1 << n)
- 仅将第n位置为1:x | (1 << n)
- 仅将第n位置为0:x & (~(1 << n))
- 将x最高位至第n位(含)清零:x & ((1 << n) - 1)
- 将第n位至第0位(含)清零:x & (~((1 << (n + 1)) - 1))