位 1 的个数
可从颠倒二进制位中吸取步骤。
循环
function hammingWeight(n: number): number {
let ret = 0
for (let i = 0; i < 32; i++) {
if (n & 1) {
ret++
}
n >>>= 1
}
return ret
}
位运算
从最低位的 1 开始翻转。
function hammingWeight(n: number): number {
let ret = 0
while (n) {
n &= n - 1
ret++
}
return ret
}