导航:首页 > 编程大全 > 汉字字模数据库

汉字字模数据库

发布时间:2022-08-19 14:21:31

『壹』 请介绍汉字输入码(外码)、内码、汉字库的概念

信息编码各国有各国不同的编码,国际上统一使用的编码为ASCII(美国标准信息交换代码),我国使用的有国标码BG(中文),和BIG5(中文繁体)两种。(1)国标码:是指我国1980年公布的“信息交换汉字编码字符集”,代号为“GB2312-80”。由连续的两个字节组成。
(2)机内码:在计算机内表示汉字的代码是汉字机内码,汉字机内码由国标码演化而来,把表示国标码的两个字节的最高位分别加“1”,就变成汉字机内码。
(3)输入码: 汉字输入码是指直接从键盘输入的各种汉字输入方法的编码,属于外码。
(4)字型点阵码:用点阵方式来构造汉字字型,然后存储在计算机内,构成汉字字模库。目的是为了能显示和打印汉字。编码的转换举例
汉字 区位码 16进制 国标码 机内码
文 4636 2E24H 4E44H CEC4H
“文”的区位码为4636,区码和位码分别用16进制表示即为“2E24H”, 0010 1110 0010 0100转换成国标码“4E44H”,0100 1110 0100 0100机内码为“CEC4H”, 1100 1110 1100 0100
国家标准信息交换用汉字字符集GB2312-80收录汉字6763个,按照汉字的使用频度分为两级,其中一级汉字3755个,二级汉字3008个。16至55区是一级汉字,56至87区是二级汉字。

『贰』 所有汉字的字型以点阵字模的形式储存在哪里

所有汉字的字型以点阵字模的形式储存在字模库文件里。

计算机汉字信息处理包括汉字输入、汉字显示、汉字输出等,用于显示的汉字点阵一般为16×16,每个汉字占32个字节,因此为实现近8000个汉字在计算机上显示,必须为它配一个庞大的汉字点阵字模库(简称字库)。

汉字点阵在汉字库中的地址计算公式:

汉字库种类繁多,但都是按照区位的顺序排列的。前一个字节为该汉字的区号,后一个字节为该字的位号。每一个区记录94个汉字,位号则为该字在该区中的位置。

计算公式为: (94*(区号-1)+位号-1)一个汉字字模占用字节数 对于16点阵的字库,1个汉字字模占用32字节。对于12点阵字库,字摸每行的位数均补齐为8的整数倍,于是实际该字库的位长度是16*12,即占用24字节.在计算机中常用的汉字编码为汉字内码,不是区位码,需要进行转换。

『叁』 在汉字库中寻找汉字字模时采用_________码 A、地址 B、输入 C、机内 D、字形

选A。在汉字库中寻找汉字字模时采用__地址__码。
汉字输入码转换为机内码之后,再经转换处理为地址码,才能得到字形码,最终输出得到汉字。

『肆』 关于计算机汉字的编码,计算机中的汉字库中大概有多少个

电脑汉字的编码,电脑汉字库中的汉字数量由字符集决定的,GB2312的字符集约6000多,GBK约1-2万,GB18030约6万。
电脑内部汉字信息的存储运算的代码有四种:输入码、国标码、内码和字型码。
输入码:包括拼音编码和字型编码。微软拼音ABC就是拼音编码,五笔字型输入法就是字型编码。
国标码:又称为汉字交换码,在计算机之间交换信息用。用两个字节来表示,每个字节的最高位均为0,因此可以表示的汉字数为2的14次幂,就是16384个。将汉字区位码的高位字节、低位字节各加十进制数32(即十六进制数的20),便得到国标码。例如“中”字的国标码为8680(十进制)或7468(十六进制)。
内码:汉字内码是在设备和信息处理系统内部存储、处理、传输汉字用的代码。无论使用何种输入码,进入计算机后就立即被转换为机内码。规则是将国标码的高位字节、低位字节各自加上128(十进制)或80(十六进制)。例如,“中”字的内码以十六进制表示时应为F4E8。这样做的目的是使汉字内码区别于西文的ASCII,因为每个西文字母的ASCII的高位均为0,而汉字内码的每个字节的高位均为1。
字型码:表示汉字字形的字模数据,因此也称为字模码,是汉字的输出形式。通常用点阵、矢量函数等表示。用点阵表示时,字形码指的就是这个汉字字形点阵的代码。根据输出汉字的要求不同,点阵的多少也不同。简易型汉字为16′16点阵、提高型汉字为24′24点阵、48′48点阵等。如果是24′24点阵,每行24个点就是24个二进制位,存储一行代码需要3个字节。那么,24行共占用3′24=72个字节。计算公式:每行点数/8′行数。依此,对于48′48的点阵,一个汉字字形需要占用的存储空间为48/8′48=6′48=288个字节。

