题目描述:
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
思路:
python 中的bin函数会返回一个二进制字符串,需要注意的是负数,如果直接bin一个负数,会返回它的绝对值的二进制,
如果一个数和0xffffffff相与,则会返回对应的编码格式(正数不变,负数变为补码对应的10进制数)
代码:
class Solution:
def NumberOf1(self, n):
# write code here
return bin(n & 0xffffffff).count('1')