位运算
位运算是把数字用二进制表示之后,对每一位上0或者1的运算。
与(&)    0 & 0 = 0   1 & 0 = 0   0 & 1 = 0   1 & 1 = 1
或(|)    0 | 0 = 0   1 | 0 = 1   0 | 1 = 1   1 | 1 = 1
异或(^)  0 ^ 0 = 0   1 ^ 0 = 1   0 ^ 1 = 1   1 ^ 1 = 0
把一个整数减去1之后再和原来的整数做位与运算,得到的结果相当于把整数的二进制表示中最右边的1变为0。
很多二进制问题都可以用这种思路解决。




