计算机应用基础教程
上QQ阅读APP看书,第一时间看更新

任务4 了解计算机中的数制和编码

步骤1:了解信息和数据

信息(Information)在现实世界中是广泛存在的,例如,数字、字母、各种符号、图表、声音、图片等。但是,所有的信息计算机都不能直接处理,因为计算机内部采用二进制,也就是说,计算机内部只认识“0”和“1”两种信息。因此,任何形式的信息都必须通过一定的转换方式转变成计算机能直接处理的数据,我们将这个过程称为“数字化”。

数据(Data)是在计算机内部存储、处理和传输的各种“值”,对用户来说是信息。换句话说,数据是信息在计算机内部的表示形式。信息处理也就是数据处理。

信息技术(IT)就是对信息进行采集、转换、加工、处理、存储、传输的技术,它是由计算机技术和现代通信技术来共同演绎的,其中计算机技术充当着核心的角色。

步骤2:了解进位计数制

1.进位计数制

数制是人们对数量计数的一种统计规律。将数字符号按顺序排列成数位并遵照某种从低位到高位的进位方式计数来表示数制的方法称为进位计数制,简称计数制。进位计数制是一种计数方法,日常生活中广泛使用的是十进制,此外还大量使用其他进位计数制,如二进制、八进制、十六进制等。

那么,不同计数进位制的数怎么表示呢?为区分不同的数制,约定对于任一R进制的数N记作(N)R。如(1100)2表示二进制数1100,(567)8表示八进制数567,(89AC)16表示十六进制数89AC。不用括号及下标的数默认为十进制数。此外,还有一种表示数制的方法,即在数字的后面使用特定的字母表示该数的进制。具体方法是:D(Decimal)表示十进制,B(Binary)表示二进制,O(Octal)表示八进制,H(Hex)表示十六进制。若某数码后面未加任何字母,则默认为十进制数。

无论使用哪种计数制,数制的表示都包含基数和位权两个基本的要素。

①基数:指某种进位计数制中允许使用的基本计数符号的个数。

②位权:指在某种进位计数制表示的数中用于表明不同数位上数值大小的一个固定常数。不同数位有不同的位权,某一个数位的数值等于这一位的数字符号与该位对应的位权相乘。R进制数的位权是R的整数次幂。例如,十进制数的位权是10的整数次幂,其个位的位权是100,十位的位权是101

2.十进制

在日常生活中,人们习惯于采用十进制计数。

例如,一个十进制数666.66,其中每个位代表的含义如下:

通过上面的例子,可以总结出十进制计数的规律:

(1)一个十进制数字有10个计数的数码:0、1、2、3、4、5、6、7、8、9,我们称之为基数为10。

(2)逢十进一。

(3)数码在数字中所处的位置不同,则它所代表的数值也不同。例如,上例的数码6,在个位数上表示6,在十位数上表示60,在百位数上表示600……这里的个(100)、十(101)、百(102)……称为位权。可见位权的大小是以基数为底,以数码所在位置序号为指数的整数次幂。

因此,一个十进制数可以写成按位权展开的一个多项式。例如:

666.66=6×102+6×101+6×100+6×10-1+6×10-2

3.二进制

计算机内部主要采用二进制处理信息,任何信息都必须转换成二进制形式后才能由计算机处理。

二进制所用到的数码个数有两个,分别是0、1,称之为基数为2,逢二进一。二进制数的位权是2的整数次幂。例如,一个二进制数10110.101按位权展开的多项式为

(10110.101)2=1×24+0×23+1×22+1×21+0×20+1×2-1+0×2-2+1×2-3

二进制数的运算规律如表1-2所示。

表1-2 二进制的运算规则

由此可见,二进制具有运算规则简单且物理实现容易等优点。因为二进制中只有0和1两个数字符号,因此可以用电子元器件的两种不同状态来表示二进制数。例如,可以用晶体管的截止和导通,或者电平的高和低表示1和0等,因此在计算机系统中普遍采用二进制。

但是,二进制又具有明显的缺点,即数的位数太长且字符单调,使得书写、记忆和阅读不方便。为了克服二进制的缺点,人们在书写指令,以及输入和输出程序等时,通常采用八进制数和十六进制数作为二进制数的缩写。

4.八进制

八进制所用到的数码个数有8个,分别是0、1、2、3、4、5、6、7,称之为基数为8,逢八进一。

5.十六进制

十六进制所用到的数码个数为16个,分别是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,称之为基数为16,逢十六进一。

步骤3:了解计数制间的转换

各计数制之间可以相互转换,表1-3所示为各进制间数制对照表。

