
1.3 计算机中信息的表示
1.3.1 数制
1.数制的概念
数制是指计数的规则。人们日常生活中最熟悉的进位计数制是十进制。在十进制中,数用0、1、2、3、4、5、6、7、8、9这10个符号来描述,计数规则是逢十进一。
一般来说,如果某一数制只采用R个基本符号,则称为R进制,R称为数制的“基数”,计数规则是“逢R进一”。数制中每一固定位置对应的单位值称为“权”,各个位置的权是R的R次幂,即Rn。一个数可按权展开为多项式,展开式计算结果为一个十进制数。
例如,十进制数598.958可按权展开为
(598.958)10=5×102+9×101+8×100+9×10-1+5×10-2+8×10-3=598.958
(598.958)10的下标10代表基数。
再比如,五进制数(432.234)5按权展开为
(432.234)5=4×52+3×51+2×50+2×5-1+3×5-2+4×5-3
=4×25+3×5+2×1+2×0.2+3×0.04+4×0.008
=100+15+2+0.4+0.12+0.032=117.552
117.552是十进制数。
2.常用的数制
为学习计算机中信息的表示,除十进制外,还要熟悉下面几种数制。
(1)二进制:R=2,基本符号为0、1,遵循“逢二进一”的规则。
(2)八进制:R=8,基本符号为0、1、2、3、4、5、6、7,遵循“逢八进一”的规则。
(3)十六进制:R=16,基本符号为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,这里的A~F对应十进制的10~15,遵循“逢十六进一”的规则。
十进制是人机交互时使用的数制,二进制是计算机内部数据处理时使用的数制,八进制和十六进制是计算机为表示计算机内部地址等数据信息方便所使用的数制。
3.不同数制之间的转换
一个具体的数字,可以用不同的数制来表示。如十进制数20,用二进制表示是10100;用八进制表示是24;用十六进制表示是14。不同进制之间相互转换有一定的方法,这里不去探讨具体的转换方法,读者需要进行转换的时候,可以利用软件工具完成,如Windows提供的计算器工具,就有十进制、二进制、八进制、十六进制数据之间相互转换的功能。图1-5显示了Windows 7系统提供的计算器工具的十进制、二进制、八进制、十六进制数据之间相互转换的界面。

