如果一个数是2的n次方,则化成二进制数肯定是 1000...000 的形式,那么 假设这个数是x,则 x-1 肯定是 0111...111 的形式,位数比x少一位
那么 x & (x-1) 则有
1000...000
&
0111...111
0000...000
所以当 x & (x-1) = 0时,说明x是2的n次方