🏆本文收录于「滚雪球学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电子书籍、简历模板等海量资料。