题目:位1的个数(LeetCode 191)
编写一个函数,获取一个正整数的二进制形式并返回其二进制表达式中1的个数(也被称为汉明重量)。
说明:
1 <= n <= 231 - 1
解题思路
将给出数的二进制数每个位同1进行&操作,如果结果是1,则该位置为1,否则为0
代码
public class Lc_191_位1的个数 {
public int hammingWeight(int n) {
int res = 0;
//在java中int是32位,所以从0-31位依次判断: 1&第i位 是否位1,如果为1,表示弟i位为1
for (int i = 0; i < 32; i++) {
if ((n & (1 << i)) != 0) {
res++;
}
}
return res;
}
}
结语
共同成长,共同进步,欢迎交流。