什麼是文字轉二進位/ASCII 轉換器?
這個工具能把你輸入的任何文字轉換成對應的二進位表示法。電腦其實是用「數字」來儲存文字的,而負責對應的規則就稱為字元編碼——針對基本的英文字母、數字與標點符號,這套編碼就是 ASCII。每個字元都對應到一組數字代碼,這裡會把這個代碼寫成 8 位元的二進位字串(也就是八個 0 和 1)。除了二進位,轉換器同時會顯示十進位的 ASCII 碼與十六進位值,方便你在不同進位制之間互相對照與驗證結果。
使用方式
在輸入框中輸入或貼上你的文字後送出即可。主要欄位會顯示完整的二進位字串,每個字元一組 8 位元,並以空格分隔。下方表格則列出對應的十進位 ASCII 碼與十六進位值,同時統計字元數量與總位元數。要特別注意的是,空格與標點符號也算作字元——例如一個空格的 ASCII 碼就是 32。
計算公式說明
對於每一個字元 c,我們會取得它的字元碼(也就是 JavaScript 中 charCodeAt 回傳的數值),把這個整數轉換成 2 進位,再在左側補 0 補滿到 8 位元的寬度。
$$\text{binary} = \text{pad}_8\big(\text{ASCII}(c)\big)\ \text{for each char } c$$
$$c \rightarrow \text{pad}_8(\text{bin}(\text{charCode}(c)))$$
舉例來說,字母 A 的 ASCII 碼是 65,二進位為 1000001,補滿後就是 01000001。總位元數=8 × 字元數量。
$$\text{bits} = 8 \times n_{chars}$$
實際範例
我們以單字 Hi 為例。「H」的 ASCII 碼是 72 → 二進位 01001000 → 十六進位 48;「i」的 ASCII 碼是 105 → 二進位 01101001 → 十六進位 69。因此「Hi」會轉換成 01001000 01101001,十進位為 72 105,十六進位為 48 69,共 2 個字元、使用 \(8 \times 2 = 16\) 位元。
ASCII 字符參考表
標準 ASCII 為每個字符分配一個 0 到 127 的數字。在此轉換器中,每個字符的十進制代碼轉換為 8 位二進制值(左邊用零填充以達到 8 位),以及一個兩位十六進制值。下表列出了常用的可打印字符。
| 字符 | 十進制 | 8 位二進制 | 十六進制 |
|---|---|---|---|
| (空格) | 32 | 00100000 | 20 |
| ! | 33 | 00100001 | 21 |
| 0 | 48 | 00110000 | 30 |
| 1 | 49 | 00110001 | 31 |
| 5 | 53 | 00110101 | 35 |
| 9 | 57 | 00111001 | 39 |
| : | 58 | 00111010 | 3A |
| ? | 63 | 00111111 | 3F |
| @ | 64 | 01000000 | 40 |
| A | 65 | 01000001 | 41 |
| B | 66 | 01000010 | 42 |
| M | 77 | 01001101 | 4D |
| Z | 90 | 01011010 | 5A |
| a | 97 | 01100001 | 61 |
| b | 98 | 01100010 | 62 |
| m | 109 | 01101101 | 6D |
| z | 122 | 01111010 | 7A |
例如,大寫字母 A 的十進制代碼為 65,其二進制為 1000001,補充到 8 位後變為 01000001。單個字符「Hi」編碼為 01001000 01101001。
關鍵術語解釋
- 位(Bit)
- 數字數據的最小單位,包含單一的 0 或 1 值(二進制數字)。
- 字節(Byte)
- 8 位的組合。一個字節可以表示 256 個不同的值(\(2^8 = 256\)),這正好足以儲存一個擴展 ASCII 字符。
- ASCII
- 美國信息交換標準代碼——一種字符編碼標準,將 128 個字符(代碼 0–127)(包括字母、數字、標點符號和控制代碼)映射到數字。
- Unicode
- 一種通用字符標準,遠遠超越 ASCII,涵蓋幾乎所有的書寫系統、符號和表情符號。前 128 個 Unicode 碼點與 ASCII 相同。
- 碼點(Code point)
- 分配給字符集內字符的數值。對於字母「A」,在 ASCII 和 Unicode 中碼點都是 65。
- 二進制(Binary)
- 以 2 為基數的數字系統,僅使用數字 0 和 1。每個位置代表 2 的一個冪(1、2、4、8、…)。
- 十進制(Decimal)
- 日常計數中使用的以 10 為基數的數字系統,數字為 0–9,位置代表 10 的冪。
- 十六進制(Hexadecimal)
- 以 16 為基數的數字系統,使用數字 0–9 和字母 A–F。一個十六進制數字正好表示 4 位,因此兩個十六進制數字表示一個字節。
- 補充 / 左邊填充(Padding / Left-pad)
- 在二進制值的前面添加前導零,以便每個字符佔據統一的寬度。ASCII 字節左邊填充至 8 位——例如,代碼 65(二進制 1000001)變為 01000001。
二進制、十進制和十六進制轉換表
下表顯示了相同值如何以十進制(10 進制)、二進制(2 進制)和十六進制(16 進制)表示。注意 2 的每個冪如何增加一個二進制數字,以及每 4 個二進制位如何清晰地映射到單個十六進制數字。
| 十進制 | 二進制(8 位) | 十六進制 |
|---|---|---|
| 0 | 00000000 | 00 |
| 1 | 00000001 | 01 |
| 2 | 00000010 | 02 |
| 3 | 00000011 | 03 |
| 4 | 00000100 | 04 |
| 5 | 00000101 | 05 |
| 6 | 00000110 | 06 |
| 7 | 00000111 | 07 |
| 8 | 00001000 | 08 |
| 9 | 00001001 | 09 |
| 10 | 00001010 | 0A |
| 11 | 00001011 | 0B |
| 12 | 00001100 | 0C |
| 13 | 00001101 | 0D |
| 14 | 00001110 | 0E |
| 15 | 00001111 | 0F |
| 16 | 00010000 | 10 |
| 32 | 00100000 | 20 |
| 64 | 01000000 | 40 |
| 128 | 10000000 | 80 |
| 255 | 11111111 | FF |
作為檢驗,十進制 255 是單個字節可以保存的最大值;其十六進制形式為 FF,其二進制形式是所有八位均設為 1。同樣,十進制 64 轉換為二進制 1000000,補充後為 01000000。
常見問題
能處理非英文字元嗎?標準 ASCII 只涵蓋 0–127 的代碼範圍。超過 127 的字元(例如重音符號、表情符號)會使用它們的 Unicode 碼位,這些碼位可能超過 8 位元,無法被標準 ASCII 容納。
為什麼每個字元是 8 位元?一個位元組(byte)等於 8 位元,而 ASCII 傳統上剛好可以放進一個位元組,因此以 8 位元為一組就成了慣用的表示方式。
可以把二進位轉回文字嗎?這個工具是把文字轉成二進位。若要反向操作,只要把二進位字串以每 8 位元為一組切開,再將每組數值對應回它的 ASCII 字元即可。