ASCII 碼

眾所周知,計算機內部只能處理 0 和 1。的確如此,透過 0 和 1 的序列,計算機可以將其二進位制形式表示任何數值,這是一個非常簡單的數學運算(如數制一文中所解釋的)。

然而,用 0 和 1 來表示字母和其他非數字字元並沒有那麼直觀的方法。因此,為了做到這一點,計算機使用 ASCII 表,這些表或列表包含了羅馬字母表中的所有字母以及一些附加字元。在這些表中,每個字元總是由相同的序號表示。例如,大寫字母“A”的 ASCII 碼總是由序號 65 表示,這很容易用二進位制的 0 和 1 來表示:65 用二進位制數表示為 1000001。

標準 ASCII 表定義了 128 個字元程式碼(從 0 到 127),其中前 32 個是控制碼(不可列印),其餘 96 個字元程式碼是可表示的字元。

*0123456789ABCDEF
0NULSOHSTXETXEOTENQACKBELBSTABLFVTFFCRSOSI
1DLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCFSGSRSUS
2 !"#$%&'()*+,-./
30123456789:;<=>?
4@ABCDEFGHIJKLMNO
5PQRSTUVWXYZ[\]^_
6`abcdefghijklmno
7pqrstuvwxyz{|}~

* 此面板的組織結構便於用十六進位制讀取:行號代表第一位數字,列號代表第二位數字。例如,字元“A”位於第 4 行和第 1 列,因此它在十六進位制中表示為 0x41 (65)。

因為現在大多數系統都使用 8 位位元組,可以表示 256 個不同的值,所以在 128 個標準 ASCII 碼之外,還有另外 128 個被稱為擴充套件 ASCII 的程式碼,這些程式碼依賴於平臺和地區設定。因此,存在不止一種擴充套件 ASCII 字元集。

兩種最常用的擴充套件 ASCII 字元集是 OEM 字元集(源自 IBM-PC 預設內建的字元集)和 ANSI 擴充套件 ASCII 字元集(被大多數現代作業系統使用)。

第一種,即 OEM 字元集,是絕大多數 PC 相容機硬體所使用的字元集,並且在舊的 DOS 系統下也曾被使用。它包含一些外語符號、一些帶標記的字元以及用於繪製面板的字元塊。


ANSI 字元集是許多系統(如 Windows、一些 UNIX 平臺和許多獨立應用程式)採用的標準。它包含了更多的本地符號和帶標記的字母,因此可以在更多語言中無需重新定義即可使用。