Python代码如下:
# -*- coding:utf-8 -*-
class Solution:
def NumberOf1(self, n):
# write code here
return sum([n>>i&1 for i in range(0,32)])
需要注意的是:
1.按位与运算是补码之间的运算,所以这道题能用按位与进行计算
2.系统中使用32位二进制补码表示数字,所以这里向左一共位移32位
参考文献:
牛客网上面别人的实现:
https://www.nowcoder.com/profile/4627871/codeBookDetail?submissionId=8243218
Python中位运算的讲解:
https://www.cnblogs.com/everest33Tong/p/6586634.html