17.(循环,操作符)**一个int类型的整数由32个二进制位组成,每个二进
制位的值要么为0要么为1。要求读入一个int类型的整数n,计算它的32个二
进制位中总共有多少位为1?
(java编程,没有思路)
提示:
①十进制转二进制的算法,除以2取其余数,即为2进制数的当前数位。(这个算法如果不懂,我就帮不了你了)
——图摘自百度图片
②循环求对应数码,并统计,当除以2得余数1的次数ans
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
int ans = 0;
while(num>0) {
if(num%2 == 1) {
ans++;
}
num /= 2;
}
System.out.print(ans);
}
}