您好,欢迎来到智榕旅游。
搜索
您的当前位置:首页1-6字符编码和汉字编码

1-6字符编码和汉字编码

来源:智榕旅游


1-6字符编码和汉字编码

A理论部分

本节主要介绍计算机对字符的表示及汉字在计算机中编码方法。

一、字符编码

在PC(Personal Computer)机中字符采用国际统一的标准:ASCII,(American Standard Code for Information Interchange ;美国信息交换标准代码)。计算机内部所有的字符同样用二进制数表示,我们可以通过ASCII编码表查到一个二进制数对应的字符。ASCII规定一个字符用八位二进制数(相当于一个字节)表示,但实际上真正表示字符的只占七位,其最高位用于奇偶校验。

因ASCII码表示字符占二进制数七位,所以我们可以计算一下ASCII可以表示二进制数范围是从0000000B到1111111B,用十进制数表示为从0到127,所以ASCII码可以表示128个字符。

ASCII码包括:不可见的字符、标点符号、数字、数学符号、大小字字母、特殊字符等等。下面列出基本

ASCII

码表(字符与十进制对照):

例1-6-1 根据ASCII码表,求字符“5”和“Q”的ASCII码?

解:在ASCII码表中,因“2”的ASCII码是50,类推可知“3”的ASCII码是51,“4”的ASCII码是52

所以“5”的ASCII码是53.

同样用类推法可求“Q”的ASCII是81.

ASCII码表中前32个与最后一个为不可打印的控制符号,有兴趣的同学可以学习其它课外材料来进一步了解ASCII码。

二、汉字编码

汉字是表音表意的符号,如何在计算机中显示汉字和处理汉字要依赖于固定编码,目

前对汉字编号有两种:国标码和机内码(也称内码)。

我国制定了“中华人民共和国国家标准信息交换汉字编码”,代号为“GB2312-80”,也就是国标码。国标码收录汉字、图形符号、西文字母等总计7445个,其中汉字6763个。根据汉字的使用频率又分为一级汉字3755个,按汉语拼音字母顺序排序,同音字按笔划从少到多排序;二级汉字3008个,按部首排序。在GB2312-80中,7445个字符和汉字分布在87个区中,每区最多94个字符。其中1到9区为图形字符,10到15区为空闲,15到55为一级汉字,56到87为二级汉字。国标码是在汉字分割两半的基础上,分别用八位二进制编码(在形式上表示国标码是两个八位二进制数,但最高位都为“0”)。为了便于计算机内部的汉字二进制处理,GB2312-80对所有的图形字符和汉字进行了双代码表示,一种是用两个字节二进制数给出的国标码(内部码中用到的;内部码也称内码,是在国标码的基础上进行奇偶校验而得),另一种是四位十进制数的区位码:在四位中高两位是区号,低两位是在区中的位号。例如汉字“啊”,国标码是3021H,区位码是1001D。

在ASCII码中,一个字符在机器内以一个字节的二进制编码表示,实际上只占用7位二进制数,所以字符编码的最高位都是“0”。而汉字在计算机中至少要用两个字节表示(有的汉字要用三字节、四字节)。在PC机中通常使用的是两个字节的汉字内码,计算机在处理时将汉字字模一分为二,每一半再用八位二进制数编码(最高位与ASCII一样用于奇偶校验),这样两个八位二进制数编码组成了国标码。由于计算机处理字符和汉字的二进制数位不同,所以计算机内部汉字在存储时耗费的内存单元要大于字符在存储时所占的内存单元,它们之间的关系为:1个汉字=2个字符。我们再用汉字“啊”来举例:国标码还可以

表示为0110000,0100001,即:30H,21H;内码为10110000,10100001,即B0H,A1H(BOH为高位字节,A1H为低位字节)。由此,根据八位二进制数(字节)最高位是“0”还是“1”可以区分计算机表示的是字符还是汉字:汉字的最高位是“1”,字符的最高位是“0”。

思考:为什么不直接用区位码作为计算机编码呢?

如果计算机中同时使用字符和汉字时,有可能产生冲突,我们有必要将区位码和ASCII统一管理起来。进一步避免汉字机内码与基本ASCII中的控制码的冲突,可以在区码和位码的基础上加20H(即加十进制的32),为了区别于基本ASCII码中的字符,可以上述的基础上再加上80H(即加十进制的128),这样确保了区位码和ASCII汉字的区位码表示方法分为区码和位码两部分,因为区码范围是1到94(01H到5EH),所以汉字高位内码与低位内码的取值均为161到2(A1H到FEH)。

三、汉字字模信息

计算机内部的汉字都是以图形方式在外设上显示的,若采用16×16的点阵来表示一个汉字,则一个汉字有16行,第一行上有16个点。由于计算机存储器的每个字节都有8个二进制位,所以表示汉字就有16个二进制位,因此可用两个字节不存放每一行上的16个点,“0”表示该点为白,“1”表示该点为黑。所以一个16×16点阵的汉字字形需要用(16/8)×16=32个字节来存放。这32个字节中的信息就构成了一个汉字的字模,所有汉字字模

的集合就构成汉字字库。汉字字库的建立是实现汉字系统的关键技术。所以根据公式:(点阵/8)×点阵=存储字节数可以求出任意点阵汉字字形所占用的内存字节数。

例1-6-2 求一篇256个24×24点阵汉字构成的文稿大约有多少KB?

解:先求1个24×24点阵汉字所占用的内存字节数:

(点阵/8)×点阵=存储字节数=(24/8)×24=72个字节

256个汉字×72个字节=18432字节=18432B

18432B=18432B/1024=18KB

所以:一篇256个24×24点阵汉字构成的文稿大约有18KB.

B实践部分

1、字符“D”ASCII码二进制码为1000100,求字符“H”的ASCII码的十六进制码?

2、用×点阵汉字构成汉字字库,一级汉字需要的存储容量是多少MB?

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- zrrp.cn 版权所有 赣ICP备2024042808号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务