进制转换(java)

1、十进制转换为其他进制

同理十进制转换为二进制、八进制、16进制都可以使用这种方式

2、二进制转换为十进制

在这里插入图片描述

3、实例代码

public class BinaryConversion {


    public static void main(String[] args) {
        int age = 30;
        System.out.println(age + "对应的十六进制为:" + Integer.toHexString(age) + "(十进制转换为其他进制)");
        System.out.println(age + "对应的八进制为:" + Integer.toOctalString(age) + "(十进制转换为其他进制)");
        System.out.println(age + "对应的二进制为:" + Integer.toBinaryString(age) + "(十进制转换为其他进制)");
        System.out.println(age + "对应的5进制为:" + Integer.toString(age, 5) + "(十进制转换为其他进制)");

        conversion(530, 9);

        /**
         * Integer.parseInt((String) s,(int) radix);
         * 第一个参数是待转换的数字字符串;
         * 第二个参数是这个待转换的数字字符串是多少进制的
         * (如2进制数1110转换为10进制数:Integer.parseInt("1110", 2);)--需要知道待转换成十进制的数字是什么进制的
         */
        System.out.println( Integer.toHexString(age) +"对应的十进制为:" +
                Integer.parseInt(Integer.toHexString(age), 16) + "(十六进制转换为十进制)");
        System.out.println(Integer.toOctalString(age) + "对应的十进制为:" +
                Integer.parseInt(Integer.toOctalString(age), 8) + "(八进制转换为十进制)");
        System.out.println(Integer.toBinaryString(age) +"对应的十进制为:" +
                Integer.parseInt(Integer.toBinaryString(age), 2) + "(二进制转换为十进制)");
        System.out.println(Integer.toString(age, 5) + "对应的十进制为:" +
                Integer.parseInt(Integer.toString(age), 5) + "(五进制转换为十进制)");


    }

    private static char[] array = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
            .toCharArray();

    /**
     * 自定义的10进制转换为其他进制的算法(原理就是辗转相除法)
     * number为需要转换的十进制数字,binaryNum为需要转换的进制位;如将100转换为3进制的数为conversion(100, 3);
     * @param number
     * @param binaryNum
     */
    public static void conversion(int number, int binaryNum) {

        //String是不可变的,每次改变都要新建一个Strng 很浪费时间
        //对字符串操作的效率比较 StringBuilder > StringBuffer > String
        StringBuilder result = new StringBuilder();
        System.out.print(number + "对应的" + binaryNum + "进制为:");
        while(number > 0) {
            result.insert(0, array[number % binaryNum]);
            number /= binaryNum;
        }
        System.out.println( result.toString() + "(十进制转换为其他进制)");
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
电子图书资源服务系统是一款基于 Java Swing 的 C-S 应用,旨在提供电子图书资源一站式服务,可从系统提供的图书资源中直接检索资源并进行下载。.zip优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人系统开发经验充足,有任何使用问题欢迎随时与我联系,我会及时为你解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(若有),项目具体内容可查看下方的资源详情。 【附带帮助】: 若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步。 【本人专注计算机领域】: 有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为你提供帮助,CSDN博客端可私信,为你解惑,欢迎交流。 【适合场景】: 相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可以基于此项目进行扩展来开发出更多功能 【无积分此资源可联系获取】 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。积分/付费仅作为资源整理辛苦费用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值