计算机文化基础教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 计算机中的信息编码

1.工作描述

计算机中的信息分为数据和指令,前者是被计算机处理的信息,分为数值型数据与非数值型数据(如字符和图像等),后者则是计算机产生各种控制命令的基本依据。本节将对计算机中涉及的数据及其编码进行讲解,为熟悉计算机基础知识奠定基础。

2.工作目标

从表示数据的数制入手,了解数制间的转换,掌握数据的单位,熟悉数据的编码。

3.工作分解

4.工作实施

任务一:了解数制

在日常生活中,我们总是用若干数位的组合来表示一个数,如果从0开始进行加1计数,以期得到各种数值,就存在由低位向高位进位的问题,这种按一定进位计数的数制就是进位制,简称为数制。数值数据是有大小的,通常人们习惯采用的是十进制。但在计算机内,各种信息都是以二进制代码形式表示的,这是因为采用二进制表示信息物理器件容易实现,并且二进制数据运算简单,使计算机可靠性高、可用性强。在设计研究计算机时还会采用八进制和十六进制。

(1)十进制计数制

基数:是指数制中会产生进位的数值,它等于各数位中允许选用的数码的个数,十进制的基数是10。

数字:0、1、2、3、4、5、6、7、8、9。

位权:在一个数中,数码处于不同的数位上,它所代表的数值是不同的。例如,在十进制数111中,个位上的1表示100,而十位上的1表示101,百位上的1表示102。在进位制中,每个数码所表示的数值等于该数码本身的值乘以一个它所在数位有关的常数,这个常数就称为该位的位权,简称为权。

进位规则:逢十进一。

十进制是人们习惯使用的一种进位计数制。

(2)二进制计数制

基数:2。

数字:0、1。

位权:以2为底的幂。

进位规则:逢二进一。

二进制是计算机中最常用的数制。

(3)八进制计数制

基数:8。

数字:0、1、2、3、4、5、6、7。

位权:以8为底的幂。

进位规则:逢八进一。

(4)十六进制计数制

基数:16。

数字:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。

位权:以16为底的幂。

进位规则:逢十六进一。

在计算机中,通常用数字后面跟一个英文字母表示该数进位计数制。十进制数一般用D (Decimal)或d表示,二进制数用B(Binary)或b表示,八进制数用O(Octal)或o表示,十六进制数用H(Hexadecimal)或h表示。

任务二:掌握数制间的转换

人们习惯采用十进制数,计算机采用的是二进制数,书写时又多采用八进制数或十六进制数,因此,必然产生各种进位计数制之间的相互转换问题。

(1)任意进制数(用R表示)转换为十进制数

位权相加法:把R进制数每位上的权数与该位上的数字相乘,然后求和即得要转换的十进制数。即:

【例1-1】 将二进制数10101转化成十进制数。

(10101)2=1×24+0×23+1×22+0×21+1×20=16+4+2+1=(21)10

【例1-2】 将八进制数125转换成十进制数。

(125)8=1×82+2×81+5×80=64+16+5=(85)10

【例1-3】 将十六进制数15A转换成十进制数。

(15A)16=1×162+5×161+10×160=256+80+10=(346)10

(2)十进制数转换为R进制数

在将十进制转换成R进制时,需要对整数部分和小数部分进行分别处理:

整数部分连续除以R,其余数位的序列就是对应的进位计数制的整数部分。

小数部分连续乘以R,取其整数构成的序列就是对应的进位计数的小数部分。

【例1-4】 将十进制数44.125转换成二进制数。

【例1-5】 将十进制数44.125转换成八进制数。

转换结果:(44.125)10=(54.1)8

【例1-6】 将十进制数44.125转换成十六进制数。

转换结果:(44.125)10=(2C.2)16

(3)二进制数与八进制数、十六进制数之间的转换

大家知道,23=8,24=16,也就是说,1个八进制位等于3个二进制位,1个十六进制位等于4个二进制位进制。因此,很容易实现二进制数与八进制数、十六进制数之间的转换。

① 二进制数转换成八进制数或十六进制数。

转换方法:从小数点开始,向左或向右每3位或4位二进制数分成一组(不足位数,整数部分高位补0,小数部分低位补0),然后按对应位置写出每组二进制数等值的八进制数或十六进制数。

【例1-7】 将二进制数10011010110转换成八进制数。

