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

简介: 【5月更文挑战第1天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

🏆本文收录于「滚雪球学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编程,就像滚雪球一样,越滚越大,指数级提升。

目录
相关文章
|
2天前
|
Java 安全 测试技术
滚雪球学Java(49):如何使用StringBuilder类在Java中高效地处理字符串?
【6月更文挑战第3天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
12 3
滚雪球学Java(49):如何使用StringBuilder类在Java中高效地处理字符串?
|
2天前
|
Java 安全 索引
滚雪球学Java(48):面向对象编程中的StringBuffer类详解
【6月更文挑战第2天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
24 5
滚雪球学Java(48):面向对象编程中的StringBuffer类详解
|
3天前
|
存储 Java 测试技术
滚雪球学Java(47):String类教程:如何在Java中使用字符串操作
【6月更文挑战第1天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
15 2
滚雪球学Java(47):String类教程:如何在Java中使用字符串操作
|
4天前
|
Java 测试技术
滚雪球学Java(46):揭开数学的神秘面纱:探索Java中Math类的奇妙世界
【5月更文挑战第21天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
13 0
滚雪球学Java(46):揭开数学的神秘面纱:探索Java中Math类的奇妙世界
|
5天前
|
监控 Java 测试技术
滚雪球学Java(45):探秘Java Runtime类:深入了解JVM运行时环境
【5月更文挑战第20天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
13 1
滚雪球学Java(45):探秘Java Runtime类:深入了解JVM运行时环境
|
6天前
|
安全 Java API
滚雪球学Java(44):掌握Java编程的关键:深入解析System类
【5月更文挑战第19天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
16 0
滚雪球学Java(44):掌握Java编程的关键:深入解析System类
|
7天前
|
存储 Java 程序员
滚雪球学Java(43):探究 Java 中的 Class 类:透视类的本质和实现原理
【5月更文挑战第18天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
12 0
滚雪球学Java(43):探究 Java 中的 Class 类:透视类的本质和实现原理
|
9天前
|
存储 算法 Java
滚雪球学Java(42):探索对象的奥秘:解析Java中的Object类
【5月更文挑战第17天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
23 2
滚雪球学Java(42):探索对象的奥秘:解析Java中的Object类
|
10天前
|
存储 Java
滚雪球学Java(41):Lambda表达式和方法引用:提高代码可读性和简洁性的神器
【5月更文挑战第16天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
26 2
滚雪球学Java(41):Lambda表达式和方法引用:提高代码可读性和简洁性的神器
|
11天前
|
Java 编译器 数据库
滚雪球学Java(40):解读Java面向对象编程中的方法和继承,打造可维护的代码库
【5月更文挑战第15天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
25 4
滚雪球学Java(40):解读Java面向对象编程中的方法和继承,打造可维护的代码库