不断右移位,判断个位数是否为 1,统计个数。
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int input = sc.nextInt();
int result = numOfOne(input);
System.out.println(result);
}
}
private static int numOfOne(int input) {
int count = 0;
while (input > 0) {
if ((input & 1) == 1) {
count++;
}
input >>>= 1;
}
return count;
}
}