编程之美中,判断一个数是否为2的方幂给出的判断是:
n > 0 && ((n&(n-1)) == 0)
我的理解:如果n为奇数的话,最低位肯定为1,与比他小一的数与,只会消去最低位的1.如果n为偶数的话,则与它小1的数相与就为0
编程之美中,判断一个数是否为2的方幂给出的判断是:
n > 0 && ((n&(n-1)) == 0)
我的理解:如果n为奇数的话,最低位肯定为1,与比他小一的数与,只会消去最低位的1.如果n为偶数的话,则与它小1的数相与就为0