Java 提供了 Integer 類的靜態方法,可輕鬆完成十進制與二進制、八進制、十六進制的雙向轉換。掌握這些 API 能大幅提升處理位運算、編碼解碼、網絡協議等場景的開發效率。
| 目標進制 | 方法 | 示例 | 結果 |
|---|---|---|---|
| 二進制 | Integer.toBinaryString(int) | toBinaryString(10) | "1010" |
| 八進制 | Integer.toOctalString(int) | toOctalString(10) | "12" |
| 十六進制 | Integer.toHexString(int) | toHexString(10) | "a" |
// 十六進制 "FFFF" → 65535
Integer.parseInt("FFFF", 16); // 返回 int
// 八進制 "17" → 15
Integer.parseInt("17", 8);
// 二進制 "0101" → 5
Integer.parseInt("0101", 2);
Integer.valueOf("FFFF", 16); // 返回 Integer 對象
Integer.valueOf("17", 8);
Integer.valueOf("0101", 2);
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"
String s = "0xFF"; int val = Integer.valueOf(s.substring(2), 16); // 截取 "FF" 後解析
Integer.valueOf(100) → Integer 對象(緩存 -128~127)Integer.valueOf("FF", 16) → 按指定基數解析parseInt("ff", 16) 與 parseInt("FF", 16) 等價NumberFormatException,建議捕獲toBinaryString(-1) 返回 32 個 "1"parseInt 避免對象創建開銷// 十進制 255 的各進制表達 Binary: 11111111 Octal: 377 Hex: ff Hex (0x): 0xff
熟練運用這組 API,能讓你在處理位掩碼、顏色值、網絡地址、加密演算法等場景時得心應手。