1. 题目描述
2. 解题思路
两个思路,一是十进制转二进制的除二取余法,二是二进制的位运算,两种方式的目的都是把该二进制串中的每一位拿出来作对比,这种思路也没什么特别的,想要寻求花里胡哨的解法可以去看看官解的高级位运算。
3. 代码实现
public int hammingWeight(int n) {
int count = 0;
for (int i = 0; i < 32; i++) {
if ((n >>> i & 1) == 1)
count++;
}
return count;
}