题目描述
输入一个无符号整数x,输出x的二进制表示中1的个数.
输入:
76584
输出:
7
解题思路
这道题是通过右移计算出1的个数。在二进制中,只需要右移,然后判断右移的得到数是否为1,如果为1,那么count++;十进制中,n%2就可以得到右移一位的结果。
代码展示
import java.util.Scanner;
public class p4010 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int count=0;
while(n!=0) {
int b=n%2;
if(b==1)count++;
n=n>>1;
}
System.out.print(count);
}
}