电脑内部汉字信息的存储运算的代码有四种:输入码、国标码、内码和字型码。
输入码:包括拼音编码和字型编码。微软拼音ABC就是拼音编码,五笔字型输入法就是字型编码。
国标码:又称为汉字交换码,在计算机之间交换信息用。用两个字节来表示,每个字节的最高位均为0,因此可以表示的汉字数为2的14次幂,就是16384个。将汉字区位码的高位字节、低位字节各加十进制数32(即十六进制数的20),便得到国标码。例如“中”字的国标码为8680(十进制)或7468(十六进制)。
内码:汉字内码是在设备和信息处理系统内部存储、处理、传输汉字用的代码。无论使用何种输入码,进入计算机后就立即被转换为机内码。规则是将国标码的高位字节、低位字节各自加上128(十进制)或80(十六进制)。例如,“中”字的内码以十六进制表示时应为F4E8。这样做的目的是使汉字内码区别于西文的ASCII,因为每个西文字母的ASCII的高位均为0,而汉字内码的每个字节的高位均为1。
字型码:表示汉字字形的字模数据,因此也称为字模码,是汉字的输出形式。通常用点阵、矢量函数等表示。用点阵表示时,字形码指的就是这个汉字字形点阵的代码。根据输出汉字的要求不同,点阵的多少也不同。简易型汉字为16′16点阵、提高型汉字为24′24点阵、48′48点阵等。如果是24′24点阵,每行24个点就是24个二进制位,存储一行代码需要3个字节。那么,24行共占用3′24=72个字节。计算公式:每行点数/8′行数。依此,对于48′48的点阵,一个汉字字形需要占用的存储空间为48/8′48=6′48=288个字节。
信息编码各国有各国不同的编码,国际上统一使用的编码为ASCII(美国标准信息交换代码),我国使用的有国标码BG(中文),和BIG5(中文繁体)两种。(1)国标码:是指我国1980年公布的“信息交换汉字编码字符集”,代号为“GB2312-80”。由连续的两个字节组成。(2)机内码:在计算机内表示汉字的代码是汉字机内码,汉字机内码由国标码演化而来,把表示国标码的两个字节的最高位分别加“1”,就变成汉字机内码。
(3)输入码: 汉字输入码是指直接从键盘输入的各种汉字输入方法的编码,属于外码。
(4)字型点阵码:用点阵方式来构造汉字字型,然后存储在计算机内,构成汉字字模库。目的是为了能显示和打印汉字。编码的转换举例
汉字 区位码 16进制 国标码 机内码
文 4636 2E24H 4E44H CEC4H
“文”的区位码为4636,区码和位码分别用16进制表示即为“2E24H”, 0010 1110 0010 0100转换成国标码“4E44H”,0100 1110 0100 0100机内码为“CEC4H”, 1100 1110 1100 0100
国家标准信息交换用汉字字符集GB2312-80收录汉字6763个,按照汉字的使用频度分为两级,其中一级汉字3755个,二级汉字3008个。16至55区是一级汉字,56至87区是二级汉字。
最简单的方法是找到你附近的高三的毕业生,他们高考时都要用到自己姓名的代码表,这个表就可以当成二级字库汉字区位码.还有一种方法:
1)在windows的造字程序中选择gb2312字符集,在'编辑'菜单里选择调用,就会显示出所有的字符集了.可以通过输入代码选择你需要的汉字,这里的代码不是区位码,是计算机的汉字内码.
2)汉字区位码与计算机内码的关系是:内码=(区码+0xA0)(位码+0xA0),比如'啊'字的区码是16(0x10),位码是01(0x01),那么它的汉字内码就是(0x10+0xA0)(0x01+0xA0)=B0A1这个B0A1就是'啊'字的计算机编码.
3)汉字的区位码:简体汉字的GB(国标)码常用的是GB2312-80编码,它以区位码表示,把汉字按照一定的规律分为若干个区(常用的字有大概90个区),每个区有94个位,区码和位码都是从1开始的前面的15个区是一些西文符号等,比如全角的英文,俄文,日文等实际的汉字区从16开始,第一个汉字的区位码是1601(啊字)
4)区位码与汉字库的对应关系:这主要和汉字库的点阵大小有关,比如16点阵的汉字在字库中是每32个字节(位元组)表示一个汉字的点阵对于一个完整的字库要通过区位码查找到相应的汉字起始点阵的算法是:[(区码-1)*94+(位码-1)]*单字的字节数.比如'啊'字在16点阵字库中的起始字节地址就是:[(16-1)*94+(1-1)]*32=0xB040(换算为16进制的值)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)