检测一个整数n是否是2的幂次方。
首先判断是不是偶数,如果是奇数,直接返回False。
class Soultion:
def checkPowerOf2(self,n):
if n % 2 != 0:
return False
ans = 1
for i in range(31):
if ans == n :
return True
ans = ans << 1
return False
# 采用正向运算的方法,就相当于将2的整数以内的所有幂次方拿出来验证
# 查看n是不是在这个序列里面,如果是直接返回True,函数运行结束。
# <<符号,在二进制的基础上将位数向左移动一位,如果没有数,就用0补充。
if __name__ == '__main__':
num = int(input('请输入数字:'))
soultion = Soultion()
print(soultion.checkPowerOf2(num))