(3)检测2的幂次

1. 问题描述

检测一个整数n是否为2的幂次。

2. 问题示例

n=4, 返回True; n=5, 返回False

3. 代码实现

# 参数num是一个整数
# 返回是True和False 

class Solution:
    def checkPowerOf2(self,num):
        ans =1    #从1开始
        for i in range(31):   # 为什么是31呢?因为整数int最大直接为4个字节,32位
            if ans == num:
                return True
            ans  =  ans<<1   # << 表示左一位
        return False

if __name__ == '__main__':
    temp = Solution()
    num1 = 16 
    num2 = 17
    print(("输入:" + str(num1)))
    print(('输出:' + str(temp.checkPowerOf2(num1))))
    print(('输入:' + str(num2)))
    print(('输出:' + str(temp.checkPowerOf2(num2))))

4. 结果

输入:16
输出:True
输入:17
输出:False

你可能感兴趣的:((3)检测2的幂次)