Leetcode Link: 191. 位1的个数 - 力扣(LeetCode) 剑指 Offer 15. 二进制中1的个数 - 力扣(LeetCode)
题目

解法一
思路: 参考函数Python-bin()
注意从第2位开始才是真正的二进制起点。
题解:
class Solution:
def hammingWeight(self, n: int) -> int:
s = bin(n)
return s.count('1')解法二
思路:采用位运算的方法,每次判断最低位有没有1,然后右移一位直至不能右移为止
注意本题的循环跳出条件
题解:
class Solution:
def hammingWeight(self, n: int) -> int:
res = 0
while(n!=0): # 注意跳出的条件
res += n & 1
n = n >> 1
# n >>= 1 也行,类似 n += 1
return res