Java中进制转换的两种方法你知道吗?

本文介绍了如何在Java中进行十进制与其他进制之间的转换,包括使用Integer.toString和Integer.parseInt方法进行基本转换,以及使用BigInteger类处理大数运算和进制转换。还展示了从A进制到B进制的转换策略,即先转为十进制再转为目标进制。
摘要由CSDN通过智能技术生成

目录

十进制转其他进制

其他进制转十进制

实战: A进制转B进制


关于大数运算可以参考躲不掉的高精度计算,蓝桥杯必考_高精度算法在哪些比赛考_无忧#的博客-CSDN博客

十进制转其他进制

使用 Integer.toString(int n,int radix) 方法,该方法第一个参数是需要进行进制转换的数(int),第二个参数是需要进行转换的进制(int),返回的是一个Integer类型的数。
        //十进制转其他进制
        System.out.println("十进制转其他进制");
        int n=200;
        System.out.println(n+"的二进制是:"+Integer.toString(n,2));
        System.out.println(n+"的八进制是:"+Integer.toString(n,8));
        System.out.println(n+"的十进制是:"+Integer.toString(n,10));
        System.out.println(n+"的十六进制是:"+Integer.toString(n,16));

 使用 BigInteger(String num).toString(int radix) 方法,该方法第一个参数是需要进行进制转换的数(String),第二个参数是需要进行转换的进制(int),返回的是一个String类型的字符串。

        // 使用BigInteger对象;转换成负数只需要在字符串前加上负号-;BigInteger能够存储比Long.MAX_VALUE更大的数;
        String num="200";
        String s1=new BigInteger(num).toString(2);
        String s2=new BigInteger(num).toString(8);
        String s3=new BigInteger(num).toString(10);
        String s4=new BigInteger(num).toString(16);
        System.out.println(num+"的二进制是:"+s1);
        System.out.println(num+"的八进制是:"+s2);
        System.out.println(num+"的十进制是:"+s3);
        System.out.println(num+"的十六进制是:"+s4);
        System.out.println("——————————————————————————————————————————");

其他进制转十进制

使用 Integer.parseInt(String s , int radix) 方法,该方法第一个参数是需要进行进制转换的数(String),第二个参数是需要进行转换的进制(int),返回的是一个Integer类型的数。

        String s1="11001000";
        String s2="310";
        String s3="200";
        String s4="c8";
        System.out.println("二进制数"+s1+"的十进制是:"+Integer.parseInt(s1,2));
        System.out.println("八进制数"+s2+"的十进制是:"+Integer.parseInt(s2,8));
        System.out.println("十进制数"+s3+"的十进制是:"+Integer.parseInt(s3,10));
        System.out.println("十六进制数"+s4+"的十进制是:"+Integer.parseInt(s4,16));

 使用 new BigInteger(String val, int radix) 方法,该方法第一个参数是需要进行进制转换的数(String),第二个参数是需要进行转换的进制(int),返回的是一个BigInteger类型的数。

        //其他进制转十进制
        BigInteger b1 = new BigInteger("11001000", 2);
        BigInteger b2 = new BigInteger("310", 8);
        BigInteger b3 = new BigInteger("200", 10);
        BigInteger b4 = new BigInteger("c8", 16);
        System.out.println("二进制数11001000的十进制是:"+b1);
        System.out.println("八进制数310的十进制是:"+b2);
        System.out.println("十进制数200的十进制是:"+b3);
        System.out.println("十六进制数c8的十进制是:"+b4);
        System.out.println("——————————————————————————————————————————");

实战: A进制转B进制

思路:将A进制数转化为十进制数,再将10进制数转化为B进制数

public class Main {
    public static void main(String[] args) {
          //十进制转其他进制
//        System.out.println("十进制转其他进制");
//        int n=200;
//        System.out.println(n+"的二进制是:"+Integer.toString(n,2));
//        System.out.println(n+"的八进制是:"+Integer.toString(n,8));
//        System.out.println(n+"的十进制是:"+Integer.toString(n,10));
//        System.out.println(n+"的十六进制是:"+Integer.toString(n,16));
//        System.out.println("——————————————————————————————————————————");

        //其他进制转十进制
//        System.out.println("其他进制转十进制");
//        String s1="11001000";
//        String s2="310";
//        String s3="200";
//        String s4="c8";
//        System.out.println("二进制数"+s1+"的十进制是:"+Integer.parseInt(s1,2));
//        System.out.println("八进制数"+s2+"的十进制是:"+Integer.parseInt(s2,8));
//        System.out.println("十进制数"+s3+"的十进制是:"+Integer.parseInt(s3,10));
//        System.out.println("十六进制数"+s4+"的十进制是:"+Integer.parseInt(s4,16));
//        System.out.println("——————————————————————————————————————————");
//
        //八进制转十六进制
        System.out.println("八进制转十六进制");
        String s8="310";//八进制数
        int num8=Integer.parseInt(s8,8);//先将八进制数转化为十进制数
        System.out.println("八进制数"+s8+"转换为十六进制数是:"+Integer.toString(num8,16));
        //十六进制转二进制
        System.out.println("十六进制转二进制");
        String s16="c8";//十六进制数
        int num16=Integer.parseInt(s16,16);//先将十六进制数转化为十进制数
        System.out.println("十六进制数"+s16+"转换为二进制数是:"+Integer.toString(num16,2));
        System.out.println("——————————————————————————————————————————");
    }
}

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
//        String num="200";
//        String s1=new BigInteger(num).toString(2);
//        String s2=new BigInteger(num).toString(8);
//        String s3=new BigInteger(num).toString(10);
//        String s4=new BigInteger(num).toString(16);
//        System.out.println(num+"的二进制是:"+s1);
//        System.out.println(num+"的八进制是:"+s2);
//        System.out.println(num+"的十进制是:"+s3);
//        System.out.println(num+"的十六进制是:"+s4);
//        System.out.println("——————————————————————————————————————————");
//
           //其他进制转十进制
          //使用BigInteger对象;转换成负数只需要在字符串前加上负号-;BigInteger能够存储比Long.MAX_VALUE更大的数;
//        BigInteger b1 = new BigInteger("11001000", 2);
//        BigInteger b2 = new BigInteger("310", 8);
//        BigInteger b3 = new BigInteger("200", 10);
//        BigInteger b4 = new BigInteger("c8", 16);
//        System.out.println("二进制数11001000的十进制是:"+b1);
//        System.out.println("八进制数310的十进制是:"+b2);
//        System.out.println("十进制数200的十进制是:"+b3);
//        System.out.println("十六进制数c8的十进制是:"+b4);
//        System.out.println("——————————————————————————————————————————");

        BigInteger b8 = new BigInteger("310", 8);
        System.out.println("八进制数310的十六进制是:"+b8.toString(16));
        BigInteger b16 = new BigInteger("c8", 16);
        System.out.println("十六进制数c8的二进制是:"+b16.toString(2));
    }
}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无忧#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值