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