分析:
2的方幂的二进制表达是一种有规律的数,如:2 = 10,4 = 100, 8 = 1000,等等,也就是说它的二进制表示中只有最高位为1,其余的为0,那么想想,如果把这个数减一的话其二进制就变成了又一个有规律的数,如:2-1=01,4-1=011,8-1=0111,看看,把减一的结果与它们本身想与,是不是为0了。好了,结果出来了。
if(n>0&&(n&(n-1))==0)
n是2的方幂
2的方幂的二进制表达是一种有规律的数,如:2 = 10,4 = 100, 8 = 1000,等等,也就是说它的二进制表示中只有最高位为1,其余的为0,那么想想,如果把这个数减一的话其二进制就变成了又一个有规律的数,如:2-1=01,4-1=011,8-1=0111,看看,把减一的结果与它们本身想与,是不是为0了。好了,结果出来了。
if(n>0&&(n&(n-1))==0)
n是2的方幂