1.4.3 计算机中的进制与编码
计算机是怎样“看见”文字图片,“听见”声音的呢?计算机只能处理“0”“1”组成的二进制代码,所以计算机处理信息时,先要对信息进行如图1-13所示的二进制编码。
图1-13 计算机处理信息示意图
1.字符编码(ASCII码)
字母、数字等各种字符都必须按约定的规则用二进制编码才能在计算机中表示。目前常用的是美国标准信息交换码(american standard code for informationinterchange),简称ASCII或ASCII码。
通用的ASCII码有128个元素,它包含0~9共10个数字、52个英文大小写字母、32个各种标点符号和运算符号、34个通用控制码。
计算机在存储使用时,一个ASCII码字符用一个字节表示,最高位为0,低7位用0或1的组合来表示不同的字符或控制码。例如,字母A的ASCII码为01000001,字母 a的ASCII码为01100001。
2.汉字编码
计算机中汉字的表示也是用二进制编码,同样是人为编码的。根据应用目的的不同,汉字编码分为外码、交换码、机内码和字形码,如图1-14所示。
图1-14 汉字编码过程
(1)输入码是用来将汉字输入到计算机中的一组键盘符号。常用的输入码包括音码(全拼)、形码(五笔)、音形码(搜狗)等。一种好的编码应有编码规则简单、易学好记、操作方便、重码率低、输入速度快等优点,每个人可根据自己的需要进行选择。
(2)计算机内部处理的信息都是用二进制代码表示的,汉字也不例外。而二进制代码使用起来不方便,因此需要采用交换码。中国标准总局1981年制定了中华人民共和国国家标准GB 2312—80《信息交换用汉字编码字符集——基本集》,即国标码。国标码是用于不同的具有汉字处理功能的计算机系统间交换汉字信息时使用的编码。国际码是二字节码,用两个七位二进制数编码表示一个汉字。由于国标码是一个四位十六进制数,但因为十六进制数我们很少用到,所以大家常用的是由四位十进制数组成的区位码。
在国标GB 2312—80中规定,所有的国标汉字及符号分配在一个94行、94列的方阵中,方阵的每一行称为一个“区”,编号为01区到94区,每一列称为一个“位”,编号为01位到94位,方阵中的每一个汉字和符号所在的区号和位号组合在一起形成的四个阿拉伯数字就是它们的“区位码”。区位码的前两位是它的区号,后两位是它的位号。用区位码就可以唯一地确定一个汉字或符号。汉字“母”字的区位码是3624,表明它在方阵的36区24位,问号“?”的区位码为0331,则它在03区31位。
(3)处理码也称为机内码。汉字的机内码是指在计算机中表示一个汉字的编码。机内码与交换码稍有区别。如上所述,汉字区位码的区码和位码的取值均在1~94之间,如直接用区位码作为机内码,就会与基本ASCII码混淆。为了避免机内码与基本ASCII码的冲突,需要避开基本ASCII码中的控制码(00H~1FH),还需与基本ASCII码中的字符相区别。因此需要将交换码转换为处理码。
(4)如图1-15所示,汉字的显示和输出普遍采用点阵方法。由于汉字数量多且字形变化大,对不同字形汉字的输出,就有不同的点阵字形。因此,字形码通常就是汉字点阵字形的代码。存储在介质中的全部汉字的字形码又称为字库。
图1-15 汉字编码示意图
16×16点阵的汉字其点阵有16行,每一行上有16个点。如果每一个点用一个二进制位来表示,则每一行有16个二进制位,需用两个字节来存放每一行上的16个点,并且规定其点阵中二进制位0为白点,1为黑点,这样一个16×16点阵的汉字需要用2×16即32个字节来存放。依次类推,24×24点阵和32×32点阵的汉字则依次要用72个字节和128个字节存放一个汉字,构成它在字库中的字模信息。
要显示或打印输出一个汉字时,计算机汉字系统根据该汉字的机内码找出其字模信息在字库中的位置,再取出其字模信息作为字形在屏幕上显示或在打印机上打印输出。
3.多媒体信息编码
声音是一种波,声波通过空气的振动传递到人的耳膜,引起振动,形成听觉效果。声音是一种模拟信号,如何将模拟信号转化成数字信号呢?可以通过采样和量化,将模拟信号转换成数字信号,然后再对数字信号进行二进制编码即可,如图1-16所示。
图1-16 声音编码过程
图像进行编码的过程是,将图像分解为许许多多的点,每个点称为“像素”。例如,我们所说的手机照相机为800万像素,指的就是一平方英寸上的像素点有800万个。对于每个像素点,可以使用若干个字节来表示其颜色,字节数越多,可以表示的颜色就越多。例如,如果用3个字节来表示每个像素点,那么就可以表示出16777216(256×256×256)种颜色。