题目:请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。
分析:把整数转化成二进制然后和1相与,然后移位计数即可。
public class Solution {
public int hammingWeight(int n) {
int res = 0;
while(n != 0) {
res += n & 1;// n & 1这里用到了与运算
n >>>= 1;
}
return res;
}
}