Java LeetCode 231. 2的幂

给定一个整数,编写一个函数来判断它是否是 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));
    }
}

猜你喜欢

转载自blog.csdn.net/sakura_wmh/article/details/112736040