https://leetcode.com/problems/number-of-1-bits/
题目
给一个正整数int,输出bit位为一的个数。
解法1
public static int bitCount(int x) {
int count = 0;
while(x > 0) {
count += (x % 2);
x = x / 2;
}
return count;
}
如果是9 计算4次
解法2
public static int bitCount(int x) {
int count = 0;
while(x > 0) {
// 可以去掉最右那个为1的bit位
x = x & (x-1);
count++;
}
return count;
}
如果是9计算2次