我们可以发现2的次方数n和n-1的二进制对应如下:
2 10 01
4 100 011
8 1000 0111
16 10000 01111
。。。。。。。。。。。。。。。
即n&(n-1)=0
而要确定n是2的几次方则直接数>>1右移次数即可
我们可以发现2的次方数n和n-1的二进制对应如下:
2 10 01
4 100 011
8 1000 0111
16 10000 01111
。。。。。。。。。。。。。。。
即n&(n-1)=0
而要确定n是2的几次方则直接数>>1右移次数即可