0%

leetCode-191:Number of 1 Bits

问题描述

给定一个整数,要求找出这个整数对应的二进制数字中包含 1 的个数。题目链接:点我

样例输入输出

输入:3

输出:2

解释:3对应的二进制为 00000000000000000000000000000011,总共有 2 个 1

输入:0

输出:0

问题解法

对二进制数的每一位与 1 进行按位与运算,如果是 1 就累加,最终累计值就是答案。代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Solution {
// you need to treat n as an unsigned value
public int hammingWeight(int n) {
int count = 0;
while (n != 0) {
if ((n & 1) == 1) {
count++;
}
n = n >>> 1;
}

return count;
}
}