admin管理员组文章数量:1567026
2024年3月31日发(作者:)
汉字的内码和区位码与显示汉字原理
汉字的内码和区位码
在计算机中英文字符是用一个字节的ASCII码表示,该字节最高位一般置0或用做奇
偶校验,故实际是用7位码来代表128个字符的,但对于众多的汉字,只有用两个字节才
能代表,这样用两个字节代表一个汉字的代码体制,国家制定了统一标准,称为国标码。
国标码规定,组成两字节代码的最高位为0,即每个字节仅只使用7位,这样在机器
内使用时,由于英文的ASCII码也在使用,可能将国标码看成两个ASCII码,因而规定用
国标码在机内表示汉字时,将每个字节的最高位置1,以表示该码表示的是汉字,这些国
标码两字节最高位加1后的代码称为机器内的汉字代码,简称 内码。
国家标准的 汉字字符集(GB2312-80)在汉字操作系统中是以汉字库的形式提供的。
汉字库结构作了统一规定,即将 字库分成94个区,每个区有94个汉字(以位做区别),
每一个汉字在汉字库中有确定的区和位编号(用两个字节),就是所谓的 区位码,区位
码的第一个字节表示区号,第二个字节表示位号,只要知道了区位码,就可知道该汉字在
字库中的地址。
当我们用某种输入设备例如键盘将汉字输入计算机时,管理模块将自动的把键盘输入
的汉字转换为内码。当要显示该汉字时,再由内码转换成区位码,在汉字库找到该汉字,
进行显示。如“哈”的区位码为2594,它表示该字字模在字符集的第25个区的第94个
位置。
每个汉字在字库中是以点阵形式存储的,常采用 12×12、16×16、24×24、48×48
点阵形式,同英文字模一样,每个点用一个二进制bit位表示,bit=1的点,当显示时,
就可以在屏上显示一个点,bit=0的点,则在屏上不显示,这样把存某字的点阵信息直接
用来在显示器上按上述原则显示,将出现对应的汉字。 最常用的汉字是16×16点阵,它
是由行、列各16个点,共256个点组成的点阵图案,每行的16个点在内存中占二个字节,
一个16×16点阵汉字共16行,在内存中占32个字节。
根据这些字节在字膜中存放的顺序,第一行的第一个字节我们称“0”号字节,第二
个字节我们称“1”号字节;第二行的第一个字节我们称“2”号字节,第二个字节我们
称“3”号字节。以此类推,最后一行的第一个字节我们称“30”号字节,第二个字节我
们称“31”号字节,每个字节高位在前,低位在后,即D7在一个字节的最左侧,D0在
最右侧。具体如图3-3所示:
如我们要在屏幕的X行Y列位置显示上面的“哈”字,则可以从点(X,Y)开始将0号
字节和1号字节的内容输出到屏幕上;然后行加1,列再回到,输出2号字节和3号字
节,依此类推16个循环即可完成一个汉字的显示. 输出一个字节数据时,该字节中“位”
(bit)为1时在该“位”位置打点,为0时该“位”位置打空白。
此外常用的汉字还有24×24点阵,它是由行列各24个点组成的点阵图案,它每列的
24个点在内存中占三个字节,一个24×24点阵汉字共24列,在内存中占72个字节;48×48
点阵,行×列为48×48,一个汉字占内存288个字节。12×12点阵(为方便编程把列12
点扩展为16点,既二个字节)行×列为12×16,一个汉字占内存24个字节。
GB2312-80中, 94个区中除6763个汉字外,第3~7区给这些符号留下了位置,
如第3区为英文大小写符号、第4区为日文平假名、第5区为日文片假名、第6区为大小
写希腊字母、第7区为大小写俄罗斯字母。这些字符每一个都有固定的区位码,当然也都
有一个固定的内码。当用某种输入法输入一个西文字符时,在计算机中是用内码表示的,
显示时通过内码计算出区位码,找到该字符字模进行显示。其中英文字符比较特殊,在西
文操作系统中,如上所述,它是以ASCII码存储的,而在汉字操作系统中,它是做为一个
汉字,以内码方式存储。
版权声明:本文标题:汉字的内码和区位码与显示汉字原理 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1711888742a332435.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论