题目描述:位运算—二进制中一的个数
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
Python测试:
// An highlighted block
class Solution:
def NumberOf1(self, n):
# write code here
flag = 1
count = 0
maxBit = 32
for i in range(maxBit):
if n & flag:
# print("n: ", n)
count+=1
flag = flag<<1
# print("flag: ", flag)
return count
if __name__ == "__main__":
a = Solution()
print(a.NumberOf1(-13))
// An highlighted block
class Solution:
def NumberOf1(self, n):
# write code here
count = 0
if n<0:
n=n&0xFFFFFFFF #把负号去掉,如果负号在后面会陷入死循环
return bin(n).count('1')
while n:
n &= n-1
count += 1
return count
总结:
二进制中一的个数:
https://blog.csdn.net/qq_38441207/article/details/88658007