描述
给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。
如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。
分析
统计这个数二进制有多少个1,超过1个或者是负数都返回false。
class Solution {
public boolean isPowerOfTwo(int n) {
if(n == Integer.MIN_VALUE){
return false;
}
boolean ans = false;
for(int i = 0; i < 32; i++){
if((n >> i & 1) == 1){
if(ans){
return false;
}else{
ans = true;
}
}
}
return ans;
}
}