问题描述
请实现一个函数,输入一个整数,输出该数二进制表示中的1的个数。例如,把9表示成二进制是1001,有2位是1.因此,如果输入9,则该函数输出2。
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.println(hammingWeight(n));
}
public static int hammingWeight(int n) {
int res = 0;
int move = 31;
while (move-- >= 0) {
if ((n & 1) == 1) res++;
n >>>= 1;
}
return res;
}
}