如何把一个十进制数转为二进制数的Java程序?

如何来实现呢?请高手指点下,谢谢!... 如何来实现呢?
请高手指点下,谢谢!
展开
 我来答
woshidaniel
推荐于2017-10-15 · TA获得超过9240个赞
知道小有建树答主
回答量:1760
采纳率:96%
帮助的人:955万
展开全部

十进制数转二进制分2部分,整数和小数部分。

1、整数部分

十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

2、小数部分

十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。

示例:

public class ErJinZhi{
    public String trans(int zheng){//转整数部分
        String temp = "";
        while(zheng!=0){//一直到整数部分为0
            temp = (zheng%2)+temp;//余数,并且拼接起来
            zheng = zheng/2;//除2取整
        }
        return temp;//余数拼起来后返回
    }
 
    public String trans(float xiao){
        if(xiao>1){//如果大于1,则有整数部分,出错了
            return "false";
        }
        String temp = "";
        int weishu = 10;        //小数位数,精度
        for(int i=0;i<weishu;i++){
            xiao*=2;//乘以2
            if(xiao>=1){//取整
                temp+="1";
                xiao = xiao-1;//去除整数后取小数
            }else{
                temp+="0";//取整数位
            }
        }
        return temp;//返回小数二进制数
    }
 
 
 
    public static void main(String[] args){
        System.out.println("Please input:");
        Scanner sc = new Scanner(System.in);
        float n = sc.nextFloat();//获取一个输入的十进制数
         
        int zheng = (int)n;//取整数部分
        float xiao = n-zheng;//取小数部分
         
        String temp = new ErJinZhi2().trans(zheng);//整数部分转换成二进制
        String temp2 = new ErJinZhi2().trans(xiao);//小数部分转换成二进制
        System.out.println(temp+"."+temp2);//输出二进制小数
    }
}
陆天文
2007-05-17 · TA获得超过240个赞
知道小有建树答主
回答量:361
采纳率:0%
帮助的人:260万
展开全部
class Lank{
public String toBinary(int x)
{

while(x!=0)
{
str=String.valueOf(x%2).concat(str);

x=x/2;
}
return str;
}

public static void main(String[]arge)
{
String str=new String();

string.toBinary();

}
请问我错再那里了,谢谢!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vivien72
推荐于2017-09-24 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:106
采纳率:0%
帮助的人:129万
展开全部
输出为字符串就好了
测试过了
public String toBinary(int x)
{
String str=new String();
while(x!=0)
{
str=String.valueOf(x%2).concat(str);
x=x/2;
}
return str;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式