问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-05-14 20:42

我来回答

3个回答

热心网友 时间:2023-10-29 06:28

十进制数转二进制分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);//输出二进制小数
    }
}

热心网友 时间:2023-10-29 06:29

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();

}
请问我错再那里了,谢谢!!

热心网友 时间:2023-10-29 06:29

输出为字符串就好了
测试过了
public String toBinary(int x)
{
String str=new String();
while(x!=0)
{
str=String.valueOf(x%2).concat(str);
x=x/2;
}
return str;
}

热心网友 时间:2023-10-29 06:29

十进制数转二进制分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);//输出二进制小数
    }
}

热心网友 时间:2023-10-29 06:29

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();

}
请问我错再那里了,谢谢!!

热心网友 时间:2023-10-29 06:29

输出为字符串就好了
测试过了
public String toBinary(int x)
{
String str=new String();
while(x!=0)
{
str=String.valueOf(x%2).concat(str);
x=x/2;
}
return str;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 281封信大结局关晓霞唱完心碎打分结束后和于枫拥抱的时候放的什么背景音乐!谢谢 JAVA中的十进制如何转换为二进制? 一年级好词好句短一点 好词好句短一点 自己QQ被盗号了至尊宝被别人绑定手机号了 身份证人脸是自己的 有什么办法找回(可钱) 如果qq被别人绑定了至尊宝怎么办啊 农行环球商旅信用卡网点申请多久下卡 炖排骨可以放老鸭汤料吗? 老鸭汤能炖排骨怎么做 贷款买车好,还是全款买车好? 春节风俗习惯及寓意 排骨老鸭汤可以一起炖吗还可以加入海苔吗? 老鸭汤鸡汤,排骨汤要怎么炖才能炖出鲜美可口,放什么调料最好吃? 怎样清除车内异味 深圳汽车可以二次抵押贷款吗 银杏叶片有啥问题召回 威马汽车送的家用充电桩是什么样子的 002082栋梁新材重组成功了吗 万邦德制药集团股份有限公司怎么样? 万邦德集团有限公司怎么样? 在java中如何用for循环把一个十进制数转换成二进制 用Java输入一个十进制,转换成二进制并输出 JAVA中的十进制转换为二进制 java代码实现:十进制转换成2进制 请问JAVA如何利用非函数的方法用数组将十进制转换成二进制? 一段简单的java代码,十进制转二进制 java中用数组存储十进制转换成二进制,此处的i--对吗,求解释。 2十14健康管理家里一定要是一个人吗? 在家闲着没事应该养些什么花? 杭州2+12健康管理是什么意思 请问工资表怎么做呀,我们都是固定工资 2019年武汉社保工资申报是怎么弄的,工资申报表直接导出来?劳动工资报表和财务报表怎么做的 深圳计划生育证明在哪里办 我是做餐饮的,主要卖鸡,大神们帮我想个好听又大气点的店名, 我准备开家做白切鸡为主的鸡肉类的餐厅!苦想店名而不得解,望有志之同仁帮忙取名!店名简单易懂。谢谢 想开个以鸡为主的餐馆不知起什么店名请帮忙谢谢 我想开一家以盐焗口味为主的鸡和鸭这样的小吃店,麻烦给其个店名,店名当中最好把盐焗两个字加上去。 我被盗,申诉也失败,还有什么办法能找回来? 忘记密码了!手机号也没用了!有什么办法能找回来? 用以前的号注册微信,那个手机号不用了,微信掉线了,密码确忘了,请问有什么办法再找回来吗?_百度问一问