【题目描述】
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
【解题思路】
一个整数在内存中占4个字节,一个字节等于8个比特,所以一个整数在内存中存储时占32位,逐渐右移与看每一位是否为1即可。用Python实现的代码如下:
# -*- coding:utf-8 -*-
class Solution:
def NumberOf1(self, n):
# write code here
cnt = 0
for i in range(32):
cnt += (n >> i) & 1
return cnt