首页 理论教育 字符编码与汉字编码-计算机组原理

字符编码与汉字编码-计算机组原理

时间:2023-10-31 理论教育 版权反馈
【摘要】:由于低7位中有34种状态是用于控制字符,因此只有94种状态可用于汉字编码,所以字节的低7位只能表示94*94=8 836种状态。该标准的汉字编码表有94行、94列,其行号称为区号,列号称为位号。汉字的外码汉字的外码又称为输入码,是为了将汉字通过键盘输入计算机而设计的代码。

字符编码与汉字编码-计算机组原理

1.字符编码

字符编码就是规定怎样用二进制编码来表示文字和符号。由于字符编码是一个涉及世界范围内有关信息表示、交换、处理、存储的基本问题,因此,必须以国家标准或国际标准为准则。下面介绍几种常用的编码。

(1)ASCII码

ASCII码(America Standard Code for Information Interchange)是美国标准信息交换码,被国际化组织指定为国际标准,分为7位和8位两种版本。国际通用的是7位ASCII码,它已对大、小写英文字母阿拉伯数字标点符号及控制符等特殊符号编码,共128个字符,其中通用控制字符34个,阿拉伯数字10个,大、小写英文字母52个,各种标点符号和运算符号32个,如表2-2所列。

表2-2 ASCII码表

表中每个字符都对应一个数值,称为该字符的ASCII码值。例如:数字“0”的ASCII码值为48(30 H),“A”的为65(41H),“a”的为97(61H)等。

注意,阿拉伯数字、小写英文字母、大写英文字母3组常用的字符,各组字符的ASCII码值都是连续递增的。所以,记住每组中第一个字符的ASCII码值就可推算出其他字符。例如:“d”排在“a”后面的第3位,则其ASCII码值就比“a”的大3,就是100,“7”的ASCII码值比“0”的大7,也就是55。其他以此类推。

扩展的ASCII码已使用8位,可表示256个字符。

(2)BCD码

BCD(Binary Coded Decimal)码是“二进制编码的十进制数”的简写。有4位BCD码、6位BCD码和扩展的BCD码3种。

①8421 BCD码

8421 BCD码又可简称为8421码,曾被广泛使用,它用4位二进制数表示一个十进制数字,4位二进制数从左向右其权分别为8,4,2,1。为了对一个多位十进制数进行编码,需要有和十进制数的位数一样多的4位组。显然,8421BCD只能表示十进制数的0~9十个字符。

②扩展BCD码

8421 BCD码只能表示10个十进制数,自然字符数太少。即使后来产生的6位BCD码也只能表示64个字符,其中包括10个十进制数,26个英文字母和28个特殊字符。而在某些场合,还需要区分大、小写英文字母。扩展BCD码(Ex-tended Binary Coded Decimal Interchange Code,EBCDIC),它由8位组成,可表示256个符号。EBCDIC码就是为此提出的。

EBCDIC码是常用的编码之一,IBM及UNIVAC计算机系统就曾采用这种编码。

(3)Unicode码

EBCDIC码和扩展的ASCII码所提供的256个字符,对于英语和西欧地区的语言来说已经够用了。但对于亚洲和其他地区所用的表意文字还不够,它们需要表示更多的字符和意义,因此又出现了Unicode。

Unicode是一种16位的编码,能够表示654000多个字符或符号。而目前世界上的各种语言,一般都是用34 000多个字母或符号,所以Unicode可以用于任何一种语言。此外,Unicode保留30000多个符号供将来使用,如:古代语言或用户自定义符号。Unicode与现在流行的ASCII码完全兼容,因为二者的前256个符号是一样的。目前,Unicode已经在Windows NT、OS/2、Office等软件中使用。

2.汉字编码(www.xing528.com)

我国用户在使用计算机进行信息处理时,一般都要用到汉字,因此就要解决汉字编码输入技术。由于汉字是象形字,字的数目很多,常用汉字就有4 000~5 000个,加上汉字的形状和笔画多少差异很大,所以不可能像英文那样用少数几个确定的符号将汉字完全表示出来。汉字必须有它自己独特的编码。

(1)汉字的国标码

《信息交换用汉字编码字符集——基本集》是我国于1980年制定的国家标准GB 2312—80,代号为国标码,是国家规定的用于汉字信息处理使用的代码的依据。

GB 2312—80中规定了信息交换用的6 763个汉字和682个非汉字图形符号的代码。6 763个汉字按照其使用频度、组词能力及用途大小,分成一级常用汉字3 755个和二级常用汉字3 008个。

在此标准中,每个汉字(图形符号)采用双字节表示,每个字节只用低7位。由于低7位中有34种状态是用于控制字符,因此只有94种状态可用于汉字编码,所以字节的低7位只能表示94*94=8 836种状态。

该标准的汉字编码表有94行、94列,其行号称为区号,列号称为位号。双字节中用高字节代表区号,低字节表示位号。非汉字符号位于第1~11区,一级汉字位于16~55区,二级汉字位于第56~87区。

例如,“中”字的区号为54,位号为48,则其国标码为1010110 1010000(十六进制为5650H);“国”字的区号为25,位号为90,其国标码为0111001 1111010(十六进制为397AH)。

(2)汉字的内码

汉字的内码是供计算机系统内部进行存储、加工处理而统一使用的代码。目前广泛使用的一种内码称为变形的国标码,这种格式的机内码是由两个字节构成的,是将国标GB 2312—80交换码两个字节的最高位置变为1而得到的。其优点为表示简单,且与交换码之间存在明显的对应关系。如“中”字的国标码变为十六进制数5650H(01010110 01010000),其对应的内码为十六进制数D6D0H(11010110 11010000)。

(3)汉字的外码

汉字的外码又称为输入码,是为了将汉字通过键盘输入计算机而设计的代码。汉字的输入编码方法很多,表示形式多用字母、数字或符号。有流水码、拼音类输入码、拼形类输入码和音形结合类等几种类型。

(4)汉字的字形码

每个汉字,实质上都是一个特殊的图形符号。目前,汉字信息处理系统中表示汉字字形的方式大多是数字式的,即以点阵的方式表示汉字。所以这里讨论的汉字字形码,也就是指确定一个汉字字形点阵的代码,也叫字模或汉字输出码。

用点阵表示汉字,实际上就是用黑、白点表示汉字。在一个点阵中,凡笔画所到之处的点为黑点,记为“1”,否则为白点,记为“0”。这样,一个汉字的字形就可用二进制数表示了。

一般来说,存储汉字所用的点阵数越高,字形的质量越好,当然占用的存储容量也越多。汉字字形通常分为通用型和精密型两类,通用型汉字字形点阵分成3种:简易型,16×16点阵;普通型,24×24点阵;提高型,32×32点阵。

精密型汉字字形用于常规的印刷排版,由于信息量较大(字形点阵一般在96×96点阵以上),通常都采用信息压缩存储技术。

汉字的输出主要是指在显示器上或打印机上输出汉字对应的图形符号-字形。

汉字的点阵字形在汉字输出时要经常使用,所以要把各个汉字的字形信息固定的存储起来。存放各个汉字字形信息的实体称为字库。为满足不同需要,还出现了各种各样的字库,如宋体字库、黑体字库、楷体字库、简体字库和繁体字库等。配上为表示字形大小所采用的汉字放大、缩小技术等,就能使同一个字库可以产生大小不同的汉字。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