若一个数是2的幂数
那么二进制表示一定是
10000…
如:
4 100
8 1000
16 10000
32 100000
64 1000000
……
那么这么数减去1一定是
01111…
例如:
4-1 011
8-1 0111
16-1 01111
32-1 011111
64-1 0111111
……
那么快速判断一个数是否为2的幂数
公式表示为:
n & (n-1)==0 (n>0)
函数表示:
int two2(int n) {
return n>0?n & (n - 1) ==0:0;
}