滚雪球学Java(26):Java进制转换

举报
bug菌 发表于 2024/01/30 12:17:00 2024/01/30
【摘要】 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 前言在日常开发中,进制转换是一个相对常见的需求。比如在网络传输中,我们常常需要将数据以二进制的方式进行传输,而在前端开发中,我们常常需要将数据从十进制转化为十六进制来实现颜色的显示。因此,了解进制转换是程序员必备的技能之一。 摘要本文将介绍 Ja...

🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!!


前言

在日常开发中,进制转换是一个相对常见的需求。比如在网络传输中,我们常常需要将数据以二进制的方式进行传输,而在前端开发中,我们常常需要将数据从十进制转化为十六进制来实现颜色的显示。因此,了解进制转换是程序员必备的技能之一。

摘要

本文将介绍 Java 中的进制转换方法。Java 中支持的进制包括二进制、八进制、十进制和十六进制。我们将分别介绍它们之间的转换方法,并给出相应的代码实例。

内容

1. 十进制转换成二进制

十进制转换成二进制的方法是不断地除以 2,直到商为 0。将每个商的余数从下往上排列就得到了二进制表示。

代码实现如下:

public static String decToBinary(int decimal) {
    StringBuilder binary = new StringBuilder();
    while (decimal > 0) {
        binary.append(decimal % 2);
        decimal /= 2;
    }
    return binary.reverse().toString();
}

2. 十进制转换成八进制

十进制转换成八进制的方法与转换成二进制的方法类似,只是每次除以的数变为了 8。

代码实现如下:

public static String decToOctal(int decimal) {
    StringBuilder octal = new StringBuilder();
    while (decimal > 0) {
        octal.append(decimal % 8);
        decimal /= 8;
    }
    return octal.reverse().toString();
}

3. 十进制转换成十六进制

十进制转换成十六进制需要用到十六进制中的字母,因此需要将余数与字母对应起来。Java 中提供了 Integer.toHexString() 方法可以直接将一个十进制数转换成十六进制字符串。

代码实现如下:

public static String decToHex(int decimal) {
    return Integer.toHexString(decimal);
}

4. 二进制转换成十进制

二进制转换成十进制方法与十进制转换成二进制的方法类似,只是每次求余的数变为了 2,乘的数变为了 2 的幂。

代码实现如下:

public static int binaryToDec(String binary) {
    int decimal = 0;
    int power = 0;
    for (int i = binary.length() - 1; i >= 0; i--) {
        int digit = binary.charAt(i) - '0';
        decimal += digit * Math.pow(2, power);
        power++;
    }
    return decimal;
}

5. 八进制转换成十进制

八进制转换成十进制的方法与二进制转换成十进制的方法类似,只是每次求余的数变为了 8。

代码实现如下:

public static int octalToDec(String octal) {
    int decimal = 0;
    int power = 0;
    for (int i = octal.length() - 1; i >= 0; i--) {
        int digit = octal.charAt(i) - '0';
        decimal += digit * Math.pow(8, power);
        power++;
    }
    return decimal;
}

6. 十六进制转换成十进制

在 Java 中,我们可以使用 Integer.parseInt() 方法将一个十六进制字符串转换成一个十进制数。

代码实现如下:

public static int hexToDec(String hex) {
    return Integer.parseInt(hex, 16);
}

代码方法介绍

decToBinary(int decimal)

该方法将一个十进制数转换成一个二进制字符串。

decToOctal(int decimal)

该方法将一个十进制数转换成一个八进制字符串。

decToHex(int decimal)

该方法将一个十进制数转换成一个十六进制字符串。

binaryToDec(String binary)

该方法将一个二进制字符串转换成一个十进制数。

octalToDec(String octal)

该方法将一个八进制字符串转换成一个十进制数。

hexToDec(String hex)

该方法将一个十六进制字符串转换成一个十进制数。

测试用例

  • 十进制转换成二进制:

    System.out.println(decToBinary(10));  // 1010
    System.out.println(decToBinary(255)); // 11111111
    
  • 十进制转换成八进制:

    System.out.println(decToOctal(8));    // 10
    System.out.println(decToOctal(255));  // 377
    
  • 十进制转换成十六进制:

    System.out.println(decToHex(16));     // 10
    System.out.println(decToHex(255));    // ff
    
  • 二进制转换成十进制:

    System.out.println(binaryToDec("1010"));  // 10
    System.out.println(binaryToDec("11111111")); // 255
    
  • 八进制转换成十进制:

    System.out.println(octalToDec("10"));   // 8
    System.out.println(octalToDec("377"));  // 255
    
  • 十六进制转换成十进制:

    System.out.println(hexToDec("10"));     // 16
    System.out.println(hexToDec("ff"));     // 255
    

全文小结

本文主要介绍了 Java 中的进制转换方法,包括十进制、二进制、八进制和十六进制之间的转换。通过本文的介绍,我们可以掌握 Java 中进制转换的各种方法,并且在实际开发中灵活应用。

附录源码

  如上涉及所有源码均已上传同步在Gitee,提供给同学们一对一参考学习,辅助你更迅速的掌握。

☀️建议/推荐你


  无论你是计算机专业的学生,还是对编程有兴趣的小伙伴,都建议直接毫无顾忌的学习此专栏「滚雪球学Java」,bug菌郑重承诺,凡是学习此专栏的同学,均能获取到所需的知识和技能,全网最快速入门Java编程,就像滚雪球一样,越滚越大,指数级提升。

📣关于我


我是bug菌,CSDN | 掘金 | infoQ | 51CTO 等社区博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,华为云 | 阿里云| 腾讯云等社区优质创作者,全网粉丝合计15w+ ;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板等海量资料。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。