Java进制之间的转换
牢记这些呀,特别常用!
1.十进制转成二进制 未补0
1 | String s = Integer.toBinaryString(n) //将十进制数转成字符串,例如n=4 ,s = "100" |
十进制转成二进制 补0
1 2 3 4 5 | //输出结果:00000100 String bin = Integer.toBinaryString( 4 ); DecimalFormat df = new DecimalFormat( "00000000" ); String format = df.format(Integer.valueOf(bin)); System.out.println(format); //format=00000100 |
2.二进制转成十进制
方法1:使用Integer.parseInt()实现二进制转换为十进制
1 2 3 4 5 6 7 8 9 | import java.util.Scanner; class BinaryToDecimal { public static void main(String args[]){ Scanner input = new Scanner( System.in ); System.out.print( "Enter a binary number: " ); String binaryString =input.nextLine(); System.out.println( "Output: " +Integer.parseInt(binaryString, 2 )); } } |
方法2:使用自定义逻辑实现二进制转换十进制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public class Details { public static void main(String args[]) { Details obj = new Details(); System.out.println( "110 --> " + obj.BinaryToDecimal( 110 )); System.out.println( "1101 --> " + obj.BinaryToDecimal( 1101 )); } public int BinaryToDecimal( int binaryNumber) { int decimal = 0 ; int p = 0 ; while ( true ) { if (binaryNumber == 0 ) { break ; } else { int temp = binaryNumber % 10 ; decimal += temp * Math.pow( 2 , p); binaryNumber = binaryNumber / 10 ; p++; } } return decimal; } } |
3.十进制转成八进制
1 2 3 | //十进制转八进制 String octalString = Integer.toOctalString( 9 ); System.out.println( "octalString=====" +octalString); |
4.八进制转成十进制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class DecimalFormatTest { public static void main(String[] args) { int octal = 116 ; int decimal = convertOctalToDecimal(octal); System.out.printf( "%d 八进制 = %d十进制" , octal, decimal); } public static int convertOctalToDecimal( int octal) { int decimalNumber = 0 , i = 0 ; while (octal != 0 ) { decimalNumber += (octal % 10 ) * Math.pow( 8 , i); ++i; octal/= 10 ; } return decimalNumber; } } |
5.十进制转成十六进制
1 2 3 | //补充 十进制转16进制 输出结果:12 String hexString = Integer.toHexString( 18 ); System.out.println( "hexString=====" +hexString); |
6.十六进制转成十进制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import java.util.HashMap; import java.util.Map; public class DecimalTest { public static void main(String[] args) { //十六进制转10进制 String hexString = Integer.toHexString( 18 ); int covert = covert(hexString); System.out.println( "covert=======" +covert); } public static int covert(String content){ int number= 0 ; String [] HighLetter = { "A" , "B" , "C" , "D" , "E" , "F" }; Map<String,Integer> map = new HashMap<>(); for ( int i = 0 ;i <= 9 ;i++){ map.put(i+ "" ,i); } for ( int j= 10 ;j<HighLetter.length+ 10 ;j++){ map.put(HighLetter[j- 10 ],j); } String[]str = new String[content.length()]; for ( int i = 0 ; i < str.length; i++){ str[i] = content.substring(i,i+ 1 ); } for ( int i = 0 ; i < str.length; i++){ number += map.get(str[i])*Math.pow( 16 ,str.length- 1 -i); } return number; } } |
now ,fight for future
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程