class Solution: def NumberOf1(self, n): # write code here # 补码:正数不变,负数是它的正数的反码加一 # n & 0xFFFFFFFF # way 1 ''' count = 0 for i in str(bin(n)): if i == '1': count += 1 return count ''' # way 2 ''' count = 0 for i in range(32): mask = 1 << i if n & mask != 0: count += 1 return count ''' # way 3 count = 0 while n: n = n & (n-1) count += 1 n = n & 0xFFFFFFFF return count