中文字体点阵打印

根据对汉字使用频率的研究,可把汉字分成高频字(100 ),常用字(3000 ),次常用字(4000 ),罕见字(8000 )和死字(45000 ),即正常使用的汉字达15000 个。我国1981 年公布了《通讯用汉字字符集(基本集)及其交换码标准》GB2312-80 方案,把高频字、常用字、和次常用字集合成汉字基本字符集(6763 ),在该集中按汉字使用的频度,又将其分为一级汉字3755 (按拼音排序)、二级汉字3008 (按部首排序),再加上西文字母、数字、图形符号等700 

         2.6.1 区位码内码

         区位码:国家标准的汉字字符集(GB2312—80)在汉字操作系统中是以汉字库的形式提供的。汉字库结构作了统一规定,即将字库分成94 个区,每个区有94 个汉字(以位作区别)。每一个汉字在汉字库中有确定的区和位编号(用两个字节),这就是所谓的区位码(区位码的第一个字节表示区号,第二个字节表示位号。 

         内码:ANSI码是单一字节(8位二进制数)的编码集,最多只能表示256个字符,不能表示众多的汉字字符,使用双字节来表示汉字字符,以能够处理大数量的汉字字符;

         2.6.2内码到区位码的转换

         若汉字内码为十六进制数h2h1l2l1,则区号qh 相位号wh 分别为: 
         qh= h2h1-0xa0; 
         wh= l2l1-0xa0
 
        
若用十进制表示内码为dld2,则 
         qh=dl-l60
 
         wh=d2-160
 
        
即区位码qw 为: 
         qw=100*(d1-160)
(d2-160); 

         2.6.3 显示

         知道了区位码,就可知道该汉字在字库中的地址,每个汉字在字库中是以点阵字模形式存储的,如一般采用16×16点阵形式,每个点用一个二进位表示,存的点,当显示时,可以在屏上显示一个亮点,存的点,则在屏上不显示,这样把存某字的16×16 点阵信息直接用来在显示器上按上述原则显示,则将出现对应的汉字。

         因而该汉字在汉字库中离起点的偏移位置(以字节为单位),可计算为: 
         offset=(94*(qh-1)+(wh-1))* 32; 

16*16点阵字库为例,通常的方法是:将文件工作指针移到需要的汉字字模处、将汉字库文件读入一2*16数组再用for循环一位位地显示。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为伊痴狂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值