资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第三章 汉字和西文字 符存储与显示原理 主要内容:3.1 英文字符在计算机中表示3.2 汉字在计算机中表示和显示3.1 英文字符在计算机中表示 3.1.1 ASCII码英文字符、数字和计算机中用的控制符号在计算 机中是用ASCII码来表示的。ASCII码(American Standard Code for Interchange)是美国国家信息交换标准码,现已成为国际通用的信息交换标准代码 。ASCII码共有128个元素,其中通用字符32个、 十进制数字10个、52个英文大小写字母和34个专用 符号。这128个元素用一个字节二进制数表示,因为 7位二进制数就可表示128个元素,该字节多余的最 高位取0。 表3-1 7位ASCII码码表 D3D2D1D0 D6 D5 D4 000001001000110100010101100111 0000NULDELSP0P、p0001SOHDC1!1AQaq 0010STXDC22BRbr 0011ETXDC3#3CScs 0100EOTDC4$4DTdt 0101ENQNAK%5EUeu 0110ACKSYNKk 1100FFFSNn 1111SIUS/?O_oDEL3.1.2 英文字符的显示我们知道,无论CRT显示器,还是液晶显示器 (LCD),它们的分辨率都是以像素为单位的,一个像素就是屏幕上的一个可以显示的最小单位,也 就是常说的“点”。因此要在屏幕上显示一个英文字符也必须用点来表式,这些表示某种图形或英文字 符的点的集合就是我们所说的点阵。常用的英文字符有88点阵和816点阵,如大 写“A” 88点阵如图3-1所示。图3-1 大写“A”88点阵 0x30,0x78,0xCC,0xCC,0xFC,0xCC,0xCC,0x0088点阵共有8行,每行8个点;每行的8个点组成二 进制的一个字节,字节的最高位D7在最左,最低位D0 在最右。字节中打点的位(bit)值等于1,没有点的位 bit值等于0。这样,每行的一个字节都有一个16进制数 的值,例如第一行的值是0x30,第二行的值是0x78,8 行8个字节数据是: 0x30,0x78,0xCC,0xCC,0xFC,0xCC,0xCC,0x00。我们把这8个字节数据叫字符“A”的88点阵字模。 存储全部英文字符88点阵字模的存储单元叫英文字符 88点阵字库。字库是按ASCII码顺序存放,显示时, 按存放规律将要显示的字符的字模取出,按图3-1所示 顺序把字节数据输出到屏上即可,bit值等于1的点显示 时在屏上该bit 位置“打”点,bit值等于0的点显示时在屏 上该bit 位置“打”空白。816点阵显示原理同88点阵,88点阵一个字模 占8个字节,816点阵一个字模占16个字节。大写 “A” 816点阵如图3-2所示。 “A”816点阵字模: 0x00,0x00,0x38,0x6C, 0xC6,0x06,0xC6,0xFE, 0xC6,0x06,0xC6,0xC6, 0x00,0x00,0x00,0x00图3-2 大写“A”816点阵3.2 汉字在计算机中表示和显示3.2.1 汉字的内码和区位码 在计算机中英文字符是用一个字节的ASCII码表示,该字节最 高位一般置0或用做奇偶校验,故实际是用7位码来代表128个字符的,但对于众多的汉字,只有用两个字节才能代表,这 样用两个字节代表一个汉字的代码体制,国家制定了统一标 准,称为国标码。 国标码规定,组成两字节代码的最高位为0,即每个字节仅只 使用7位,这样在机器内使用时,由于英文的ASCII码也在使 用,可能将国标码看成两个ASCII码,因而规定用国标码在机 内表示汉字时,将每个字节的最高位置1,以表示该码表示的 是汉字,这些国标码两字节最高位加1后的代码称为机器内的 汉字代码,简称内码。 3.2 汉字在计算机中表示和显示国家标准的汉字字符集(GB2312-80)在汉字操作系统中是以汉字库的形式提供的。汉字库结构作了统一 规定,即将字库分成94个区,每个区有94个汉字(以位 做区别),每一个汉字在汉字库中有确定的区和位编号(用两个字节),就是所谓的区位码,区位码的第一个字 节表示区号,第二个字节表示位号,只要知道了区位码 ,就可知道该汉字在字库中的地址。当我们用某种输入设备例如键盘将汉字输入计算机时,管理模块将自动的把键盘输入的汉字转换为内码。当 要显示该汉字时,再由内码转换成区位码,在汉字库找 到该汉字,进行显示。如“哈”的区位码为2594,它表示 该字字模在字符集的第25个区的第94个位置。3.2.2 汉字的显示每个汉字在字库中是以点阵形式存储的,常采用 1212、1616、2424、4848点阵形式,同英文字 模一样,每个点用一个二进制bit位表示,bit=1的点 ,当显示时,就可以在屏上显示一个点,bit=0的点,则在屏上不显示,这样把存某字的点阵信息直接用来 在显示器上按上述原则显示,将出现对应的汉字。最常用的汉字是1616点阵,它是由行、列各16 个点,共256个点组成的点阵图案,每行的16个点在内 存中占二个字节,一个1616点阵汉字共16行,在内 存中占32个字节。 根据这些字节在字膜中存放的顺序,第一行的第一个字节 我们称“0”号字节,第二个字节我们称“1”号字节;第二行的第一个字节我们称“2”号字节,第二个字节我们称“3”号字节。以此类推,最后一行的第一个字节我们称“30”号字节,第二个字节我们称“31”号字节,每个字节高位在前,低位在后,即D7在一个字节的最左侧,D0在最右侧。具体如图3-3所示: 图3-3 1616点阵汉字在字模中排列 v不同的汉字各字节数据不同,图3-4是仿宋体 “哈”字的1616点阵字模,在点阵中,每一 个小方格代表字节中的一位(bit),黑色的 点bit值等于1,白色的点bit值等于0。图3-4 仿宋体“哈”字的1616点阵 0x00,0x40,0x00,0x40,0x08,0xA0,0x7C,0xA0,0x49,0x10,0x49,0x08,0x4A,0x0E,0x4D,0xF4,0x48,0x00,0x48,0x08,0x4B,0xFC,0x7A,0x08,0x4A, 0x08,0x02,0x08,0x03,0xF8,0x02,0x08如我们要在屏幕的X行Y列位置显示上面的“哈”字, 则可以从点(X,Y)开始将0号字节和1号字节的内容输出到 屏幕上;然后行加1,列再回到,输出2号字节和3号字节 ,依此类推16个循环即可完成一个汉字的显示。输出一个字节数据时,该字节中“位”(bit)为1时 在该“位”位置打点,为0时该“位”位置打空白。此外常用的汉字还有2424点阵,它是由行列各24 个点组成的点阵图案,它每列的24个点在内存中占三个字 节,一个2424点阵汉字共24列,在内存中占72个字节; 4848点阵,行列为4848,一个汉字占内存288个字节 。1212点阵(为方便编程把列12点扩展为16点,既二个 字节)行列为1216,一个汉字占内存24个字节。3.2.3 其它西文字符在计算机中存储和显示我国在1981年公布的信息交换用汉字编码字 符集(基本集)GB2312-80中,94个区中除 6763个汉字外,第37区给这些符号留下了位置 ,如第3区为英文大小写符号、第4区为日文平假名 、第5区为日文片假名、第6区为大小写希腊字母、 第7区为大小写俄罗斯字母。这些字符每一个都有固定的区位码,当然也都有 一个固定的内码。当用某种输入法输入一个西文字 符时,在计算机中是用内码表示的,显示时通过内 码计算出区位码,找到该字符字模进行显示。其中 英文字符比较特殊,在西文操作系统中,如上所述 ,它是以ASCII码存储的,而在汉字操作系统中, 它是做为一个汉字,以内码方式存储。如希腊字母“” 它的区位码是0634,它在字库 中位于6区34位,它的1616点阵字模如图3-6所示, 显示效果如图3-7。图3-6希腊字母“” 1616点阵字模 图3-7希腊字母“” 1616点阵图案 3.2.5字模提取与小字库建立一个1212点阵汉字在内存中占24个字节、一个 1616点阵汉字在内存中占32个字节、一个2424 点阵汉字在内存中占72个字节、一个4848点阵汉 字在内存中占288个字节;每一种点阵汉字库都有 6763个汉字、700多其它字符。所以汉字占用内存量是非常大的。一般控制系统汉字界面可能有几种不同的字体,可能还有西文字符,我们不可能将所涉及的字库都 引入程序。最现实的办法就是将我们系统中用到汉 字从大字库中提取出来,重新建立一个小字库,这 样就解决了使用数量少,种类多的汉字显示问题。第三章习题:1英文字符在计算机中如何表示?如何显示? 2说出控制字符“回车”,“空格”的ASCII值。 3说出的英文字符“A”,“a”,和数字“0”的ASCII值。 4汉字在计算机中如何表示?如何显示? 5什么是区码,什么是位码?汉字库分多少区,每个区多少位? 688、816英文字符在内存中占多少字节? 71212、1616、2424、4848点阵汉字在内存中各占多少字节?8什么是点阵字模?1616、2424点阵字模中,字节数据如何排列? 9除英文字符外,其它西文字符在计算机中如何表示?如何显示? 10使用CRT、LCD做显示设备,如何在屏上“打点 ”? 11为什么要从大字库中提取字模,建立自己的小字库?第三章习题:
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号