『伍』 谁能解释一下汉字字模的作用是什么

b4,b1,b0 =字库A在位平面2 中的区号b5,b3,b2 =字库B在位平面2 中的区号*/EGA b4,b5没用AX=1103h如:BL的b4,b1,b0=1,1,1 则表示字库A将选择7号区的字库。此时,属性字节的B3位用于选择使用到的字符集(A或B,为1是使用字符集A)。若只激活一种字符集(A、B的值相同),属性字节的b3位可用作选择字符的高亮度。现在,若我们将西文字符字库放置于平面2的n区号,中文字符字库放置于平面2的m区号(m<>n),便可以圆满在西文文本方式下显示中西混合字串,而且互不干涉。这种汉字显示的方式的优点就是显示速度很快,缺点就是能显示的汉字太少,在这里我不建议大家使用!相关的程序请在本论坛找qb45写的帖子!三,图形模式下显示汉字既然是图形界面,只要把汉字当成一幅画,画在显示屏上不就可以了。关键在于如何取得汉字的图形,在这里汉字图形有两种格式,一个是点阵,一个是矢量,一个16*16的点阵字模是记载的16*16的点阵数据。而矢量字库记载的是公式,一个字比如横撇的都是用公式来描述,这样可以很方便的进行无及缩放,这里我主要讲讲点阵字库,因为矢量字库我也没有弄过!那些中文版的DOS显示汉字的方式也就是在图形界面下画出汉字的,它们实际已经提供了现成的点阵字库文件。例如常用的16×16点阵HZK16文件,12×12点阵HZK12文件等等,这些文件包括了GB2312字符集中的所有汉字。现在只要弄清汉字点阵在字库文件中的格式,就可以按照自己的意愿去显示汉字了。下面以HZK16文件为例,分析取得汉字字模的方法。HZK16文件是按照GB 2312-80标准,也就是通常所说的国标码或区位码的标准排列的。国标码分为 94个区(Section),每个区 94 个位(Position),所以也称为区位码。其中01~09 区为符号、数字区,16~87 区为汉字区。而10~15 区、88~94 区是空白区域。如何取得汉字的区位码呢?在计算机处理汉字和ASCII字符时,使每个ASCII字符占用1个字节,而一个汉字占用两个字节,其值称为汉字的内码。其中第一个字节的值为区号加上32(20H),第二个字节的值为位号加上32(20H)。为了与ASCII字符区别开,表示汉字的两个字节的最高位都是1,也就是两个字节的值都又加上了128(80H)。这样,通过汉字的内码,就可以计算出汉字的区位码。具体算式如下:qh=c1-32-128=c1-160 wh=c2-32-128=c2-160或 qh=c1-0xa0 wh=c2-0xa0qh,wh为汉字的区号和位号,c1,c2为汉字的第一字节和第二字节。根据区号和位号可以得到汉字字模在文件中的位置:location=(94*(qh-1)+(wh-1))*一个点阵字模的字节数。那么一个点阵字模究竟占用多少字节数呢?我们来分析一下汉字字模的具体排列方式。例如要显示的“汉”字,使用16×16点阵。字模中每一点使用一个二进制位(Bit)表示,如果是1,则说明此处有点,若是0,则说明没有。这样,一个16×16点阵的汉字总共需要16*16/8=32个字节表示。字模的表示顺序为:先从左到右,再从上到下,也就是先画左上方的8个点,再是右上方的8个点,然后是第二行左边8个点,右边8个点,依此类推,画满16×16个点。 4、提取汉字的字模显示汉字是把从文件提取的字模画出来,而需要字模就是把提取的数据输出到文件!对于其它点阵字库文件,则也是使用类似的方法进行显示。例如HZK12,但是HZK12文件的格式有些特别,如果你将它的字模当作12*12位计算的话,根本无法正常显示汉字。因为字库设计者为了使用的方便,字模每行的位数均补齐为8的整数倍,于是实际该字库的位长度是16*12,每个字模大小为24字节,虽然每行都多出了4位,但这4位都是0(不显示),并不影响显示效果。还有UCDOS下的HZK24S(宋体)、HZK24K(楷体)或HZK24H(黑体)这些打印字库文件,每个字模占用24*24/8=72字节,不过这类大字模汉字库为了打印的方便,将字模都放倒了,所以在显示时要注意把横纵方向颠倒过来就可以了。这样我们就完全清楚了如何得到汉字的点阵字模,这样就可以在程序中随意的显示汉字了。在编程中,汉字的的显示速度的瓶径主要在读取字模和画图语句的效率方面,由于汉字字摸是以文件的方式保存在磁盘上的,那么每次读一个字都会在磁盘上操作,极大的降低了汉字的显示速度!在你程序中使用的汉字数目不多,也可以不必总是在程序里带上几百K的字库文件,也许你的程序才只有几十K。这样可以事先将所需要显示的汉字字模提取出来,一次读入内存,这样速度就能得到极大的提高,当然如果你要用到所有的汉字这个方法就不行了,不过,你可以象UCDOS那样,把字模放到EMS高端内存中,从内存中读总是比磁盘上快几个数量级!在画图语句上,可以自己写,不用语言带的那个画图语句,直接写显存的速度是最快的!详细的自己研究!
OPEN "hzk16" FOR BINARY AS #1IF LOF(1) = 0 THEN PRINT "没有汉字库! ":ENDSCREEN 12hz1$ = "汉字显示的演示"hz 1, 100, hz1$, 11SUB hz (x0, y0, hz.word$, hzcol)REM 显示汉字的子程序savex0 = x0: savey0 = y0FOR now = 1 TO LEN(hz.word$)qu = ASC(MID$(hz.word$, now, 1))IF qu >= 161 THENnow = now + 1IF now > LEN(hz.word$) THEN EXIT FORwei = ASC(MID$(hz.word$, now, 1))ps& = ((qu - 161) * 94& + wei - 161) * 32& + 1SEEK #1, ps&zimo$ = INPUT$(32, 1)num = 1FOR y = 0 TO 15chr1$ = MID$(zimo$, num, 1)num = num + 1chr2$ = MID$(zimo$, num, 1)num = num + 1chr3$ = chr2$ + chr1$LINE (x0, y0 + y)-STEP(15, 0), hzcol, , CVI(chr3$)NEXT yx0 = x0 + 16ELSESEEK #2, qu * 16zimo$ = INPUT$(16, 2)FOR y = 1 TO 16zmchr$ = CHR$(0) + MID$(zimo$, y, 1)LINE (x0, y0 + y)-STEP(15, 0), hzcol, , CVI(zmchr$)NEXT yx0 = x0 + 8END IFNEXT nowx0 = savex0: y0 = savey0END SUB

阅读全文

与汉字字模数据库相关的资料

热点内容
授权的苹果手机u盘 浏览:983
cad如何跨文件复制保持尺寸 浏览:240
苹果手机显示在桌面的按键圆圈 浏览:229
班级怎么创建网站 浏览:26
win10系统重装只剩c盘 浏览:972
句馆app怎么用 浏览:98
极速下载管家的文件路径 浏览:535
网站产品是什么意思 浏览:183
苹果电脑怎么压缩视频文件怎么打开 浏览:435
app的发展趋势国家政策报告 浏览:895
字符串反转java 浏览:321
如何制作安装系统镜像文件 浏览:399
win10文件夹左上角有红点 浏览:487
你为什么学plc编程 浏览:828
网络连接没了 浏览:991
代码打印pdf 浏览:563
扣扣红包网络连接失败 浏览:301
win10商城下载文件在哪 浏览:975
系统制作镜像文件 浏览:249
苹果手机指纹贴有危险 浏览:329

友情链接