Solution 28: 整数中1的个数
问题描述
输入1个整数,求其二进制表示中有多少个“1”。
解决思路
1. 不断右移,碰到1与0与,计数;(对于负数不可,会死循环);
2. 与(n-1)与,相当于清除最右端的“1”,计数。
程序
思路2:
public class NumOfOne {
public int getNumOfOne(int num) {
int count = 0;
while (num != 0) {
num = num & (num - 1);
++count;
}
return count;
}
}

浙公网安备 33010602011771号