#1486. T2-19-3 判断一个数是否是2的幂

T2-19-3 判断一个数是否是2的幂

说明

编写一个程序,判断给定的正整数是否是2的幂。

输入格式

一个正整数 n。

输出格式

如果 n 是2的幂,输出 yes。否则,输出 no。
8
yes

提示

- isPowerOfTwo 函数通过位运算判断一个数是否为2的幂。 

    - return (n > 0) && (n & (n - 1)) == 0;: 

        - (n > 0):首先检查 n 是否大于 0,因为负数和 0 不能是2的幂。

        - (n & (n - 1)) == 0:如果 n 是2的幂,那么 n 的二进制表示中只有一位是 1。n - 1 的二进制表示中所有 1 位都变成 0,n 和 n - 1 位与操作结果应为 0。

来源

T2-19二进制和快速幂