可从颠倒二进制位中吸取步骤。
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 }