网络

教育改变生活

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1096|回复: 0
打印 上一主题 下一主题

Java编程-求int型正整数在内存中存储时1的个数

[复制链接]

97

主题

98

帖子

447

积分

版主

Rank: 7Rank: 7Rank: 7

积分
447
跳转到指定楼层
楼主
发表于 2020-10-15 22:14:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
题目描述:输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:输入一个整数(int类型)
输出描述:这个数转换成2进制后,输出1的个数

示例1
输入:5
输出:2
实现代码:
import java.io.InputStream;
public class Main {
    public static void main(String[] args) throws Exception {
        InputStream in = System.in;
        int len;
        byte[] b = new byte[1024];
        while ((len = in.read(b)) > 0) {
            if (len == 1) {break;}
            String str = new String(b,0,len-1);
            int n = Integer.parseInt(str);
            int count = numberOfOne(n);
            System.out.println(count);
        }
    }
     
    private static int numberOfOne(int n) {
        int count = 0;
        while (n != 0) {
            count++;
            n = n & (n-1);
        }
        return count;
    }
}



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

WEB前端

QQ|手机版|小黑屋|金桨网|助学堂  咨询请联系站长。

GMT+8, 2024-12-22 23:00 , Processed in 0.034319 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表