編寫一個函數,輸入是一個無符號整數(以二進制串的形式),返回其二進制表達式中數字位數為 ‘1’ 的個數(也被稱為漢明重量)。
注意,輸入的是整型數值,不是字符串
示例 1:
輸入:00000000000000000000000000001011
輸出:3
解釋:輸入的二進制串 00000000000000000000000000001011 中,共有三位為 ‘1’。
位運算:每次執行n & (n - 1) ,就會消除掉 n 的二進制中最後一個出現的 1。
執行 n & (n - 1) 使得 n 變成 0 的操作次數,就是 n 的二進制中 1 的個數。
class Solution:
def hammingWeight(self, n: int) -> int:
res = 0
while n>0:
res+=1
n &=n-1
return res