点阵汉字的原理及应用.docx
- 文档编号:12337733
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:8
- 大小:366.99KB
点阵汉字的原理及应用.docx
《点阵汉字的原理及应用.docx》由会员分享,可在线阅读,更多相关《点阵汉字的原理及应用.docx(8页珍藏版)》请在冰豆网上搜索。
点阵汉字的原理及应用
点阵汉字的原理及应用
点阵汉字原理与应用
一.汉字的编码
由于在电脑中,所有的数据都是以0和1保存的。
因此,想要用计算机来显示汉字前提就是要将汉字以二进制,即0和1形式进行编码。
GBK内码
在英文的显示操作中,一个字母、数字及字符均由1个ASCII码表示,并且由于英文字符种类相对较少,故其ASCII码是小于等于127的。
而汉字由于种类繁多,每个汉字有2个ASCII码构成,这两个ASCII码称为汉字的GBK内码,通常用十六进制表示。
例如,“啊”的GBK内码=B0A1。
汉字的GBK内码一定大于A0H,即160,目的是为了防止与英文的ASCII码产生冲突。
区位码
为了使每一个汉字有一个全国统一的代码,1980年,我国颁布了第一个汉字编码的国家标准:
GB2312-80《信息交换用汉字编码字符集》基本集,这个字符集是我国中文信息处理技术的发展基础,也是目前国内所有汉字系统的统一标准。
由于国标码是四位十六进制,如汉字的GBK内码,为了便于交流,大家常用的是四位十进制的区位码。
所有的国标汉字与符号组成一个94×94的矩阵(见图1所示)。
在此方阵中,每一行称为一个"区",每一列称为一个"位",因此,这个方阵实际上组成了一个有94个区(区号分别为01到94)、每个区内有94个位(位号分别为01到94)的汉字字符集。
一个汉字所在的区号和位号简单地组合在一起就构成了该汉字的"区位码"。
区位码和GBK内码之间可以相互转换,区位码=GBK内码-A0H。
例如:
“啊”的GBK内码=B0A1,则其区码=B0-A0=10H=16,而其位码=A1-A0=01,所以“啊”的区位码=1601,为4位十进制码。
在区位码中,01-09区为682个特殊字符,16~87区为汉字区,包含6763个汉字。
其中16-55区为一级汉字(3755个最常用的汉字,按拼音字母的次序排列),56-87区为二级汉字(3008个汉字,按部首次序排列)。
因此利用区位码便可实现对6000多个汉字的提取。
图3汉字“中”16*16点阵示意
14*14与12*12点阵字库
对于14*14和12*12的字库,理论上计算,它们所需要的点阵分别为(14*14/8)=25,(12*12/4)=18个字节,但是,如果按照这种方式来储存,那么取点阵和显示时,由于每一行都不是8的整数倍就会涉及到点阵的计算处理问题,会增加程序的复杂度,降低程序的效率。
为了解决这个问题,有些点阵字库会将14*14和12*12的字库按16*14和16*12来存储,即,每行还是按两个字节来存储,但是14*14的字库,每两字节的最后4位是没有使用,这个根据不同的字库会有不同的处理方式,所以在使用字库时要注意这个问题,特别是14*14的字库。
二、点阵汉字的获取
利用区位码获取汉字
汉字的点阵字库是根据区位码的顺序进行储存的,因此我们可以根据区位码来获得一个字库的点阵。
计算公式如下:
点阵起始位置=((区码-1)*94+(位码-1))*汉字点阵字节数
对于16*16点阵字库,公式即为:
点阵起始位置=((区码-1)*94+(位码-1))*32
获取点阵起始位置后就可以从这个位置开始读取出一个汉字的点阵。
利用GBK内码获取汉字
由于区位码和汉字的内码可以相互转换,自然也可以用GBK内码来获取汉字。
三、利用010Editor及画图工具详细演示汉字“点”的点阵过程
1、获取“点”字的GBK内码
新建一个文本文档,输入“点”字,保存。
然后用十六进制编辑器010Editor打开该文本文档(见图4所示),得到汉字“点”的GBK内码为B5E3。
图4汉字“点”GBK内码
2、在16*16点阵字库中获取汉字“点”
“点“字的区码=B5-A0=15H=21:
;”点“字的位码=E3-A0=43H=67。
从而“点”字在字库中的起始位置=((21-1)*94+(67-1))*32=62272=F340H。
用010Editor查看16*16点阵字库,按住键盘ctrl+g,输入F340,定位到此处。
选中当前一行及下一行,选菜单edit---copyas---copyashextext,粘贴到文本文件中,得到“点”的点阵数据(见图5所示)。
图5汉字“点”的点阵数据获取
3、在16*16表格中点阵汉字“点”
得到汉字“点”的点阵数据如下:
02000200020803FC020002103FF82010
201020103FF00000291024C844448004
每两个字节可以确定一行,用画图工具制作16*16表格,将上述十六进制点阵数据转化为二进制后即可描出该字的笔画。
例如以两个字节为一组,第一组十六进制数0200转化为二进制为0000001000000000,则第一行只需将第七个方格涂黑;第四组十六进制数03FC转化为二进制为0000001111111100,则第四行需将第7--14个方格均涂黑。
(见图6所示)
图6汉字“点”点阵过程示意
按照相同方法可完成“点”字的点阵(见图7所示)。
图7点阵汉字“点”
此为人工模拟汉字的点阵过程,在实际的计算机操作中,通过编写相应的程序即可让计算机自动完成如上点阵过程。
四、点阵汉字的应用
点阵汉字在计算机中的应用
点阵汉字原理使得计算机可以显示超过6000个的汉字,并且程序简单,速度快,运行良好,为计算机的使用者提供了许多便利。
点阵汉字在LED点阵显示屏上的应用
LED点阵显示的原理与上面演示的点阵过程是相同的,只是将在对应位置是否涂色改变为对应位置上的灯是否亮起。
点阵汉字在LED显示屏中的应用的简单原理如下:
LED点阵的行线上加载扫描通选信号,列线上为数据输入,当行线上有一负脉冲选通信号时,列端的四位数据中为“1”的发光二极管导通点亮(见图8所示)。
显示采用逐行扫描方式,数据断不断输入数据,行扫描按顺序逐行选通,扫描一个周期(4次)产生一帧画面。
图84*4共阴极LED阵列
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 点阵 汉字 原理 应用