题目
描述
用 O(1) 时间检测整数 n 是否是 2 的幂次。
样例
n=4
,返回 true
;
n=5
,返回 false
.
解答
思路
- 大于零。
- 2的整数幂次的二进制表示都是0...010...0,其减1后二进制表示为0...001...1,两个数按位取且(&)等于零。
代码
代码语言:javascript复制class Solution {
/*
* @param n: An integer
* @return: True or false
*/
public boolean checkPowerOf2(int n) {
// write your code here
return (n>0)&&((n&(n-1))==0);
}
};