《电脑基础第3章》由会员分享,可在线阅读,更多相关《电脑基础第3章(77页珍藏版)》请在金锄头文库上搜索。
1、2017/6/8,第三章,1,第3章 计算机中的数值运算与运算器,本章学习目标 本章将介绍数据与文字在计算机中的表示方法,详细讲解数值数据的原码、补码和反码表示法以及它们之间的相互转换,定点表示法、浮点表示法、定点运算法、浮点运算方法和运算器的组成。通过本章的学习,应该重点掌握和理解以下内容: 了解数据、文字在计算机中的表示方法 掌握原码、补码和反码的表示方法,以及它们之间的相互转换 掌握定点表示法和浮点表示法 掌握定点四则运算和浮点四则运算,2017/6/8,第三章,2,3.1 数值数据的表示,3.1.1 无符号数和带符号数 在计算机中,数据可分为无符号数和带符号数。所谓无符号数,是指正整数
2、,机器字长的全部数位均用来表示数值的大小,相当于数的绝对值。例如有两个二进制数N1和N2。N1=01011 表示十进制数11N2=11011 表示十进制数27 对于字长为n位的无符号数的表示范围是02n-1。 一般计算机中都设有无符号数的运算和处理指令,还有一些转移指令也是专门针对无符号数的。 然而,我们在日常生活中会大量用到带符号的数,即正数和负数,我们用“+”、“”号加绝对值来表示数值的大小。用这种形式表示的数值在计算机技术中称为“真值”。,2017/6/8,第三章,3,但是,机器是无法识别符号“+”、“”的,由于“+”、“”恰好是两种截然不同的状态,如果用“0”表示“+”,用“1”表示
3、“”,这样符号就被数字化了,并且规定将它放在有符号数的前面,这样就组成了有符号数。这种在计算机中使用的、包括符号位在内都被数字化了的数称为“机器数”或“机器码”。机器数有三种不同的表示形式:原码、补码和反码。 对于带符号数而言,上面例子中的两个机器数N1、N2的含义发生了变化。N1=01011 表示十进制数+11N2=11011 根据编码的不同分别表示不同的值,如原码时表示十进制数11,2017/6/8,第三章,4,3.1.2 原码表示法 原码表示法是一种最简单的机器数表示法,用最高位表示符号位,符号位为“0”表示该数为正数,符号位为“1”表示该数为负数,数值跟随其后,并以绝对值形式给出,这是
4、与真值最接近的一种表示形式。1定点小数的原码形式 设定点小数为0X1X2Xn,它的原码形式为XsX1X2Xn,其中Xs表示符号位。原码的定义为: 式中:X表示真值,X原表示原码。例如:X=0.0101,X原=X=0.0101 X=0.0101,X原=1X=1(0.0101)= 1+0.0101=1. 0101,2017/6/8,第三章,5,定点整数的原码形式 设定点整数为X1X2Xn,它的原码形式为Xs,X1X2Xn,其中Xs表示符号位。原码的定义为:式中:X表示真值,X原表示原码,n为整数的位数。例如:X=0101,X原=X=00101 X=0101,X原=2nX=24(0101)= 100
5、00+0101=10101 在原码表示法中,真值0有两种不同的表示形式:0原=0,0000原=1,000,2017/6/8,第三章,6,原码表示法的优点是简单易懂,机器数和真值之间的相互转换非常容易,用原码实现乘、除运算的规则很简单。但它的缺点是实现加、减运算的规则较复杂,这是因为,当两个数相加时,如果是同号则数值相加,如果是异号,则两数相减。而在进行减法运算时,还要比较绝对值的大小,然后用大数减小数,最后还要给结果选择恰当的符号,为了解决这些矛盾,人们引入了补码表示法。3.1.3 补码表示法 补码表示法的设想是:使符号位参加运算,从而简化了加、减法的运算规则;使减法运算转化为加法运算,从而简
6、化了机器的运算器电路。我们先以钟表对时为例说明补码的概念。假设有一只表的时间停在8点钟,而现在的正确时间为3点整,要校准时间,可以采用两种方法:(1)将时针顺时针方向正拨7小时: 8+7=15=12+3=3 (mod 12)(2) 将时针逆时针方向倒拨5小时:85=3。,2017/6/8,第三章,7,因为钟表的一周为12个小时,12相当于钟表的进位值,在数学中称为“模”,记作(mod 12)。上例中7和5对钟表而言,它们的作用相同,即加7和减5是等价的,我们称7是5对模12的补码。可以用数学公式表示为: 5 = +7 (mod 12) 从这个例子可以得到一个启示,对于一个确定的模来说,某数减去
7、小于模的另一个数,总可以用加上模与该数的绝对值之差来代替,即负数用补码表示,这样可以将减法运算转化为加法运算了。这样,在计算机中实现起来就比较方便了。 例如: 96 = 9+(6) = 9+(126) = 9+6 = 3 (mod 12) 6525 = 65+(25) = 65+(10025) = 65+75 = 40 (mod 100) 在定点小数机器中的数最大不超过1,也就是负的小数对“1”的补码是等价的。但实际上,负数的符号位还有一个“1”,要把它看成的数的一部分,所以要对2求补码,即以2为模。,2017/6/8,第三章,8,定点小数的补码形式 若定点小数为0X1X2Xn,它的原码形式为
8、XsX1X2Xn,其中Xs表示符号位,则补码表示的定义为:式中X补为机器数,X为真值。 例如,X=+0.0101,则X补= 0.0101 X=0.0101,则X补 = 10+X = 10.00000.0101 =1.1011 一般情况下,对于正数X=+0X1X2Xn,则有 X补= 0X1X2Xn 对于负数X=0X1X2Xn,则有 X补= 10.0000X1X2Xn (mod 2) 注意,0的补码表示只有一种形式,即+0补 = 0补 = 0.0000。,2017/6/8,第三章,9,定点整数的补码形式 若定点整数为X1X2Xn,它的补码形式为Xs,X1X2Xn,其中Xs表示符号位,则补码表示的定
9、义为:式中:X表示真值, n为整数的位数。例如,X=+0101,则X补= 00101 X=0101,则X补 = 2n+1+X = 25+(0101) =250101=1000000101=1,1011 采用补码表示法进行减法运算就比原码方便多了,因为不论是正数还是负数,机器总是做加法,减法运算可转换成加法运算。但根据补码的定义,求负数的补码要从2减去|X|。为了用加法代替减法,结果还要在求补码时做一次减法,这显然是不方便的。下面介绍的反码表示法可以解决负数的求补问题。,2017/6/8,第三章,10,3.1.4 反码表示法 所谓反码,就是二进制数的各位数码由0变为1,由1变为0。也就是说,若X
10、i=1,则反码Xi=0;若Xi=0,则反码Xi=1。数值上面的横线表示反码的意思。反码表示法与补码表示法有相似之处,正数的反码就等于真值,负数的反码是把其原码除符号位以外的各位按位取反。 在计算机中用触发器寄存数码,若触发器Q端输出表示原码,则其端输出就是反码。由此可见,反码是容易得到的。定点小数的反码形式 对定点小数,反码表示的定义为:其中n代表数的位数。,2017/6/8,第三章,11,下面我们来证明第二个式子。设X=0X1X2Xn,则有X反=。现在将X的绝对值|X|和 X反相加,则得X反+|X| =1.111= 10.0000.001 = 2-2-n 所以X反 = (2-2-n) |X|
11、 = (2-2-n)+X一般情况下,对于正X= +0X1X2Xn,则有X反 = 0X1X2Xn对于负数X= 0X1X2Xn,则有X反 = 对于0,有+0反和0反之分:+0反 =0.0000反 =1.111,2017/6/8,第三章,12,例如,X=+0.0101,则X反 = 0.0101 X=0.0101,则X反 =(22-4)+X = 1.1111+(0.0101)=1.11110.0101=1.1010我们比较反码与补码的公式X反 = (22-n)+XX补=2+ X可以得到X补= X反 +2-n由这个公式可知,求一个负数的补码,其方法是符号位为1,其余各位0变1,1变0,然后在最末位(2-
12、n)上加1。,2017/6/8,第三章,13,定点整数的反码形式对定点整数,反码表示的定义是例如,X=+0101,则X反= 00101 X=0101,则X反= (2n+11)+X = (251)+(0101) =(1000001)0101=111110101=11010,2017/6/8,第三章,14,3.1.5 三种码制的比较与转换 1. 比较 三种码制既有共同点,又有各自不同的性质,主要区别有以下几点: (1)对于正数,它们都等于真值本身,而对于负数各自有不同的表示。 (2)最高位都表示符号位,补码和反码的符号位可作为数值的一部分看待,和数值位一起参加运算;但原码的符号位不允许和数值位同等
13、看待,必须分开处理。 (3)对于真值,原码和反码各有两种不同的表示形式,而补码只有唯一的一种表示形式。 (4)原码、反码表示的正、负数范围相对零来说是对称的;但补码负数表示范围较正数表示范围大,能多表示一个绝对值最大的数,其值等于2-n(定点整数)或(定点小数)。,2017/6/8,第三章,15,表3-1给出了以位二进制数为例,表示三种不同码制时的十进制真值。,表3-1 三种不同码制时的十进制真值,2017/6/8,第三章,16,2转换 三种不同码制以及真值之间的转换关系如图3-1所示。 从图3-1可看出,真值X与补码或反码之间的转换通常是通过原码实现的,也可以直接完成真值与补码或反码之间的转
14、化。 若已知机器的字长,则机器数的位数应补够相应的位数,例如机器字长为8位则:X=1011 X原=00001011 X补=00001011 X反= 00001011X=1011 X原=10001011 X补=11110101 X反=11110100X=0.1011 X原=0.1011000 X补=0.1011000 X反=0.1011000X=0.1011 X原=1.1011000 X补=1.0101000 X反=1.0100111,2017/6/8,第三章,17,图3-1 三种不同码制以及真值之间的转换关系,图3-1 三种不同码制以及真值之间的转换关系,图3-1 三种不同码制以及真值之间的转
15、换关系,图3-1 三种不同码制以及真值之间的转换关系,图3-1 三种不同码制以及真值之间的转换关系,图3-1 三种不同码制以及真值之间的转换关系,2017/6/8,第三章,18,3.2 数的定点表示与浮点表示,在计算机中,小数点不用专门的器件表示,而是按约定的方式标出。根据小数点的位置是否固定,在计算机中有两种数据格式:定点表示和浮点表示。3.2.1 定点表示法 定点数是指小数点固定在某个位置上的数值。通常有小数和整数两种表示形式。1. 定点小数 小数点的位置固定在最高有效数位之前、符号位之后时,机器内的数称为纯小数。记作XsX1X2Xn,其中Xs表示符号位,这个数是一个纯小数,如图3-2所示。定点小数的小数点位置是隐含约定的,小数点并不需要真正占据一个二进制位。,