题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
class Solution:
# 方法一:n右移
def numberOf1(self, n):
count=0
# int占4个字节,是32位
for i in range(32):
# 进行与操作
if n&1:
count=count+1
# 进行位右移,左边补0
n=n>>1
return count
# 方法二
def numberOf2(self, n):
if n>0:
count = bin(n).replace("0b","").count("1")
else:
count = bin(2**32+n).replace("0b","").count("1")
return count
if __name__=="__main__":
solution = Solution()
a = solution.numberOf1(12)
print(a)