给定一个整数,编写一个函数来判断它是否是 2 的幂次方。
示例 1:
输入: 1
输出: true
解释: 20 = 1
示例 2:
输入: 16
输出: true
解释: 24 = 16
示例 3:
输入: 218
输出: false
思路:(2的n次幂) 与 (2的n 次幂- 1)的并集为0
def isPowerOfTwo(n):
n = int(n)
if n<=0:
return False
else:
return (n&(n-1)==0)
if __name__ == '__main__':
print(isPowerOfTwo(10))
191
编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。
示例 :
输入: 11
输出: 3
解释: 整数 11 的二进制表示为 00000000000000000000000000001011
示例 2:
输入: 128
输出: 1
解释: 整数 128 的二进制表示为 00000000000000000000000010000000
def hammingWeight(n):
if n < 0:
return 0
num = 0
while(n):
n=n&(n-1)
num +=1
return num
if __name__ == '__main__':
print(hammingWeight(8))