图1-5 Windows 7系统计算器常用进制转换计算界面
1.3.2 计算机中数的表示
1.计算机中运用二进制的原因
在计算机内部,数据和程序都是以二进制形式来表示和处理的。这是因为:
(1)物理上易于实现。因为具有两种稳定状态的物理器件是很多的,如电路的导通与截止、电压的高与低,这恰好对应二进制中0和1两个符号。如果采用十进制,要制造具有10种稳定状态的物理电路,是非常困难的。
(2)二进制数运算简单。数学推导证明,对R进制,其算术求和、求积规则各有R(R+1)/2种。如采用十进制,就各有55种求和与求积的运算规则;二进制仅各有3种运算规则,因而简化了运算器等物理器件的设计。
(3)可靠性高。由于电压的高低、电流的通断等都是一种质的变化,两种状态分明,所以二进制代码传输的抗干扰能力强,鉴别信息的可靠性高。
2.数据的单位
在计算机内部,各种信息都是以二进制代码形式进行处理和存储的,因此,有必要介绍数据在计算机内部表示的单位。数据在计算机内部表示常采用“位”“字节”“字”等几种单位。
(1)位(bit)。位是计算机中表示数据的最小单位,表示1位二进制信息,它有两种状态:0或1。在有关计算机数据单位描述中,用3个小写字母bit表示,如1024bit,表示有1024位。
(2)字节(B)。1个字节由8位二进制数组成(1B=8bit)。在有关计算机数据单位描述中,用1个大写字母B表示字节,如1024B,表示有1024字节。字节是计算机内信息存储中最常用的基本单位。计算机的存储器通常是以多少字节来表示容量的。常用的存储单位有B、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB等,它们之间的等价关系如下:
KB:1KB=1024B=210B; MB:1MB=1024KB=220B; GB:1GB=1024MB=230B;
TB:1TB=1024GB=240B; PB:1PB=1024TB=250B; EB:1EB=1024PB=260B;
ZB:1ZB=1024EB=270B; YB:1YB=1024ZB=280B; BB:1BB=1024YB=290B;
NB:1NB=1024BB=2100B
(3)字(word)。CPU处理数据时,一次存取、加工和传送的二进制数据长度称为字。字所包含的二进制位数称为字长。一个字通常由一个或若干字节组成,在计算机中作为一个独立的信息单位处理。常用的字长有8位(1个字节)、16位(2个字节)、32位(4个字节)、64位(8个字节)等。
3.字符编码
由于计算机只能识别二进制,无法直接接收字符信息,因此,对于字符的处理,需要编制一套代码,建立字符与0和1之间的对应关系,以便计算机进行处理。常用的字符编码方案有ASCII码,用于对应欧美等英语国家的字符处理;其他非英语国家各自拥有对应的语言字符处理方案,如中国的汉字编码等。下面,对ASCII码、汉字编码做一个简介。
(1)ASCII码
ASCII(American Standard Code for Information Interchange,美国标准信息交换码)码占用8位(1个字节),其中7位用于字符的二进制编码,一位为奇偶检验位,一共可以表示128个字符(7位二进制代码的所有组合状态,即27=128,每一种组合状态代表一个字符)。128个字符包括:阿拉伯数字0~9(ASCII码为48~57)、52个大小写英文字母(A~Z为65~90,a~z为97~122)、32个标点符号和运算符、34个专用符号。
(2)汉字编码
计算机内部处理的信息,都是用二进制代码表示的,汉字也不例外。而二进制代码使用起来不方便,于是需要采用汉字信息交换码。目前,有如下一些汉字信息交换码方案。
①国家标准字符集GB 2312—1980。收入汉字6763个,符号715个,总计7478个字符,这是我国普遍使用的简体字字符集。楷体_GB2312、仿宋_GB2312、华文行楷等绝大多数字体支持显示这个字符集,亦是大多数输入法所采用的字符集。
②Big-5字符集,中文名大五码,是繁体字的字符集,收入13060个繁体汉字,808个符号,总计13868个字符。
③国家标准扩展字符集GBK,兼容GB 2312—1980标准,包含Big-5的繁体字,但是不兼容Big-5字符集编码,收入21003个汉字,882个符号,共计21885个字符,包括了中日韩(CJK)统一汉字20902个、扩展A集(CJK Ext-A)中的汉字52个。
④GB 18030—2000字符集,包含GBK字符集和CJK Ext-A全部6582个汉字,共计27533个汉字。
⑤方正超大字符集,包含GB 18030—2000字符集、CJK Ext-B中的36862个汉字,共计64395个汉字。宋体-方正超大字符集支持这个字符集的显示。Microsoft Office 2003简体中文版就自带这个字体。
⑥GB 18030—2005字符集,在GB 13030—2000的基础上,增加了CJK Ext-B的36862个汉字,以及其他一些汉字,共计70244个汉字。
⑦ISO/IEC 10646/Unicode字符集,这是全球可以共享的编码字符集,两者相互兼容,涵盖了世界上主要语文的字符,其中包括简繁体汉字,计有:CJK统一汉字编码20992个、CJK Ext-A编码6582个、CJK Ext-B编码36862个、CJK Ext-C编码4160个、CJK Ext-D编码222个,共计74686个汉字。
⑧汉字构形数据库2.3版,内含楷书字形60082个、小篆11100个、楚系简帛文字2627个、金文3459个、甲骨文177个、异体字12768个。可以安装该程序,亦可以解压后使用其中的字体文件,对于整理某些古代文献十分有用。
计算机在处理汉字时,除信息交换码外,还有外码、区位码、机内码、字形码、地址码等编码方案。
①外码也叫输入码,是用来将汉字输入到计算机中的一组键盘符号。常用的外码有拼音码、字形码等。
②区位码是国标码的另一种表现形式,把国标GB 2312—1980中的汉字、图形符号组成一个94×94的方阵,分为94个“区”,每区包含94个“位”,其中“区”的序号由01~94,“位”的序号也是从01~94。94个区中位置总数=94×94=8836个,其中7445个汉字和图形字符中的每一个占一个位置后,还剩下1391个空位,这1391个位置空下来保留备用。
③机内码是根据国标码的规定,每一个汉字对应的二进制代码。在磁盘上记录汉字代码也使用机内码。
④字形码是汉字的输出码,输出汉字时都采用图形方式,无论汉字的笔画多少,每个汉字都可以写在同样大小的方块中。
⑤地址码是指汉字库中存储汉字字形信息的逻辑地址码。它与汉字内码有着简单的对应关系,以简化内码到地址码的转换。
计算机处理汉字的基本过程是:输入汉字外码→根据汉字信息交换码的规定将汉字外码转换为机内码,计算机进行处理→以字形码输出(在打印机或显示器上输出)或以汉字地址码进行存储。
对于汉字如何输入到计算机这个问题,目前除利用键盘输入汉字以外,也有手写输入、语音输入、扫描输入汉字等多种输入技术。
4.其他信息在计算机中的表示
对于图形、图像、音频和视频等信息,也要转换为二进制,计算机才能够处理、存储和传输。
在计算机中表示图形、图像一般有两种方法:一种是矢量图,另一种是位图。基于矢量技术的图形以图元为单位,用数学方法来描述一幅图形,如一个圆可以通过圆心的位置和圆的半径来描述。在位图技术中,一个图像被看成点阵的集合,每一个点称作像素。在黑白图像中,每个像素都用1或者0来表示黑和白。灰度图像和彩色图像比黑白图像复杂,每一个像素都是由许多位来表示。由于图像的数据量很大,有些图像需要经过压缩后才能进行存储和传输,如JPEG就是一个图像压缩格式编码标准。
视频可以看作由多帧图像组成,由于其数据量非常大,因此需要经过一定的视频压缩算法处理后才能存储和传输,如MPEG-4就是一个视频压缩算法。音频是波形信息,是模拟量,要通过采样和量化,把模拟量表示的音频信号转换成由许多二进制数1和0组成的数字音频信号后,才能被计算机处理和存储。音频通常也需要经过压缩,如MP3就是一种压缩算法。