java问题,不懂,求大神指教,问题如下:

17.(循环,操作符)**一个int类型的整数由32个二进制位组成,每个二进制位的值要么为0要么为1。要求读入一个int类型的整数n,计算它的32个二进制位中总共有多少位... 17.(循环,操作符)**一个int类型的整数由32个二进制位组成,每个二进
制位的值要么为0要么为1。要求读入一个int类型的整数n,计算它的32个二
进制位中总共有多少位为1?
(java编程,没有思路)
展开
 我来答
闭郎7K
2015-03-19 · 超过27用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:57.9万
展开全部

提示:

①十进制转二进制的算法,除以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);

    }

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式