表1-3 进制间数值对照表

每一个二进制数、八进制数或十六进制数都可以写成按位权展开的一个多项式。

【例1】写出二进制数(1101.11)2的按位权展开式。

解:(1101.11)2=1×23+1×22+0×21+1×20+1×2-1+1×2-2其中,23、22、21、20、2-1、2-2是二进制数相应位的位权值。

【例2】写出八进制数(521)8的按位权展开式。

解:(521)8=5×82+2×81+1×80其中,82,81,80是八进制数相应位的位权值。

【例3】写出十六进制数(2BD)16的按位权展开式。

解:(2BD)16=2×162+11×161+13×160其中,162、161、160是十六进制数相应位的位权值。

1.其他进制数转换成十进制

方法:将其他进制数按位权展开后再相加即可。

【例4】把二进制数(1101.11)2转换成十进制数。

解:(1101.11)2=1×23+1×22+0×21+1×20+1×2-1+1×2-2=(13.75)10

【例5】把八进制数(521)8转换成十进制数。

解:(521)8=5×82+2×81+1×80=(337)10

【例6】把十六进制数(2A6)16转换成十进制数。

解:(2A6)16=2×162+A×161+6×160=2×256+10×16+6×1=(678)10

2.十进制数转换成二进制数

方法:将一个十进制数(包含整数部分和小数部分)转换成二进制数时,先将十进制数的整数部分转换成二进制整数,采用的方法是“除2取余逆序”的方法,再将十进制数的小数部分转换成二进制小数,采用的方法是“乘2取整顺序”的方法。

【例7】将十进制数(214.625)10转换成二进制数。

解:第一步,先将十进制整数部分(214)10转换成二进制数,采用“除2取余逆序”的方法。

所以(214)10=(11010110)2

第二步,再将十进制小数(0.625)10转换成二进制小数,采用“乘2取整顺序”的方法。

所以,(0.625)10=(0.101)2,故(214.625)10=(11010110.101)2

提示与技巧

多数情况下,很多十进制小数连续乘以2取整后,结果仍不为0,此时只取二进制近似值到指定位数。

3.二进制数与八进制数之间的转换

(1)将二进制数转换成八进制数

方法:3位并1位。以小数点为中心,分别向左、向右,每3位二进制数为一组用一个八进制数码来表示(不足3位的用0补足,其中整数部分左补0,小数部分右补0)。

【例8】将二进制数(10010110.10101)2转换成八进制数。

故(10010110.10101)2=(226.52)8

(2)将八进制数转换成二进制数

方法:1位拆3位。将每个八进制数码用3位二进制数来书写。

【例9】将八进制数(643.27)8转换成二进制数。

故(653.27)8=(110100011.010111)2

4.二进制数与十六进制数之间的转换

(1)二进制数转换成十六进制数

方法:4位并1位。从小数点开始,分别向左、向右,每4位二进制数为一组用一个十六进制数码来表示(不足4位的用0补足,其中整数部分左补0,小数部分右补0)。

【例10】将二进制数(110110101.11101)2转换成十六进制数。

故(110110101.11101)2=(1B5.E8)16

(2)十六进制数转换成二进制数

方法:一位拆四位。将每个十六进制数码用4位二进制数来表示。

【例11】将十六进制数(2BD.AC)16转换成二进制数。

故(2BD.AC)16=(1010111101.101011)2

步骤4:了解计算机的数据单位

在计算机内部,常用的数据单位有位、字节和字等。

1.位

位(Bit)是指二进制数的一个位,音译为比特。位是表示计算机数据的最小单位,一个位就是二进制数的一个“0”或一个“1”。

2.字节

字节(Byte,简写为B)是表示计算机数据的基本单位,通常把8个二进制位作为一个字节,即1B=8bit或1B=8b。

3.字

字(Word)是指计算机内部一次存储、传送、处理操作的信息单位。字所含有的二进制位数称为字长,它直接关系到计算机的计算精度、功能和速度。例如,字长为64位的计算机,即指该计算机内部一次能够传送和运算64位的二进制数。

4.其他数据单位

为表示存储器容量大小,除了以字节为单位外,常用的容量单位还有:KB、MB、GB、TB、EB、ZB和YB。它们之间的换算关系为:

1KB=1024B=210B

1MB=1024KB=10242B=220B

1GB=1024MB=10243B=230B

1TB=1024GB=10244B=240B

……

步骤5:了解计算机常用信息编码

1.ASCII码

ASCII码全名为American Standard Code for Information Interchange,即美国国家信息交换标准码,原为美国国家标准,现已成为在世界范围内通用的字符编码标准。

