汉字区位码转换为“汉字ASCII码“
每個漢字及符號都有一個區位碼,即每個漢字有一個區號(兩位十進制)和一個位號(兩位十進制)。一共分了94個區,每個區中有94個漢字。
并且也有與其相對應的“漢字ASCII碼”,也稱漢字機內碼,指計算機內部存儲,處理加工和傳輸漢字時所用的由0和1符號組成的代碼。輸入碼被接受后就由漢字操作系統的“輸入碼轉換模塊”轉換為機內碼,與所采用的鍵盤輸入法無關。機內碼是漢字最基本的編碼,不管是什么漢字系統和漢字輸入方法,輸入的漢字外碼到機器內部都要轉換成機內碼,才能被存儲和進行各種處理。
其中轉換過程如下: 從鍵盤輸入一個漢字外碼,轉換模塊會獲得其區位碼,如“啊”的區號為16,位號為1,然后會將其轉換為國際碼漢字的國標碼可以在區位碼基礎上換算得到:國標碼=(區位碼的十六進制表示)+2020H(十六進制數后加H以用于辨識) 以“啊”為例:
區位碼 00010000 00000001
+2020H 00100000 00100000
國際碼 0011 0000 00100001
得到“啊”的國標碼為:3021H 隨后還要便要將國際碼轉換危機內碼進行存儲,機內碼和國標碼的轉換規則是:機內碼 = 國標碼+8080H =(區位碼的十六進制表示)+A0A0H。顯然,就是將國標碼的兩個字節的最高位均置為1。
國際碼 00110000 00100001
+8080H 00110000 00100000
機內碼 10110000 10100001
一個數在計算機中的二進制表示形式, 叫做這個數的機器數。機器數是帶符號的,在計算機用一個數的最高位存放符號, 正數為0, 負數為1,機內碼也不例外,并且負數在內存中是以補碼的方式存儲的,很明顯“啊”的機內碼表示一個負數,現在將其轉換為原碼:11010000 1101111,再兩個十六進制數轉換成十進制,分別是 -80 -95,也就是“啊“所對應的”漢字ASCII碼 “ ,可以使用字符數組來進行驗證
具體國標(GB2312-80)漢字編碼對照表
總結
以上是生活随笔為你收集整理的汉字区位码转换为“汉字ASCII码“的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【MATLAB教程案例7】基于Gardn
- 下一篇: VMware vSphere 8 发布(