比如2: 10 是2的幂次方
再比如8: 1000 也是2的幂次方
但是6 : 就不是2的幂次方
法1:
不断的 /2 如果能除尽就是2的幂次方
def is_mi(x):
i = x
while x:
x = x / 2
if x == 1:
print(i, "是2的幂次方")
break
if x < 1:
print(i, "不是2的幂次方")
break
法2:
x & (x -1) — > 把最后一位的1去掉
if x & (x - 1) == 0 :
x就是2的幂次方
代码如下:
def isPower(x):
if x != 0 and not x & (x - 1):
print(x, "是2的幂次方")