思想:
运用a & b运算,将a,b转成二进制数,然后对每个位置取 与 运算,得到结果
2的幂都会出现这样的情况,例如:
8: 1000
7: 0111
8&7:0000
所以会出现 (n & n-1) == 0
1.n是非正数,返回false
2.判断是否(n & n-1) == 0,是返回true
3.其余返回false
代码:
class Solution {
public boolean isPowerOfTwo(int n) {
if(n<=0) return false;
if((n&n-1)==0) return true;
return false;
}
}