二进制计算
显然,一个很简单的思路是一个一个数
class Solution: def NumberOf1(self, n): # write code here if n<0: n=n&0xffffffff return bin(n).count("1")
位与
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
思路很巧妙,可参考牛客二进制中1的个数讨论
class Solution: def NumberOf1(self, n): # write code here count=0 if n < 0: n = n & 0xffffffff while n!=0: n=n&(n-1) count+=1 return count
注意,使用java或者c++写时不需if判断,因为他两默认转的就是补码形式
而python不是,需要与0xffffffff位与才能变成补码形式