保留最右边的1,其余位置变为0
x & (-x)
判断一个数是否为2的n次方
x & (x-1) == 0
左移(<<):最左位丢弃,最右位补0,相当于乘以2
带符号右移(>>):正数,最左位补0;负数,最左位补1;最右位丢弃,相当于除以2
无符号右移(>>>):最左位补0,最右位丢弃,相当于除以2
异或(^):相同为0,不同为1
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0A ^ A = 0
A ^ B ^ B = A ^ 0 = A