漢字機內碼

計算機內部處理漢字的代碼

漢字機內碼,又稱“漢字ASCII碼”,簡稱“內碼”,指計算機內部存儲,處理加工和傳輸漢字時所用的由0和1符號組成的代碼。輸入碼被接受后就由漢字操作系統的“輸入碼轉換模塊”轉換為機內碼,與所採用的鍵盤輸入法無關。機內碼是漢字最基本的編碼,不管是什麼漢字系統和漢字輸入方法,輸入的漢字外碼到機器內部都要轉換成機內碼,才能被存儲和進行各種處理。

具體解釋


因為漢字處理系統要保證中西文的兼容,當系統中同時存在ASCII碼和漢字國標碼時,將會產生二義性。例如:有兩個位元組的內容為30H和21H,它既可表示漢字“啊”的國標碼,又可表示西文“0”和“!”的ASCII碼。為此,漢字機內碼應對國標碼加以適當處理和變換。
國標碼的機內碼為二位元組長的代碼,它是在相應國標碼的每個位元組最高位上加“1”,即
漢字機內碼=漢字國標碼+8080H
例如,上述“啊”字的國標碼是3021H,其漢字機內碼則是B0A1H。
漢字機內碼的基礎是漢字國標碼。
機內碼:為了避免ASCII碼和國標碼同時使用時產生二義性問題,大部分漢字系統都採用將國標碼每個位元組高位置1作為漢字機內碼。這樣既解決了漢字機內碼與西文機內碼之間的二義性,又使漢字機內碼與國標碼具有極簡單的對應關係。
漢字機內碼、國標碼和區位碼三者之間的關係為:區位碼(十進位)的兩個位元組分別轉換為十六進位后加2020H得到對應的國標碼;機內碼是漢字交換碼(國標碼)兩個位元組的最高位分別加1,即漢字交換碼(國標碼)的兩個位元組分別加80H得到對應的機內碼;區位碼(十進位)的兩個位元組分別轉換為十六進位后加A0H得到對應的機內碼。

舉例


機內碼位BEDF,求區位碼?
有兩種解法:1.BEDFH-A0A0H=1E3FH=3063D;
2.BEDFH-8080H=3E5FH(國標碼),3E5FH-2020H=1E3FH=3063D.