转换结果:(10011010110)2=(2326)8

【例1-8】 将二进制数1001.1010110转换成十六进制数。

转换结果:(1001.1010110)2=(9.AC)16

② 八进制数或十六进制数转换成二进制数。

转换方法:将每位八进制数或十六进制数用3位或4位二进制数代替即可,小数点不动。

【例1-9】 将八进制数7153转换成二进制数。

转换结果:(7153)8=(111001101011)16

【例1-10】 将十六进制数9B28转换成二进制数。

转换结果:(9B28)16=(1001101100101000)2

(4)八进制数与十六进制数之间的转换。

八进制数与十六进制数之间不能直接转换,它们之间可通过二进制数间接地实现转换。

【例1-11】 将八进制数476转换成十六进制数。

(476)8=(100111110)2=(13E)16

【例1-12】 将十六进制数3C45转换成八进制数。

(3C45)16=(0011110001000101)2=(36105)8

常用计数制对照表如表1.1所示。

表1.1 常用计数制对照表

任务三:掌握数据的单位

计算机中数据的常用单位有位、字和字节。

(1)位(bit,简称为b)

位又称比特,是计算机表示信息的数据编码中的最小数据单位,即一位二进制数。1位二进制的数码用0或1来表示。

(2)字节(Byte,简称为B)

字节是计算机存储信息的最基本单位。1个字节用8位二进制数表示。通常计算机以字节为单位来计算存储容量。例如,计算机内存容量和磁盘的存储容量等都是以字节为单位表示的。

存储空间容量的单位除了用字节表示以外,还可以用千字节(KB)、兆字节(MB)、吉字节(GB)和太字节(TB)等表示。它们之间的换算关系如下:

1KB=1024B 1MB=1024KB

1GB=1024MB 1TB=1024GB

(3)字(Word)

字由若干个字节组成(一般为字节的整数倍),如16位、32位和64位等。它是计算机进行数据处理和运算的单位,它包含的二进位个数称为字长。不同档次的计算机有不同的字长,字长是衡量计算机一个重要的性能指标。

任务四:熟悉数据的编码

数据泛指一切可以被计算机接受并处理的符号,包括数值、文字、图形、声音和视频等各种信息。在计算机中,数据信息只有转化成数字编码的形式,计算机才能进行处理。编码就是将一类数据按某一编码表转换成对应代码的过程,编码技术应用于许多领域。计算机中只识别0和1码,因此,在计算机中对数字、字符及汉字就要用二进制的各种组合形式来表示,这就是二进制的编码系统。

(1)数值数据的编码

数值数据指日常生活中所说的数或数据,它有正负和大小之分,还有整数和实数之分。数值数据在计算机中是用二进制代码表示的。我们把一个数在计算机内部表示成的二进制形式称为机器数,原来的数称为这个机器数的真值。机器数有不同的表示方法,常用的有原码、反码和补码等。

原码是最简单的一种机器数表示方法。原码表示的规则是,最高位(最左边一位)表示数的符号:“0”表示正号,“1”表示负号;其余各位表示数的大小,即这个数的绝对值。

补码表示的规则是,正数的补码即是它本身;负数的补码可以用以下方法求得:符号位取1,其余各位按其真值取反(即0变1,1变0),然后在它的末位上加1。

反码与补码的不同之处仅仅在于负数的反码只求反,不加1。

对于小数的表示方法有两种,即定点数表示和浮点数表示。

关于数值数据的更多知识,在此不再展开讨论。有兴趣的读者可以参考相关书籍。

(2)非数值数据的编码

非数值数据是指除数值数据之外的字符,如各种符号、数字、字母和汉字等。同样,它们也是用二进制代码来表示的。

① 字符编码。

在计算机中使用最广泛的字符编码是ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),ASCII码被国际化标准组织确定为世界通用的国际标准,如表1.2所示。

表1.2 ASCII字符编码表

从表中可以看出,每个字符用7位二进制码表示,一个字符在计算机内用8位表示,基本ASCII码最高位为0,扩充ASCII码的最高位为1。基本ASCII码共有128个字符,其中95个编码对应着计算机终端输入并可以显示的字符,如英文大小写字母各26个、0~9的数字符和标点符号等,另外33个字符是控制码,控制着计算机某些外围设备的工作特性和软件运行情况。

