计算机中数据的表示与信息编码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机中数据的表示与信息编码计算机最主要的功能是处理信息,如处理文字、声音、图形和图像等信息。在计算机内部,各种信息都必须经过数字化编码后才能被传送、存储和处理。因此要了解计算机工作的原理,还必须了解计算机中信息的表现形式。
1.2.1 计算机使用的数制
1.计算机内部是一个二进制数字世界
计算机内部采用二进制来保存数据和信息。无论是指令还是数据,若想存入计算机中,都必须采用二进制数编码形式,即使是图形、图像、声音等信息,也必须转换成二进制,才能存入计算机中。为什么在计算机中必须使用二进制数,而不使用人们习惯的十进制数?原因在于:
⑴易于物理实现:因为具有两种稳定状态的物理器件很多,例如,电路的导通与截止、电压的高与低、磁性材料的正向极化与反向极化等。它们恰好对应表示1和0两个符号。
⑵机器可靠性高:由于电压的高低、电流的有无等都是一种跃变,两种状态分明,所以0和1两个数的传输和处理抗干扰性强,不易出错,鉴别信息的可靠性好。
⑶运算规则简单:二进制数的运算法则比较简单,例如,二进制数的四则运算法则分别只有三条。由于二进制数运算法则少,使计算机运算器的硬件结构大大简化,控制也就简单多了。
虽然在计算机内部都使用二进制数来表示各种信息,但计算机仍采用人们熟悉和便于阅读的形式与外部联系,如十进制、八进制、十六进制数据,文字和图形信息等,由计算机系统将各种形式的信息转化为二进制的形式并储存在计算机的内部。
2.进位计数制
数制,也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。数制可分为非进位计数制和进位计数制两种。非进位计数制的数码表示的数值大小与它在数中的位置无关;而进位计数制的数码所表示的数值大小则与它在数中所处的位置有关。而我们在这里讨论的数制指的都是进位计数制。
进制是进位计数制的简称,是目前世界上使用最广泛的一种计数方法,它有基数和位权两个要素。
基数:在采用进位计数制的系统中,如果只用r个基本符号(例如0,1,2,…,
r-1)表示数值,则称其为r数制(Radix-r Number System),r称为该数制的基数(Radix)。如日常生活中常用的十进制,就是r=10,即基本符号为0,1,2,…,9。如取r=2,即基本符号为0和1,则为二进制数。
位权:每个数字符号在固定位置上的计数单位称为位权。位权实际就是处在某一位上的1所表示的数值大小。如在十位制中,个位的位权是100,十位的位权是101,…;向右依次是10-1,10-2,…。而二进制整数右数第2位的位权为2,第3位的位权为4,第4位的位权为8。一般情况下,对于r进制数,整数部分右数第i位的位权为r i-1,而小数部分左数第i位的位权为r-i。
各种进制的共同点是:
⑴每一种数制都有固定的符号集。如十进制数制,其符号有十个:0,1,2, (9)
二进制数制,其符号只有两个:0和1。需要指出的是,16进制数基数为16,所以有16个基本符号,分别为0,1,2,…,8,9,A,B,C,D,E,F。表1-3列出了计算机中常用的几种进制。
⑵采用位置表示法,用位权来计数。即处于不同位置的数符所代表的值不同,与它所在位置的权值有关。例如:十进制的1358.74可表示为:
1358.74=1×103+3×102+5×101+8×100+7×10-1+4×10-2
可以看出,各种进位制中的位权的值恰好是基数的某次幂。因此,对于任何一个进位计数制表示的数都可以写出按其权值展开的各项式之和,称为“按权展开式”。任意一个n位整数和m位小数的r进制数D可表示为:
D. D m
∑-
-
=
⨯=
m
n
i
i
i
r
D
D
1
⑶按基数来进位和借位(逢r进一,借一当r)。
现列举二进制的算术运算如下:从这里我们能够体会到二进制的运算的确能够起到简化硬件的作用.
加法:0+0=0减法:0-0=0
0+1=10-1=1(借位)
1+0=11-0=1
1+1=10(进位)1-1=0
乘法:0×0=0除法: 0 ÷1=0
n位整数m位数
0×1=01÷1=1
1×0=0
1×1=1
表1-3 计算机中常用的几种进位数制
1.2.2 数制间的相互转换
1.非十进制数转换十进制数
r进制转换为十进制数,采用r进制数的位权展开法,即将r进制数按“位权”展开形成多项式并求和,得到的结果就是转换结果。
【例1.1】【例1.1】把(11011.101)2转换成十进制数
解:(11011.101)2 = 1524 + 1523 + 0522 + 1521 + 1520 + 152-1 + 052-2 + 152-3
= 16 + 8 + 0 + 2 + 1 + 0.5 + 0 +0.125
= (27.625)10
2.十进制数转换非十进制数
转换规则:整数部分采用“逐次除以基数取余”法,直到商为0;
小数部分采用“逐次乘以基数取整”法,直到小数部分为0或取到有效数
位。
⑴十进制数转换成二进制数:整数部分采用“除2取余”法;
小数部分采用“乘2取整”法
【例1.2】把(157.6875)10转换成二进制数
注:十进制小数不一定能转换成完全等值的二进制小数,有时要取近似值。
(0.6875)10 = (1011) 2结果:(157.6875)10 = (10011101.1011)2
⑵用同样的方法,可将十进制数转换成八进制数和十六进制数,分别采用“除8取余,乘8取整”和“除16取余,乘16取整”法。
3. 非十进制数之间的转换
通常两个非十进制数之间的转换方法是采用上述两种方法的组合,即先将被转换数转换为相应的十进制数,然后再将十进制数转换为其他进制数。由于二进制、八进制和十六进制之间存在着特殊关系,即81=23,161=24,因此转换方法就比较容易,如表1-4所示。
⑴二进制、八进制数之间的转换。
由于1位八进制数相当于3位二进制数,因此,二进制数转换成八进制数,只需以小数点为界,整数部分按照由右至左(由低位向高位)、小数部分按照从左至右(由高位向低位)的顺序每三位划分为一组,最后不足3位二进制数时用零补足。按表1-4,每三位二进制数分别用与其对应的八进制数码来取代,即可完成转换。而将八进制转换成二进制的过程正好相反。
【例1.3】将(11001110.01010111)2 转换成八进制数。
(011001110.010101110)2