[算法]判断一个数是不是2的N次方时间:2023-03-09 02:08:43 如果一个数是2^n,说明这个二进制里面只有一个1。除了1. a = (10000)b a-1 = (01111)b a&(a-1) = 0。 如果一个数不是2^n, 说明它的二进制里含有多一个1。 a = (1xxx100)b a-1=(1xxx011)b 那么 a&(a-1)就是 (1xxx000)b, 而不会为0。 所以可以用这种方法判断一个数是不2^n。