publicclassSolution { // you need to treat n as an unsigned value publicinthammingWeight(int n) { intmask=1, ans = 0; while (n != 0) { ans += 1; n = n & (n - 1); } return ans; } }
publicclassSolution { // you need to treat n as an unsigned value publicinthammingWeight(int n) { intcount=0; intmask=1; // Move n. for (inti=0; i < 32; i++) { intafterMask= n & mask; if (afterMask == 1) { count += 1; } n >>= 1; } // Move mask. for (inti=0; i < 32; i++) { if ((mask & n) != 0) ans += 1; mask <<= 1; } return count; } }