二进制计算
显然,一个很简单的思路是一个一个数
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位与才能变成补码形式

京公网安备 11010502036488号