O(1)时间检测2的幂次
用 O(1) 时间检测整数 n 是否是 2 的幂次。
样例
n=4
,返回 true
;
n=5
,返回 false
.
注意:判断是否为2的幂次的方法是n&(n-1),因为2的幂次的二进制表示为1后面接很多零,而减去1后为0后面接很多1,按位与后就全为0了。
public class Solution {
/*
* @param n: An integer
* @return: True or false
*/
public boolean checkPowerOf2(int n) {
boolean a=false;
// write your code here
if(n>0&&n&(n-1)==0){
a=true;
}
return a;
}
}