参考:算法爱好者
实现一个方法,判断一个正整数是否是2的乘方,是返回true,不是返回false?
将该正整数N转化为二进制,N&N-1 == 0
十进制 二进制 N-1 N&N-1 是否是2的乘方
8 1000B 111B 0 是
16 10000B 1111B 0 是
32 100000B 11111B 0 是
100 1100100B 1100011B 1100000B 否