java 计算一个字节 1的个数字_Java 实现 输入一个整数字(可以为正数或负数),求其在计算机中存储时1的个数。...

展开全部

package com.baidu.sep28;

import java.util.Scanner;

/**java 实现 输入一个整数字(可以为正数或负数),求其在计算机中32313133353236313431303231363533e78988e69d8331333330363064存储时1的个数。

*

*/

public class CountOne {

public static void main(String[] args)

{

int input = 0;

Scanner in = new Scanner(System.in);//获取控制台输入

do{

System.out.println("请输入一个整数(可以为正数或负数):");

input = in.nextInt();//获取出入 并 传 给input

System.out.println("计算机中存储时1的个数为:"+getOneNumber (input));

}while(input!=0);//输入0 时  结束   (目的是为了 可以多次输入)

}

private static int getOneNumber(int input )

{

int count = 0;//出现的次数  初始化为0

String binary = Integer.toBinaryString(input);//将输入的 整数转换成二进制 字符串形式

int index = -1;//将 索引初始化为-1

while((index =binary.indexOf("1",index+1))!=-1)

{

// 获取 : binary( 整数转换成二进制 字符串)从 index+1 角标开始(包含 index+1)   第一次出新1 的索引 并赋值给index

count ++;//计数器 加一

}

return count;

}

}

02d99b9c062d10d58a3da94aa23765fc.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值