题目描述:
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
python实现的时候,按照剑指offer的方法(循环用while n ),输入负数的时候,代码总是会陷入无限循环
两种解决方案:
while n 改为 for i in range(32)
或者添加:
if n<0:
n = n & 0xffffffff
注意:python要使用n & 0xffffffff得到一个数的补码
参考博客:https://blog.csdn.net/fuxuemingzhu/article/details/79512764