二进制中1的个数

###题目

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

解题思路:

正数使用bin方法和count方法统计1个数;负数需要对其绝对值减1统计1的个数,然后被32减去。

###代码实现:

1
2
3
4
5
6
7
8
# -*- coding:utf-8 -*-
class Solution:
def NumberOf1(self, n):
# write code here
if n>=0:
return bin(n).count('1')
else:
return 32-bin(abs(n)-1).count('1')