您好,登錄后才能下訂單哦!
一、區位碼
為了適應計算機處理漢字信息的需要,1981年我國頒布了GB2312國家標準。該標準選出6763個常用漢字(其中,一級常用漢字3755個,二級漢字3008個)和682個非漢字字符,并為每個字符規定了標準代碼,以便在不同的計算機系統之間進行漢字文本交換。
GB2312字符集構成一個94行、94列的二維表,行號稱為區號,列號稱為位號,每一個漢字或符號在碼表中的位置用它所在的區號和位號來表示。
為了處理與存儲的方便,每個漢字的區號和位號在計算機內部分別用一個字節來表示。例如,"學"字的區號為49,位號為07,它的區位碼即為4907,用2個字節的二進制數表示為:
00110001 00000111
二、國標交換碼
區位碼無法用于漢字通信,因為它可能與通信使用的控制碼(00H~1FH)(即0~31)發生沖突。(因為ASCII碼編碼中分控制信號編碼和有型字符編碼,前32個是控制碼,如回車、換行、退格等,為避開這些控制碼,國標碼規定在區位碼的基礎上加20H,即32的16進制數)ISO2022規定每個漢字的區號和位號必須分別加上32(即二進制數00100000),經過這樣的處理而得的代碼稱為國標交換碼,簡稱交換碼或國際碼,因此,"學"字的國標交換碼計算為:
00110001 00000111
+00100000 +00100000
--------------------------
01010001 00100111
用十六進制數表示即為5127H。
三、機內碼
由于文本中通常混合使用漢字和西文字符,漢字信息如果不予以特別標識,就會與單字節的ASCII碼混淆。此問題的解決方法之一是將一個漢字看成是兩個擴展ASCII碼,使表示GB2312漢字的兩個字節的最高位都為1。這種高位為1的雙字節漢字編碼即為GB2312漢字的機內碼,簡稱為內碼。
因此,"學"字的機內碼為:
11010001 10100111
用16進制表示即為D1A7H。
最后要指出的是,漢字的輸入編碼與漢字的機內碼是不同范疇的概念。不管采用什么樣的編碼輸入法(例如拼音、五筆字型等)來輸入一個漢字,其機內碼都是相同的。
四、總結
區位碼、國標碼與機內碼的轉換關系
方法:
(1)區位碼先轉換成十六進制數表示
(2)(區位碼的十六進制表示)+2020H=國標碼;
(3)國標碼+8080H=機內碼
舉例:以漢字"大"為例,"大"字的區內碼為2083
示例解析:
1、區號為20,位號為83
2、將區位號2083轉換為十六進制表示為1453H
3、1453H+2020H=3473H,得到國標碼3473H
4、3473H+8080H=B4F3H,得到機內碼為B4F3H
5、1453H+A0A0H=B4F3H,得到機內碼為B4F3H
6、機內碼B4F3H-A0A0H=1453H的區位碼
大字的區碼是20H(32區,83位)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。