如果需要确定字母、数字及各种符号的ASCII码值,可在表中查出其所在的位置,根据字符所在行的高3位(d6d5d4)和列的低4位(d3d2d1d0)编码查出。

例如,字符A的ASCII码是1000001,用十六进制数表示为41H,用十进制数表示为65D。

② 二—十进制的数字编码。

我们日常生活中习惯使用十进制数,为了使计算机能识别和存储十进制数,并能直接用十进制数形式进行运算,就需要对十进制数进行编码,即用0和1的不同组合形式来表示十进制数的各个数位上的数字,进而表示一个十进制数。

将十进制数表示为二进制编码的形式,称为十进制数的二进制编码,简称二—十进制编码或BCD(Binary-Coded Decimal)码。

最常用的二—十进制的数字编码是8421码,其表示方法是每一位十进制数用四位二进制数表示,从左到右分别为8.4.2.1权码,4位二进制数有16种编码,只取0000~1001十种表示十进制数中的0~9。表1.3列出了BCD码与十进制数、二进制数的对应关系。

表1.3 BCD码与十进制数、二进制数的对应关系

③ 汉字编码。

与西文字符不同,汉字的字符很多,所以汉字编码远比西文字符编码复杂。汉字编码主要用于解决汉字输入、处理和输出的问题。根据对汉字的输入、处理和输出的不同要求,汉字的编码主要分为4类:汉字输入码、汉字内部码、汉字字形码和汉字交换码。

汉字输入码(外码):输入汉字时使用的编码称为汉字输入码,也称为汉字的外码(简称外码),其作用是按照某一方式输入汉字。目前我国的汉字输入码编码方案有上千种,主要分为4类:数字编码(国际区位码、电报码)、拼音编码(全拼、双拼)、字型编码(五笔)和音形编码(自然码)。

汉字内部码(内码):汉字内部码是指在计算机内部处理汉字信息时所使用的汉字编码,汉字内部码也称为汉字机内码(简称内码)。汉字输入到计算机后,计算机系统一般都会把各种不同的汉字输入编码转换成唯一的机内码。在汉字信息系统内部,对汉字信息的采集、传输、存储和加工运算的各个过程都要用到汉字机内码。

汉字字形码(字模码):汉字字形码是指文字字形存储在字库中的数字化代码。当需要显示或打印汉字时,通常是把单个汉字离散成网点,每点以一个二进制位表示,由此组成的汉字点阵字形(字模)称为汉字字形码,一个汉字信息系统所有的汉字字形码的集合构成了该系统的汉字库。

根据输出汉字的要求不同,汉字点阵的多少也不同。汉字点阵点数的多少直接影响汉字的造型和质量,点数越多,汉字的质量越高。目前在计算机中,普遍采用的16×16、24×24、32×32和48×48等点阵。从使用上分为简易型、普通型、提高型和精密型,不同字体的汉字需要不同的点阵字库。字模点阵的信息量很大,占存储空间也很大。以16×16点阵汉字为例,每个汉字就要占用16×16/2=32个字节。

根据汉字库中汉字字形码存储方式的不同,可把汉字库分为软字库和硬字库两种。软字库是将汉字库文件存储在软盘或硬盘中;硬字库是将汉卡(由ROM和RAM芯片制成)安装在机器的扩展槽中。

汉字交换码:

●GB 2312—1980标准。

为了适应汉字信息处理技术日益发展的需要,国家标准局于1981年发布了《中华人民共和国标准信息交换用汉字编码字符集·基本集》,简称GB2312—1980,这种编码简称为国标码。共收录一级汉字3755个和二级汉字3008个,各种符号682个,总计7445个。

●GBK标准。

GBK是GB2312—1980的扩展,共有21883个汉字和符号。

●ISO 10646标准。

ISO 10646是国际标准化组织公布的一个标准,它包括了世界上的各种语言。GBK包含在其中。

国标码规定,每个字符由2个字节代码组成。每个字节最高位为0,其余7位用于组成各种不同的码值。

图1.1从汉字编码的转换角度显示了几种编码之间的关系,编码之间的变换都需要各自的转换程序来实现。

图1.1 各种编码之间的关系

5.工作总结

在本次工作中我们从表示数据的数制入手,描述了数制间的转换、数据的单位、数据的编码,重点要掌握的是数制间的转换及数据的单位。