請實現(xiàn)一個函數(shù)石洗,輸入一個整數(shù),輸出該數(shù)二進制表示中 1 的個數(shù)紧显。例如讲衫,把 9 表示成二進制是 1001,有 2 位是 1孵班。因此涉兽,如果輸入 9,則該函數(shù)輸出 2篙程。
示例 1:
輸入:00000000000000000000000000001011
輸出:3
解釋:輸入的二進制串 00000000000000000000000000001011 中枷畏,共有三位為 '1'。
示例 2:
輸入:00000000000000000000000010000000
輸出:1
解釋:輸入的二進制串 00000000000000000000000010000000 中虱饿,共有一位為 '1'矿辽。
示例 3:
輸入:11111111111111111111111111111101
輸出:31
解釋:輸入的二進制串 11111111111111111111111111111101 中,共有 31 位為 '1'郭厌。
/**
* @param {number} n - a positive integer
* @return {number}
*/
var hammingWeight = function(n) {
let cnt = 0
while(n) {
cnt += 1;
n &= n-1
}
return cnt
};