ASCII码由7位二进制数组成,因此一共定义了27=128个符号,其中有33个控制码,位于表的左首两列和右下角位置,其余95个为数字、大小写英文字母和专用符号的编码。例如,字母A的ASCII码为1000001(十进制为65)。表1-4列出了ASCII码的编码表。

表1-4 ASCII编码表

2.汉字的编码

(1)汉字交换码(国标码)

1981年,我国颁布了《中华人民共和国国家标准信息交换汉字编码》,代号为GB 2312—1980。它是汉字交换码的国家标准,又称“国标码”。该标准收录了汉字和图形符号7445个,包括6763个常用汉字和682个图形符号,其中常用汉字又分为两个等级,一级汉字有3755个,二级汉字有3008个。一级汉字按拼音排序,二级汉字按部首排序。

国标码规定,每个字符由一个2字节的二进制代码组成。其中,每个字节的最高位恒为“0”,其余7位用于组成各种不同的编码。因此,2个字节的代码共可表示128×128=16384个符号。目前,国标码仅使用了其中7000多个编码,还可扩充。

(2)汉字机内码

汉字机内码简称内码,是计算机内部存储汉字时所用的编码。计算机既要处理汉字,又要处理西文。为了在计算机中区别某个编码是汉字还是西文,可以利用一个字节编码的最高位来区别,若最高位为“0”,则视为ASCII码字符;若最高位为“1”,则视为汉字字符。

所以,在计算机内部要能同时处理汉字和西文,就必须在国标码的基础上,把2个字节的最高位分别由“0”改“1”,由此构成了汉字机内码。汉字机内码与国标码的关系如下(H表示十六进制):

汉字机内码第一字节=国标码第一字节+80H

汉字机内码第二字节=国标码第二字节+80H

例如,汉字“吧”的国际码为3049H,即它的国际码第一字节为00110000,国际码第二字节为01001001。那么,汉字“吧”的机内码为BOC9H,即它的机内码第一字节为10110000,机内码第二字节为11001001。

(3)汉字输入码(外码)

汉字输入码是指从键盘上输入的代表汉字的编码,又称汉字外码。例如,区位码、五笔字型码、拼音码、表形码等。

当用户向计算机输入汉字时,存入计算机内部的总是它的机内码,与所采用的输入法无关。输入码仅是供用户选用的编码,即“外码”,而机内码则是计算机识别的“内码”,其码值是唯一的。

为了便于使用,GB 2312—1980国家标准将其中的汉字和其他符号按照一定的规则排列成为一个大的表格,在这个表格中,每一(横)行称为一个“区”,每一(竖)列称为一个“位”,整个表格共有94区,每区有94位,并将“区”和“位”用十进制数字进行编号:即区号为01~94,位号为01~94。

根据汉字的国家标准,用两个字节(16位二进制数)表示一个汉字。但使用16位二进制数容易出错,比较困难,因而在使用中都将其转换为十六进制数使用。国标码是一个4位十六进制数,区位码则是一个4位的十进制数,每个国标码或区位码都对应着一个唯一的汉字或符号,但因为十六进制数很少用到,所以大家常用的是区位码,它的前两位叫作区码,后两位叫作位码。

汉字区位码与国标码的关系如下(H表示十六进制):

汉字国标码第一字节=区位码第一字节+20H

汉字国标码第二字节=区位码第二字节+20H

(4)汉字字形码

在输出汉字(例如,显示或打印汉字)时要用到汉字字形码。一个汉字的字形点阵数据构成了该汉字的字形码,所有汉字字形码的集合称为汉字字形库,简称汉字库。例如,汉字“你”的字形码如图1-2所示。

图1-2 汉字“你”的字形码

汉字的字形码分为16×16点阵、24×24点阵、32×32点阵、48×48点阵等,甚至还有108×108点阵,576×576点阵的字库。表示一个汉字字形的点数越多,打印的字体越美观,但汉字占用的存储空间也越大。例如,一个16×16点阵的汉字占用32B,则两级汉字共占用约256KB。其他点阵字库占用存储空间的情况,读者可自行计算。

一般情况下,显示汉字使用16×16点阵,打印汉字可选用24×24、32×32或48×48点阵的字库,而108×108点阵、576×576点阵字库主要用于精密照排系统中,且需要庞大的存储容量。

各种汉字编码的关系如图1-3所示。

图1-3 汉字编码之间的关系

案例拓展

案例:认识计算机的智能化。

案例描述:了解1997年国际象棋大师卡斯帕罗夫和计算机“深蓝”间“人机大战”、智能家居等计算机智能化方面的知识。