剑指offer 15二进制中1的个数
题目描述: 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量).)。
方法一:逐位判断
python的为运算符是对十进制数的二进制进行操作,返回十进制数.
a = 60 #0011 1100
b = 13 #0000 1101
例如:
a = 14 #1110
b = 9 #1001
c = a & b #1000
print(c)
#输出 c = 8
代码实现:
class Solution:
def hammingWeight(self, n: int) -> int:
count = 0
for i in range(32): #最多移31位
if n & (1<<i):
count +=1
#或者
#while n:
#count += n & 1
#n = n>>1
return count