上一集說計算機用二進位(0/1),但對人類來說太冗長:123456 變成 11110001001000000。程式設計師進化出「十六根手指」——十六進位制:0–9 加上 A–F 代表 10–15,滿十六進一。
1E240₁₆ = 1×16⁴ + 14×16³ + 2×16² + 4×16¹ + 0×16⁰
= 65536 + 57344 + 512 + 64 = 123456
註:E = 14。結果與二進位 11110001001000000 完全一致。
十六進位每一位對應二進位 4 位,轉換極其方便:
123456₁₀ = 1E240₁₆ = 0001 1110 0010 0100 0000₂
將二進位每 4 位分組(高位補 0 湊齊 4 位),直接對應十六進位:
| 二進位分組 | 0001 | 1110 | 0010 | 0100 | 0000 |
|---|---|---|---|---|---|
| 十六進位 | 1 | E | 2 | 4 | 0 |
計算機「程式設計師」模式顯示:
Java 要求十六進位字面值以 0x 或 0X 開頭,區別於十進位:
int decimal = 123456;
int hex = 0x1E240; // 同一數值
System.out.println(decimal == hex); // true
常見用途:顏色值 0xFF0000(紅)、位元遮罩 0x0F、Unicode 碼點 0x1F600 (😀)。
| 特性 | 二進位 (BIN) | 十六進位 (HEX) | 十進位 (DEC) |
|---|---|---|---|
| 基數 | 2 | 16 | 10 |
| 符號 | 0, 1 | 0–9, A–F | 0–9 |
| 用途 | 硬體底層、位運算 | 程式開發、記憶體位址、顏色、位元遮罩 | 人類日常、業務邏輯 |
| 轉換 | 基礎 | 每 1 位 = 4 位二進位 | 需除基取餘 |
0xFF00FF00 一眼看出高低 16 位交替