📜  检查数字是否是 2 的幂 python (1)

📅  最后修改于: 2023-12-03 15:40:34.170000             🧑  作者: Mango

Python程序:检查数字是否是2的幂

有时候我们需要判断一个数字是否是2的幂。在Python中,可以通过如下代码实现:

def is_power_of_two(n: int) -> bool:
    if n <= 0:
        return False
    return n & (n - 1) == 0

这个代码使用位运算的技巧:如果n是2的幂,则n的二进制表示中只有1个1(例如2的3次方是0b1000)。而n-1将这个1变成了0,并旁边所有的0变成了1。这时候n & (n-1)得到的结果就是0。因此这个代码只需要判断结果是否为0即可判断数字是否是2的幂。

我们也可以使用内置的math库来实现这段代码。代码如下:

import math
def is_power_of_two(n: int) -> bool:
    if n <= 0:
        return False
    return math.log2(n).is_integer()

这段代码使用math.log2()函数来计算n的对数。如果对数是整数,则n是2的幂。

无论选择哪种方式,判断一个数字是否是2的幂都非常方便。如果你需要在自己的代码中进行此类操作,可以直接使用上述代码片段。