欢迎来到天天文库
浏览记录
ID:8999264
大小:23.50 KB
页数:2页
时间:2018-04-14
《区位码与汉字相互转换的算法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、区位码与汉字相互转换的算法.txt你无法改变别人,但你可以改变自己;你无法改变天气,但你可以改变心情;你无法改变生命长度,但你可以拓展它的宽度。一、由汉字得到其区位码标准字库含汉字6763个其中一级汉字3755(按拼音排序)、二级汉字(按部首排序),在加上西文字母、数字、图形符号等700个。字库分为94个区,每个区94个汉字,这就是区位码。汉字处理软件为了实现中西文汉字共同显示又不发生冲突。用码值160以上的ASCII用来当汉字内码,每个汉字由两个字符组成,其中前一个字节表示区码,后一个字节表示位码.区位码汉字部分取值范围是1601--8794(由WIN2000中区位输入法实
2、际操作得出)可以根据其两个字节的ASC码得到该字的区位码计算公式:区码=ASC(a)-160位码=ASC(b)-160区位码=区码*100+位码其中:a为第一字节b为第二字节根据汉字区位码的取值范围及每个汉字的区ASC码、位ASC码值可以得知:区ASC码值的范围:176--247 位ASC码值的范围:161--254在PB中实现汉字区位码的语法格式为:(ASC(MID(strhz,1,1))-160)*100+(ASC(MID(strhz,2,1))-160)由于区码和位码减去160后均为两位数字,所以以上算法相当于将两位的区码与位码组合起来,例如:
3、 汉字:中 的区ASC码与位ASC码分别为214 208,分别减去160后得54 48,组合后区位码即为5448二、由区位码得出汉字的算法1、先得出汉字的两段ASC码 可以设:汉字的区位码为Z, 汉字的区ASC码为X, 汉字的位ASC码为Y, 由本文第一部分所述从汉字得区位码的方法可以列出如下公式(x-160)*100+(y-160)=Z推导可得Z=100X+y-16160当我们已知一个汉字的区位码(Z)时,又已知X的变化范围为176--247,Y的变化范围为161--254 可以做出以下程序:intascqm,ascwmstringstrhzforascqm
4、=176to247forascwm=161to254if100*ascqm+ascwm-16160=zthenmessagebox("","ascqm="+string(ascqm)+""+"ascwm="+string(ascwm))endifnextnext经验证,以上程序得出的区码和位码一定是唯一值,即汉字的ASC编码有一个更简单的方法: 将区位码分成两部分,每部分分别加160即可得到区ASC码和位ASC码,算法如下: 区ASC码=INTEGER(MID(mid_str,1,2))+160 位ASC码=INTEGER(MID(mid_s
5、tr,3,2))+1602、得出区ASC码和位ASC后,将其组合输出即可得汉字 strhz=char(ascqm)+char(ascwm)
此文档下载收益归作者所有