判断一个数字是否是2的幂次方

这段代码可以说是人生中比较自豪的一段代码了,直接想到了位运算,因为2的幂次方化为二进制一定只有一个1

bool isPowerOfTwo(int n) {
    if(n==0)return false;
    int bits=0;
    int k =n;
    while(k!=0){
        if(k&1==1)bits++;
        if(bits>=2)return false;
        k=k>>1;
    }
    return true;
}

猜你喜欢

转载自blog.csdn.net/weixin_41580638/article/details/88067665