题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
解题思路
int类型整数的表示范围
int 最大最小范围
位运算,
整数的范围:
无符号位,0~(2^32)-1
有符号位,-(2^31) ~ (2^31) -1
Python代码
# -*- coding:utf-8 -*-
class Solution:
def NumberOf1(self, n):
# write code here
count = 0
if n < 0:
n = n & 0xffffffff
while n:
count += 1
n = (n - 1) & n
return count
# -*- coding:utf-8 -*-
class Solution:
def NumberOf1(self, n):
# write code here
count=0;
for i in range(0,32):
if n&1:
count=count+1
n=n>>1
return count
s = Solution()
print(s.NumberOf1(7))