剑指Offer(Python多种思路实现):二进制中1的个数
题目:二进制中1的个数
题:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
解题思路一:
class Solution:
def hamming_weight(n):
count = 0
for _ in range(32):
count += (n&1==1)
n >>= 1
return count
解题思路二:
def hamming_weigth(n):
bits = 0
while n:
bits += 1
n = (n-1) & n
return bit