给定一个整数,编写一个函数来判断它是否是 2 的幂次方。
示例 1:
输入: 1
输出: true
解释: 20 = 1
这里使用了公式 n&(n-1)为把位置在最后的1转成0
2的幂次方的二进制里只有1个1,根据这个性质把这唯一的1转换成0之后必然和0相等,如果不相等就说明不是2的幂次方
class Solution {
public boolean isPowerOfTwo(int n) {
if(n<=0){
return false;
}
return 0==(n&(n-1));
}
}