(完整版)计算机组成原理第4章作业参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章部分习题参考答案
【4-4】已知X和Y,试用它们的变形补码计算出X + Y,并指出结果是否溢出
(3)X = -0.10110,Y = -0.00001
解:[X]补= 1.01010 [Y]补= 1.11111
1 1 . 0 1 0 1 0
+ 1 1 . 1 1 1 1 1
1 1 . 0 1 0 0 1
无溢出,X+Y = -0.10111
【4-5】已知X和Y,试用它们的变形补码计算出X - Y,并指出结果是否溢出
(3)X = 0.11011,Y = -0.10011
解:[X]补= 0.11011 [-Y]补= 0.10011
0 0 . 1 1 0 1 1
+ 0 0 . 1 0 0 1 1
0 1 . 0 1 1 1 0
结果正溢
【4-8】分别用原码乘法和补码乘法计算X * Y
(1)X = 0.11011,Y = -0.11111
法一:原码一位乘算法
解:|X| = 0.11011→B |Y| = 0.11111→C 0→A
A C 说明
1 1 1 1 1
C5 = 1, +|X|
1 1 1 1 1 部分积右移一位→
C5 = 1, +|X|
0 1 1 1 1 部分积右移一位→
C5 = 1, +|X|
1 0 1 1 1 部分积右移一位→
C5 = 1, +|X|
0 1 0 1 1 部分积右移一位→
C5 = 1, +|X|
0 0 1 0 1 部分积右移一位→
|X * Y| = 0.1101000101
Ps = Xs ⊕ Ys = 0 ⊕ 1 = 1
X*Y = -0.1101000101
法二:补码一位乘算法
解:[X]补= 0.11011→B [Y]补= 1.00001→C [-X]补= 1.00101 0→A
A C 附加说明
0 0. 0 0 0 0 0 1 0 0 0 0 1 0
+1 1. 0 0 1 0 1 C4C5 = 10 -|X|
1 1. 0 0 1 0 1
1 1. 1 0 0 1 0 1 1 0 0 0 0 1 部分积右移一位→
+0 0. 1 1 0 1 1 C4C5 = 01 +|X|
0 0. 0 1 1 0 1
0 0. 0 0 1 1 0 1 1 1 0 0 0 0 部分积右移一位→
+0 0. 0 0 0 0 0 C4C5 = 00 +0
0 0. 0 0 1 1 0
0 0. 0 0 0 1 1 0 1 1 1 0 0 0 部分积右移一位→
+0 0. 0 0 0 0 0 C4C5 = 00 +0
0 0. 0 0 0 1 1
0 0. 0 0 0 0 1 1 0 1 1 1 0 0 部分积右移一位→
+0 0. 0 0 0 0 0 C4C5 = 00 +0
0 0. 0 0 0 0 1
0 0. 0 0 0 0 0 1 1 0 1 1 1 0 部分积右移一位→
+1 1. 0 0 1 0 1 C4C5 = 10 -|X|
1 1. 0 0 1 0 1
[X*Y]补= 11.0010111011
X*Y = -0.1101000101
【4-10】计算X/Y
(2)X = -0.10101,Y = 0.11011
原码恢复余数法:
解:|X| = -0.101010→A |Y| = 0.110110→B [-|Y|]补= 1.00101 0→C
0 0. 1 0 1 0 1 0 0 0 0 0 0
+1 1. 0 0 1 0 1 -|Y|
1 1. 1 1 0 1 0 <0
+0 0. 1 1 0 1 1 +|Y|
0 0. 1 0 1 0 1 0 0 0 0 0 0 商0
0 1. 0 1 0 1 0 0 0 0 0 0 0 左移←
+1 1. 1 1 0 0 1 -|Y|
0 0. 0 1 1 1 1 0 0 0 0 0 1 >0,商1
0 0. 1 1 1 1 0 0 0 0 0 1 0 左移←
+1 1. 0 0 1 0 1 -|Y|
0 0. 0 0 0 1 1 0 0 0 0 1 1 >0,商1
0 0. 0 0 1 1 0 0 0 0 1 1 0 左移←
+1 1. 0 0 1 0 1 -|Y|
1 1. 0 1 0 1 1 <0
+0 0. 1 1 0 1 1 +|Y|
0 0. 0 0 1 1 0 0 0 0 1 1 0 商0
0 0. 0 1 1 0 0 0 0 1 1 0 0 左移←
+1 1. 0 0 1 0 1 -|Y|
1 1.1 0 0 0 1 <0
+0 0. 1 1 0 1 1 +|Y|
0 0. 0 1 1 0 0 0 0 1 1 0 0 商0
0 0. 1 1 0 0 0 0 1 1 0 0 0 左移←
+1 1. 0 0 1 0 1 -|Y|
1 1. 1 1 1 0 1 <0
+0 0. 1 1 0 1 1 +|Y|
0 0. 1 1 0 0 0 0 1 1 0 0 0 商0
Qs = Xs⊕Ys = 0⊕1 = 1
Q = -0.11000,R = 0.11000*2-5
【4-11】设浮点数的阶码和尾数部分均用补码表示,按照浮点数的运算规则,计算下列各题
(2)X = 2-101*0.101100,Y = 2-100*(-0.101000)解:[X]补= 1011;0.101100
[Y]补= 1100;1.011000
对阶:
△E = Ex – Ey = -5 -(-4)= -1
Ex < Ey,将Mx右移一位,Ex+1→Ex
[X]’补=1011;0.010110
尾数求和:
0 0. 0 1 0 1 1 0
+1 1. 0 1 1 0 0 0
1 1. 1 0 1 1 1 0
尾数结果规格化:尾数左移1位,阶码减1
[X+Y]补=1011;1.011100
X+Y = (-0.100100)*2-101
减法算法过程略,X-Y = 0.111110 * 2-100