描述
输入一个正整数,计算它在二进制下的1的个数。
注意多组输入输出!!!!!!
数据范围: 1 \le n \le 2^{31}-1 \1≤n≤231−1
输入描述:
输入一个整数
输出描述:
计算整数二进制中1的个数
示例1
输入:5
复制输出:2
复制说明:
5的二进制表示是101,有2个1
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int n = in.nextInt();
int b=1;
int count=0;
while(n!=0){
if((n&b)==1){
count++;
}
n>>=1;
}
System.out.println(count);
}
}
}
本题是计算一个数二进制表示中1的个数,通过(n >> i) & 1可以获取第i位的二进制值,每次n右移一位,可以获取一位的二进制值,右移32次,n变成0,循环终止