首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 進制轉換完全指南:十進制與二八十六進制互轉詳解

     編輯:Java 綜合教學

Java 中進制轉換的核心 API

Java 提供了 Integer 類的靜態方法,可輕鬆完成十進制與二進制、八進制、十六進制的雙向轉換。掌握這些 API 能大幅提升處理位運算、編碼解碼、網絡協議等場景的開發效率。

一、十進制 → 其他進制(返回 String)

目標進制方法示例結果
二進制Integer.toBinaryString(int)toBinaryString(10)"1010"
八進制Integer.toOctalString(int)toOctalString(10)"12"
十六進制Integer.toHexString(int)toHexString(10)"a"

二、其他進制 → 十進制

1. 字符串解析為 int 基本類型

// 十六進制 "FFFF" → 65535
Integer.parseInt("FFFF", 16);  // 返回 int

// 八進制 "17" → 15
Integer.parseInt("17", 8);

// 二進制 "0101" → 5
Integer.parseInt("0101", 2);

2. 字符串解析為 Integer 對象

Integer.valueOf("FFFF", 16);  // 返回 Integer 對象
Integer.valueOf("17", 8);
Integer.valueOf("0101", 2);

3. 直接傳入字面量(僅限十六/八進制)

Integer.toString(0xFFFF);  // "65535"
Integer.toString(017);     // "15"  (注意:Java 8+ 棄用八進制字面量前綴 0,建議用 0o17)

三、非十進制之間的轉換(以十進制為中介)

例如:十六進制 FF → 二進制

// 方式一
Integer.toBinaryString(Integer.valueOf("FF", 16));
// 方式二
Integer.toBinaryString(Integer.parseInt("FF", 16));
// 結果均為 "11111111"

四、處理帶前綴的字符串(如 "0xFF")

String s = "0xFF";
int val = Integer.valueOf(s.substring(2), 16);  // 截取 "FF" 後解析

五、valueOf 的雙重用途

  • 裝箱:Integer.valueOf(100) → Integer 對象(緩存 -128~127)
  • 進制轉換:Integer.valueOf("FF", 16) → 按指定基數解析

六、常見陷阱與最佳實踐

  1. 大小寫不敏感:parseInt("ff", 16) 與 parseInt("FF", 16) 等價
  2. 異常處理:非法字符會拋 NumberFormatException,建議捕獲
  3. 負數表示:二進制補碼形式,如 toBinaryString(-1) 返回 32 個 "1"
  4. 性能提示:高頻調用時優先用 parseInt 避免對象創建開銷

七、快速查閱表

// 十進制 255 的各進制表達
Binary:      11111111
Octal:       377
Hex:         ff
Hex (0x):    0xff

熟練運用這組 API,能讓你在處理位掩碼、顏色值、網絡地址、加密演算法等場景時得心應手。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved