收藏 分享(赏)

计算机组成原理课后答案(高教版)6.ppt

上传人:无敌 文档编号:337714 上传时间:2018-03-30 格式:PPT 页数:34 大小:201.50KB
下载 相关 举报
计算机组成原理课后答案(高教版)6.ppt_第1页
第1页 / 共34页
计算机组成原理课后答案(高教版)6.ppt_第2页
第2页 / 共34页
计算机组成原理课后答案(高教版)6.ppt_第3页
第3页 / 共34页
计算机组成原理课后答案(高教版)6.ppt_第4页
第4页 / 共34页
计算机组成原理课后答案(高教版)6.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、2018/3/30,1,习题参考答案6,1最少用几位二进制数即可表示任一五位长的十进制正整数?解:最大5位十进制正整数为99999, 而21699999 1/2; (2)X =1/8 (3)1/4 =X 1/16 解: (1)若要X 1/2,只要a1=1, a2a6不全为0即可(a2 or a3 or a4 3or a5 or a6 = 1)(2) 只要a1a3不全为0即可(a1 or a2 or a3 =1), a4a6可任取0或1;(3)只要a1=0,a2可任取0或1; 当a2=0时,若a3=0,则必须a4=1,且a5、a6不全为0(a5 or a6=1;若a3=1,则a4a6可任取0或1

2、; 当a2=1时, a3a6可任取0或1。,2018/3/30,3,3. 设x为整数,x补=1,x1x2x3x4x5,若要求 x -16,试问 x1x5 应取何值? 解:若要x 0,则x补=x原成立; 若x 0,则 x补=x原成立; 若x 0时成立。当xy补,是否有xy? 解:若x补y补,不一定有xy。 x补 y补时 x y的结论只在 x 0、y 0,及 x0、yy,但由于负数补码的符号位为1,则x补0时,有x y补。注意: 1)绝对值小的负数其值反而大,且负数的绝对值越小,其补码值越大。因此, 当xy补,必有xy。 2)补码的符号位和数值位为一体,不可分开分析。 3)完整的答案应分四种情况分

3、析,但也可通过充分分析一种不成立的情况获得正确答案。4)由于补码0的符号位为0,因此x、y=0可归纳到0的一类情况讨论。 5)不考虑不同数字系统间的比较。(如有人分析x、y字长不等时的情况,无意义。),2018/3/30,9,9. 当十六进制数9BH和FFH分别表示为原码、补码、反码、移码和无符号数时,所对应的十进制数各为多少(设机器数采用一位符号位)?,2018/3/30,10,10. 在整数定点机中,设机器数采用1位符号位,写出0的原码、补码、反码和移码,得出什么结论?解:0的机器数形式如下:(假定机器数共8位,含1位符号位在内),结论:0的原码和反码分别有+0和-0两种形式,补码和移码只

4、有一种形式,且补码和移码数值位相同,符号位相反。,2018/3/30,11,11. 已知机器数字长为4位(含1位符号位),写出整数定点机和小数定点机中原码、补码和反码的全部形式,并注明其对应的十进制真值。,2018/3/30,12,12. 设浮点数格式为:阶符1位、阶码4位、数符1位、尾数10位。写出51/128、 -27/1024、7.375、-86.5所对应的机器数。要求按规格化形式写出: (1)阶码和尾数均为原码; (2)阶码和尾数均为补码; (3)阶码为移码,尾数为补码。 解:据题意画出该浮点数的格式: 1+4+1+10x1=51/128 =0.0110011= 0.110 0112-

5、1 x2= -27/1024= -0.0000011011=-0.110112-5 x3=7.375=111.011 =0.11101123x4=-86.5 = -1010110.1 = -0.1010110127 则以上各数的浮点规格化数为:(1)x1浮=1,0001;0.110 011 000 0 (2)x1浮=1,1111;0.110 011 000 0 (3)x1浮=0,1111;0.110 011 000 0(1)x2浮=1,0101;1.110 110 000 0 (2)x2浮=1,1011;1.001 010 000 0 (3)x2浮=0,1011;1.001 010 000 0

6、 (1)x3浮=0,0011;0.111 011 000 0 (2)x3浮=0,0011;0.111 011 000 0 (3)x3浮=1,0011;0.111 011 000 0 (1)x4浮=0,0111;1.101 011 010 0 (2)x4浮=0,0111;1.010 100 110 0 (3)x4浮=1,0111;1.010 100 110 0,2018/3/30,13,13. 浮点数格式同上题,当阶码基值分别取2和16时,(1)说明2和16在浮点数中如何表示。(2)基值不同对浮点数什么有影响?(3)当阶码和尾数均用补码表示,且尾数采用规格化形式,给出两种情况下所能表示的最大正数

7、和非零最小正数真值。 解:(1)阶码基值不论取何值,在浮点数中均为隐含表示,即:2和16不出现在浮点格式中,仅为人为的约定。(2)当基值不同时,对数的表示范围和精度都有影响。即:在浮点格式不变的情况下,基越大,可表示的浮点数范围越大,但精度越下降。 (3)r=2时,最大正数的浮点格式为: 0,1111;0.111 111 111 1 其真值为:N+max=215(1-2-10) 非零最小规格化正数浮点格式为: 1,0000;0.100 000 000 0 其真值为:N+min=2-162-1=2-17 r=16时,最大正数的浮点格式为: 0,1111;0.1111 1111 11 其真值为:N

8、+max=1615(1-2-10) 非零最小规格化正数浮点格式为: 1,0000;0.0001 0000 00 其真值为:N+min=16-1616-1=16-17,2018/3/30,14,14. 设浮点数字长为32位,欲表示6万间的十进制数,在保证数的最大精度条件下,除阶符、数符各取一位外,阶码和尾数各取几位?按这样分配,该浮点数溢出的条件是什么? 解:若要保证数的最大精度,应取阶的基=2。 若要表示6万间的十进制数, 由于32768(215) 6万 65536(216), 则:阶码除阶符外还应取5位(向上取2的幂)。 故:尾数位数=32-1-1-5=25位 该浮点数格式如下: 1 5 1

9、 25 按此格式,该浮点数上溢的条件为:阶码 25,2018/3/30,15,15. 什么是机器零?若要求全0表示机器零,浮点数的阶码和尾数应采取什么机器数形式? 解:机器零指机器数所表示的零的形式,它与真值零的区别是:机器零在数轴上表示为“0”点及其附近的一段区域,即在计算机中小到机器数的精度达不到的数均视为“机器零”,而真值零对应数轴上的一点(0点)。若要求用“全0”表示浮点机器零,则浮点数的阶码应用移码、尾数用补码表示(此时阶码为最小阶、尾数为零,而移码的最小码值正好为“0”,补码的零的形式也为“0”,拼起来正好为一串0的形式)。,2018/3/30,16,16. 设机器数字长为16位,

10、写出下列各种情况下它能表示的数的范围。设机器数采用一位符号位,答案均用十进制表示。 (1)无符号数; (2)原码表示的定点小数; (3)补码表示的定点小数; (4)补码表示的定点整数; (5)原码表示的定点整数; (6)浮点数的格式为:阶符1位、阶码5位、数符1位、尾数9位(共16位)。分别写出其正数和负数的表示范围(非规格化浮点形式); (7)浮点数格式同(6),机器数采用补码规格化形式,分别写出其对应的正数和负数的真值范围。解:(1)无符号整数:0216-1,即:0 65535;小数:01-2-16 ; (2)原码定点小数: 1 - 2-15 -(1 - 2-15), 即:0.99997

11、-0.99997; (3)补码定点小数:1 - 2-15 - 1 , 即:0.99997 -1; (4)补码定点整数:215 - 1 -215, 即:32767 -32768; (5)原码定点整数: 215 - 1 -(215 - 1), 即:32767 -32767;(6)据题意画出该浮点数格式: 1 5 1 9 (原码) 最大负数=1,11111;1.000 000 001 最小负数=0,11111;1.111 111 111 则负数表示范围为: -2-9 2-31 -(1-2-9)231 最小正数=1,11111;0.000 000 001 最大数=0,11111;0.111 111 1

12、11 则正数表示范围为: 2-9 2-31 (1-2-9)231(7)当机器数采用补码规格化形式时,则 最大正数=0,11111;0.111 111 111, 最小正数=1,00000;0.100 000 000 其对应的正数真值范围为: 231(1-2-9) 2-33 最大负数=1,00000;1.011111111,最小负数=0,11111;1.000000000 其对应的负数真值范围为: -231 -2-32(2-1+2-9),2018/3/30,17,17. 设机器数字长为8位(包括一位符号位),对下列各机器数进行算术左移一位、两位,算术右移一位、两位,讨论结果是否正确。 x1原=0.

13、001 1010; x2原=1.110 1000; x3原=1.001 1001; y1补=0.101 0100; y2补=1.110 1000; y3补=1.001 1001; z1反=1.010 1111; z2反=1.110 1000; z3反=1.001 1001。解:算术左移一位: x1原=0.011 0100;正确 x2原=1.101 0000;溢出(丢1)出错 x3原=1. 011 0010;正确 y1补=0. 010 1000;溢出(丢1)出错 y2补=1.101 0000;正确 y3补=1.011 0010;溢出(丢0)出错 z1反=1. 101 1111;溢出(丢0)出错

14、z2反=1. 101 0001;正确 z3反=1.011 0011;溢出(丢0)出错 算术左移两位: x1原=0.110 1000;正确 x2原=1.010 0000;溢出(丢11)出错 x3原=1. 110 0100;正确 y1补=0. 101 0000;溢出(丢10)出错y2补=1.010 0000;正确 y3补=1.110 0100;溢出(丢00)出错z1反=1. 011 1111;溢出(丢01)出错 z2反=1. 010 0011;正确 z3反=1.110 0111;溢出(丢00)出错 算术右移一位: x1原=0.000 1101;正确 x2原=1.011 0100;正确 x3原=1.

15、000 1100(1);丢1,产生误差 y1补=0.010 1010;正确 y2补=1.111 0100;正确 y3补=1.100 1100(1);丢1,产生误差z1反=1.101 0111;正确 z2反=1.111 0100(0);丢0,产生误差 z3反=1.100 1100;正确 算术右移两位: x1原=0.000 0110(10);产生误差 x2原=1.001 1010;正确 x3原=1.000 0110(01);产生误差 y1补=0.001 0101;正确 y2补=1.111 1010;正确 y3补=1.110 0110(01);产生误差 z1反=1.110 1011;正确 z2反=1

16、.111 1010(00);产生误差 z3反=1.110 0110(01);产生误差,2018/3/30,18,18. 试比较逻辑移位和算术移位。 解: 逻辑移位是对逻辑数或无符号数进行的移位,其特点是不论左移还是右移,空出位均补0,移位时不考虑符号位。 算术移位是对带符号数进行的移位操作,其关键规则是移位时符号位保持不变,空出位的补入值与数的正负、移位方向、采用的码制等有关。补码或反码右移时具有符号延伸特性。左移时可能产生溢出错误,右移时可能丢失精度。,2018/3/30,19,19. 设机器数字长为8位(含1位符号位),用补码运算规则计算下列各题。 (1)A=9/64, B=-13/32,

17、 求A+B; (2)A=19/32,B=-17/128,求A-B;(3)A=-3/16,B=9/32, 求A+B; (4)A=-87, B=53, 求A-B; (5)A=115, B=-24, 求A+B。 解: (1)A=9/64=0.0010010, B= -13/32=-0.0110100, A补=0.0010010, B补=1.1001100, A+B补= 0.0010010 + 1.1001100=1.1011110 无溢出 A+B= -0.0100010 = -17/64 (2)A=19/32=0.1001100, B= -17/128=-0.0010001, A补=0.100110

18、0 , B补=1.1101111,-B补=0.0010001, A-B补= 0.1001100 + 0.0010001 =0.1011101 无溢出, A-B=0.1011101 = 93/128(3)A= -3/16=-0.0011000, B=9/32=0.010 0100, A补=1.110 1000, B补= 0.0100100, A+B补=1.1101000 + 0.0100100 = 0.0001100 无溢出 A+B=0.0001100= 3/32 (4)A= -87= -1010111, B=53=110101 , A补=1,0101001, B补=0,0110101,-B补=

19、1,1001011,A-B补= 1,0101001 + 1,1001011 = 0,1110100 溢出 ,A-B=-1,0001100 = -140 (5)A=115=1110011, B= -24=-11000, A补=0,1110011 ,B补=1,1101000 A+B补= 0,1110011 + 1,1101000=0,1011011无溢出 ,A+B=1011011= 91,2018/3/30,20,20. 用原码一位乘计算xy。 (1)x= 0.110 111,y= -0.101 110; 解:先将数据转换成所需的机器数,然后计算,最后结果转换成真值。x原=0.110111,y原=

20、1.101110,x*=0.110111, y*=0.101110,即x*y*=0.100 111 100 010,z0=x0 y0=0 1=1,xy原=1.100 111 100 010,xy= -0. 100 111 100 010,2018/3/30,21,20. 用原码两位乘计算xy。 (1)x= 0.110 111,y= -0.101 110;原码两位乘:-x*补=1.001 001,2x*=1.101 110,即x*y*=0.100 111 100 010,z0=x0 y0=0 1=1,xy原=1.100 111 100 010,xy= -0. 100 111 100 010,20

21、18/3/30,22,20. 用补码一位乘(Booth算法)计算xy。 (1)x= 0.110 111,y= -0.101 110; (2)x= -0.010 111,y= -0.010 101; 解(1)x补=0.110111, y补=1.010010 ,-x补=1.001001 部分积 乘数y补 yn+1 说明 00.000000 1010010 0 00:直接右移 00.000000 0101001 0 10:加-x补+11.001001 11.001001 0 右移 11.100100 1010100 1 01:加x补+00.110111 00.011011 10 右移 00.0011

22、01 1101010 0 00:直接右移 00.000110 1110101 0 10:加-x补+11.001001 11.001111 1110 右移 11.100111 1111010 1 01:加x补+00.110111 00.011110 11110 右移 00.001111 0111101 0 10:加-x补+11.001001 11.011000 011110 最后一步不移位xy补=1.011000011110 , xy= -0.100111100010,2018/3/30,23,(2)x= -0.010111, y= -0.010101,x补=1.101001,-x补=0.010

23、111,y补=1.101011 部分积 乘数y补 yn+1 00.000000 1101011 0 10:+-x补 + 00.010111 00.010111 右移 00.001011 1110101 1 11:右移 00.000101 1111010 1 01:+x补 + 11.101001 11.101110 11 右移 11.110111 0111101 0 10:+-x补 + 00.010111 00.001110 011 右移 00.000111 0011110 1 01:+x补 + 11.101001 11.110000 0011 右移 11.111000 0001111 0 10

24、:+-x补 + 00.010111 00.001111 00011 右移 00.000111 1000111 1 11:+0 + 00.000000 00.000111 100011 不移位xy补= xy = 0.000111100011,2018/3/30,24,22. 设机器字长为16位(含1位符号位),若一次移位需1s,一次加法需1s,试问原码一位乘、补码一位乘、原码加减交替除法和补码加减交替除法各最多需多少时间? 解:原码一位乘最多需时: 1s15(加)+ 1s15(移位)=30s 补码一位乘最多需时: 1s16+1s15 = 31s 原码加减交替除最多需时: 1s 16(加)+1s1

25、5 (移位) =31s 补码加减交替除最多需时: 1s16(加) +1s15 (移位) =31s,2018/3/30,25,23、 Booth 算法的硬件配置,加n+1次,右移n次,00,11直接右移01加X右移10加-X右移,2018/3/30,26,6.25 对于尾数为40位的浮点数(不包括符号位在内),若采用不同的机器数表示,试问当尾数左规或右规时,最多移位次数各为多少? 解:若采用原码表示,当尾数左规时,最多移位39次;反码表示时情况同原码;若采用补码表示,当尾数左规时,正数最多移位39次,负数最多移位40次。当尾数右规时,不论采用何种码制,均只需右移1次。,2018/3/30,27,

26、26. 按机器补码浮点运算步骤,计算xy补 (1)x=2-011 0.101 100, y=2-010(-0.011 100); (2)x=2-011(-0.100 010), y=2-010(-0.011 111)解:先将x、y转换成机器数形式: (1)x补=1,101;0.101100 , y补=1,110;1.100100 E补=Ex补+-Ey补 1)对阶:E补=11,101+00,010=11,111,E0,应Ey向Ex对齐, 则:Ey补+1=0,101,y补=0,101;1.1011102)尾数运算: Mx补+My补= 00.101100 +11.101110=00.011010 3

27、)结果规格化: x+y补=0,100;00.110100 (左规1次,阶码减1,尾数左移1位) 4)舍入:无 5)溢出:无 则:x+y=24(13/16);,2018/3/30,30,6.28如何判断定点和浮点补码加减运算结果是否溢出, 如何判断原码和补码定点除法运算结果是否溢出?,1.定点补码加减法溢出判断:最高有效位的进位 异或符号位的进位 = 1变形补码判断2.浮点补码加减法溢出判断:最后一步对阶码判断,同上3.原码定点除法溢出判断:第一步上商1为溢出4.略,2018/3/30,31,6.31 字长为32位,用与非门和与或非门设计一个并行加法器(假设与非门的延迟时间为30ns,与或非门的

28、延迟时间为45ns),要求完成32位加法时间不得超过0.6s。画出进位链及加法器逻辑框图。解:1)若采用串行进位链(行波进位),则在di、ti函数的基础上,实现32位进位需要的时间为:T=32*2*30ns=1.920us 不满足0.6s的加法时间限制,不能用。2)若采用单重分组跳跃进位(级连方式),则在di、ti的基础上,4位一组分组,32位进位需: T=8*2.5*30=600ns, 刚好满足0.6s加法时间的限制,但考虑到一次加法除进位时间外,还需di、ti函数的产生时间、和的产生时间(最高位和)等因素,故此进位方案仍不适用。 3)若采用双重分组跳跃进位(二级先行级联进位),4位一小组,

29、4小组为一大组分组,则32位进位需:T=10*30ns=300ns 完全满足0.6s的加法时间限制,可以使用。32位双重分组跳跃进位的进位链框图见教材286页图6.23。,2018/3/30,32,32. 设机器字长为16位,分别按4、4、4、4和5、5、3、3分组, (1)画出按两种分组方案的单重分组并行进位链框图,并比较哪种方案运算速度快。(2)画出按两种分组方案的双重分组并行进位链框图,并对这两种方案进行比较。 (3)用74181和74182画出单重和双重分组的并行进位链框图。 解: (1)4、4、4、4分组的16位单重分组并行进位链框图见教材286页图6.22。 5、5、3、3分组的1

30、6位单重分组并行进位链框图也是4组,与之类似。 每组内速度相同,组数相同,总运算速度相同(2)4、4、4、4分组的16位双重分组并行进位链框图见教材288页图6.26。 5、5、3、3分组的16位双重分组并行进位链框图与之类似。 两种分组方案最长加法时间相同。双重分组并行进位的最长进位时间只与组数和级数有关,与组内位数无关。,2018/3/30,33,例:设机器数字长16位,阶码5 位(含1位阶符),基值为2,尾数11位(含1位数符)。对于两个阶码相等的数按补码浮点加法完成后,由于规格化操作可能出现的最大误差的绝对值是多少?解:两个阶码相等的数按补码浮点加法完成后,仅当尾数溢出需右规时会引起误差。右规时尾数右移一位,阶码加1,可能出现的最大误差是末尾丢1,如:结果为 00,1110;01.1右规后得 00,1111;00.1 1考虑到最大阶码是15,最后得最大误差的绝对值为 (10000)2=24,2018/3/30,34,由S(1),E(8),M(23)三个域组成的一个32位二进制字所表示的非零补码规格化浮点数x,其值表示为 :x = (-1)S ( 1.M ) 2E 128 问:其所表示的规格化的最大正数、 最小正数、 最大负数、 最小负数是多少?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报