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

Java 十進制與十六進制互轉實用技巧

     編輯:Java 相關知識

Java 進制轉換核心 API 詳解

在 Java 開發中,十進制與十六進制的互轉是處理顏色值、記憶體位址、網路協定、加密演算法等場景的基礎技能。Java 標準庫提供了極簡潔的 API 完成此類轉換,無需手寫演算法。

十進制轉十六進制

使用 Integer.toHexString(int) 靜態方法,回傳不帶前綴的小寫十六進制字串。

// 200 -> "c8"
String hex = Integer.toHexString(200); 
System.out.println(hex); // 輸出: c8

注意: 回傳值為小寫,若需大寫可配合 .toUpperCase();負數會輸出 32 位元補碼形式(如 -1 -> "ffffffff")。

十六進制轉十進制

使用 Integer.parseInt(String, 16) 解析十六進制字串(不含 "0x" 前綴)。

// "8C" -> 140
int decimal = Integer.parseInt("8C", 16);
System.out.println(decimal); // 輸出: 140

關鍵點: 輸入字串不區分大小寫;若字串包含非十六進制字元會拋出 NumberFormatException。

進階應用:長整數與位元組陣列轉換

實務上常需處理 long 或位元組陣列,可擴展工具方法:

// long -> 十六進制字串
String longHex = Long.toHexString(1234567890123L);

// 十六進制字串 -> long
long value = Long.parseUnsignedLong("123ABC", 16);

// 位元組陣列 -> 十六進制字串 (常用於日誌/除錯)
public static String bytesToHex(byte[] bytes) {
    StringBuilder sb = new StringBuilder(bytes.length * 2);
    for (byte b : bytes) {
        sb.append(String.format("%02x", b));
    }
    return sb.toString();
}

常見坑點與避雷指南

  • 大小寫不一致: 統一轉大寫或小寫再比對/儲存。
  • 前綴處理: 解析前移除 "0x"、"#" 等非標準前綴。
  • 溢位風險: Integer.parseInt 僅支援 32 位元,大數值請用 Long.parseLong 或 BigInteger。
  • 負數補碼: 理解 Java 整數以二補碼儲存,轉十六進制會顯示完整 32/64 位元模式。

熟練掌握 Integer.toHexString 與 Integer.parseInt(str, 16) 這對核心 API,配合上述進階技巧,即可輕鬆應對 Java 開發中 90% 以上的進制轉換需求。

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