原题链接:191. 位1的个数
解题思路:
- 利用位运算
n = n & (n - 1),每次可以清除二进制数中最后一个1。
- 每次循环进行上述操作,并统计
1的数量,直到n被清零为止。
/**
* @param {number} n - a positive integer
* @return {number}
*/
var hammingWeight = function (n) {
let count = 0; // 统计1的数量
// 不断循环直到1被清空
while (n !== 0) {
count++; // 每清除一个1就计数一次
n = n & (n - 1); // 每次清除最后一位的1
}
return count;
};