求高人指点,GBK点阵字库的计算公式

2019-12-10 18:13发布

GBK全文本TXT.rar (43.58 KB, 下载次数: 93) 2012-11-19 20:16 上传 点击文件名下载附件
这2个文本文件是按照编码顺序排列的,gbk-gb18030.txt 是 根据 中国GBK码与Unicode码及原字形对照表.txt去掉无关字符排列的.
现在想用牧马字符这类的 文本文件转 点阵工具来转换,
转换结果成功,但是 计算汉字在 点阵库中的地址公式不明

网上找了个这个
我们把第一个字节代表的意义称为区,那么GBK 里面总共有126 个区(0XFE-0X81+1 ),
每个区内有 190 个汉字(0XFE-0X80+0X7E-0X40+2 ),总共就有 126*190=23940 个汉字。我
们的点阵库只要按照这个编码规则从 0X8140  开始,逐一建立,每个区的点阵大小为每个汉字
所用的字节数*190。这样,我们就可以得到在这个字库里面定位汉字的方法:

        当GBKL<0X7F 时:Hp=((GBKH-0x81)*190+GBKL-0X40)*(size*2) ;
        当GBKL>0X80 时:Hp=((GBKH-0x81)*190+GBKL-0X41)*(size*2) ;

    其中GBKH、GBKL 分别代表GBK 的第一个字节和第二个字节(也就是高位和低位) ,size
代表汉字字体的大小(比如16 字体,12 字体等),Hp 则为对应汉字点阵数据在字库里面的起
始地址(假设是从0 开始存放) 。

结果发现,字库前面部分,也就是 gb2312字符之前的,编号 0-6079 的汉字 正常
之后的,就错乱了,不知道公式了
求大侠指点
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。