写出代码判断一个整数是不是2的N次方。
时间: 2024-02-05 10:10:38 浏览: 83
输入一个正整数,判断是不是素数(C++)
可以使用位运算来判断一个整数是否是2的N次方,因为2的N次方的二进制表示只有最高位是1,其他位都是0,那么如果对一个2的N次方减去1,得到的二进制表示就是N个1,因此可以通过按位与运算来判断一个数是否是2的N次方。
以下是 Python 的实现代码:
```python
def is_power_of_two(n: int) -> bool:
"""
判断一个整数是否是2的N次方
"""
return n & (n - 1) == 0 and n != 0
```
这个函数首先判断 n 是否等于0,如果等于0,则不是2的N次方;否则,判断 n & (n - 1) 是否等于0,如果等于0,则说明 n 是2的N次方,否则不是。
阅读全文