第三章 汉字和西文字符存储与显示原理.ppt_第1页
第三章 汉字和西文字符存储与显示原理.ppt_第2页
第三章 汉字和西文字符存储与显示原理.ppt_第3页
第三章 汉字和西文字符存储与显示原理.ppt_第4页
第三章 汉字和西文字符存储与显示原理.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章汉字和西文字符存储与显示原理,主要内容:,3.1英文字符在计算机中表示3.2汉字在计算机中表示和显示,3.1英文字符在计算机中表示,3.1.1ASCII码英文字符、数字和计算机中用的控制符号在计算机中是用ASCII码来表示的。ASCII码(AmericanStandardCodeforInterchange)是美国国家信息交换标准码,现已成为国际通用的信息交换标准代码。ASCII码共有128个元素,其中通用字符32个、十进制数字10个、52个英文大小写字母和34个专用符号。这128个元素用一个字节二进制数表示,因为7位二进制数就可表示128个元素,该字节多余的最高位取0。,表3-17位ASCII码表,3.1.2英文字符的显示我们知道,无论CRT显示器,还是液晶显示器(LCD),它们的分辨率都是以像素为单位的,一个像素就是屏幕上的一个可以显示的最小单位,也就是常说的“点”。因此要在屏幕上显示一个英文字符也必须用点来表式,这些表示某种图形或英文字符的点的集合就是我们所说的点阵。常用的英文字符有88点阵和816点阵,如大写“A”88点阵如图3-1所示。,图3-1大写“A”88点阵,0 x30,0 x78,0 xCC,0 xCC,0 xFC,0 xCC,0 xCC,0 x00,88点阵共有8行,每行8个点;每行的8个点组成二进制的一个字节,字节的最高位D7在最左,最低位D0在最右。字节中打点的位(bit)值等于1,没有点的位bit值等于0。这样,每行的一个字节都有一个16进制数的值,例如第一行的值是0 x30,第二行的值是0 x78,8行8个字节数据是:0 x30,0 x78,0 xCC,0 xCC,0 xFC,0 xCC,0 xCC,0 x00。我们把这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点阵字模:0 x00,0 x00,0 x38,0 x6C,0 xC6,0 x06,0 xC6,0 xFE,0 xC6,0 x06,0 xC6,0 xC6,0 x00,0 x00,0 x00,0 x00,图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-31616点阵汉字在字模中排列,不同的汉字各字节数据不同,图3-4是仿宋体“哈”字的1616点阵字模,在点阵中,每一个小方格代表字节中的一位(bit),黑色的点bit值等于1,白色的点bit值等于0。,图3-4仿宋体“哈”字的1616点阵,0 x00,0 x40,0 x00,0 x40,0 x08,0 xA0,0 x7C,0 xA0,0 x49,0 x10,0 x49,0 x08,0 x4A,0 x0E,0 x4D,0 xF4,0 x48,0 x00,0 x48,0 x08,0 x4B,0 xFC,0 x7A,0 x08,0 x4A,0 x08,0 x02,0 x08,0 x03,0 xF8,0 x02,0 x08,如我们要在屏幕的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什么是区码,什么是位码?汉字库分多少区,每个区

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论