For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011, so the function should return 3.
计算一个整数中1的个数。通过位运算,每次右移一位,判断是否为1,如果为1计数器加1,代码如下:
public class Solution { // you need to treat n as an unsigned value public int hammingWeight(int n) { int count = 0; for(int i = 0; i < 32; i++) { count += (n >> i & 1); } return count; } }