计算机组成原理课后答案(唐朔飞第二版)(8)

2020-02-21 21:21

1? 1 1 . 0 1 0 1 1 0 0.1 1 1 0 + 0 0 . 1 0 1 0 1 1 r、y异号,+[y]补 0 0 . 0 0 0 0 0 1

1? 0 0 . 0 0 0 0 1 0 0.1 1 1 0 1

+ 1 1 . 0 1 0 1 0 1 r、y同号, +[-y]补 1 1 . 0 1 0 1 1 1 1? 0.1 1 1 0 1 1 —— 恒置1 + 0 0 . 1 0 1 0 1 1 r、x异号,(恢复余数) 0 0 . 0 0 0 0 1 0 且r、y异号, +[y]补 注:恒置1引入误差。 x?y=[x?y]补= 0.111 011 [r]补=0.000 010,r=r*=0.000 000 000 010 (2)x= -0.101 01,y=0.110 11 [x]原=1.101 01 x*= 0.101 01

y* = [y]原 = [y]补= y = 0.110 11 [-y*]补= [-y]补= 1.001 01 [x]补= 1.010 11

q0 = x0 ? y0 = 1 ? 0 = 1 x*?y*= 0.110 00 [x?y]原=1.110 00 x?y = -0.110 00 r*=0.110 00×2-5

=0.000 001 100 0 计算过程如下: 原码加减交替除法:

被除数(余数) 商

0 . 1 0 1 0 1 0 . 0 0 0 0 0 + 1 . 0 0 1 0 1 试减,+[-y*]补 1 . 1 1 0 1 0

1? 1 . 1 0 1 0 0 0 . + 0 . 1 1 0 1 1 r<0,+y* 0 . 0 1 1 1 1

1? 0 . 1 1 1 1 0 0.1 + 1 . 0 0 1 0 1 r>0, +[-y*]补 0 . 0 0 0 1 1

1? 0 . 0 0 1 1 0 0.1 1 + 1 . 0 0 1 0 1 r>0, +[-y*]补 1 . 0 1 0 1 1

被除数(余数) 商

1? 0 . 1 0 1 1 0 0 . 1 1 0 + 0 . 1 1 0 1 1 r<0, +y* 1 . 1 0 0 0 1

1? 1 . 0 0 0 1 0 0.1 1 0 0 + 0 . 1 1 0 1 1 r<0,+y* 1 . 1 1 1 0 1 1? 0.1 1 0 0 0

+ 0 . 1 1 0 1 1 r<0, +y*(恢复余数) 0 . 1 1 0 0 0 补码加减交替除法:

被除数(余数) 商

1 1 . 0 1 0 1 1 0 . 0 0 0 0 0 + 0 0 . 1 1 0 1 1 试减,x、y异号,+[y]补 0 0 . 0 0 1 1 0

1? 0 0 . 0 1 1 0 0 1 . + 1 1 . 0 0 1 0 1 r、y同号,+[-y]补 1 1 . 1 0 0 0 1

1? 1 1 . 0 0 0 1 0 1.0

+ 0 0 . 1 1 0 1 1 r、y异号, +[y]补 1 1 . 1 1 1 0 1

1? 1 1 . 1 1 0 1 0 1.0 0

+ 0 0 . 1 1 0 1 1 r、y异号, +[y]补 0 0 . 1 0 1 0 1

被除数(余数) 商

1? 0 1 . 0 1 0 1 0 1 . 0 0 1 + 1 1 . 0 0 1 0 1 r、y同号, +[-y]补 0 0 . 0 1 1 1 1

1? 0 0 . 1 1 1 1 0 1.0 0 1 1 + 1 1 . 0 0 1 0 1 r、y同号,+[-y]补 0 0 . 0 0 0 1 1 1? 1.0 0 1 1 1 —— 恒置1 + 1 1 . 0 0 1 0 1 r、x异号,(恢复余数) 1 1 . 0 1 0 0 0 且r、y同号,+[-y]补 注:恒置1引入误差。

[r]补=1.010 00, r= -0.000 001 100 0 [x?y]补=1.001 11,x?y= -0.110 01 (3)x= 0.101 00,y= -0.100 01 x*= [x]原= [x]补= x=0.101 00 [y]原 = 1.100 01 y* = 0.100 01 [-y*]补=1.011 11 [y]补= 1.011 11 [-y]补= 0.100 01 q0 = x0 ? y0 = 0 ? 1 = 1 x*?y*= 1.001 01 —— 溢出 [x?y]原:无定义 x?y = -1.001 01 r*=0.010 11×2-5

=0.000 000 101 1 计算过程如下: 原码加减交替除法:

被除数(余数) 商

0 . 1 0 1 0 0 0 . 0 0 0 0 0 + 1 . 0 1 1 1 1 试减,+[-y*]补

0 . 0 0 0 1 1 1? 0 . 0 0 1 1 0 1 . + 1 . 0 1 1 1 1 r>0, +[-y*]补

1 . 1 0 1 0 1 1? 1 . 0 1 0 1 0 1.0 + 0 . 1 0 0 0 1 r<0, +y* 1 . 1 1 0 1 1

1? 1 . 1 0 1 1 0 1.0 0 + 0 . 1 0 0 0 1 r<0, +y* 0 . 0 0 1 1 1

被除数(余数) 商

1? 0 . 0 1 1 1 0 1 . 0 0 1 + 1 . 0 1 1 1 1 r>0, +[-y*]补 1 . 1 1 1 0 1

1? 1 . 1 1 0 1 0 1.0 0 1 0 + 0 . 1 0 0 0 1 r<0,+y* 0 . 0 1 0 1 1 1? 1.0 0 1 0 1 r>0, 结束

注:当x*>y*时产生溢出,这种情况在第一步运算后判断r的正负时就可发现。此时数值位占领小数点左边的1位,原码无定义,但算法本身仍可正常运行。 补码加减交替除法:

被除数(余数) 商

0 0 . 1 0 1 0 0 0 . 0 0 0 0 0 + 1 1 . 0 1 1 1 1 试减,x、y异号,+[y]补 0 0 . 0 0 0 1 1

1? 0 0 . 0 0 1 1 0 0 . + 1 1 . 0 1 1 1 1 r、y异号,+[y]补 1 1 . 1 0 1 0 1

1? 1 1 . 0 1 0 1 0 0.1

+ 0 0 . 1 0 0 0 1 r、y同号, +[-y]补 1 1 . 1 1 0 1 1

1? 1 1 . 1 0 1 1 0 0.1 1

+ 0 0 . 1 0 0 0 1 r、y同号, +[-y]补 0 0 . 0 0 1 1 1

被除数(余数) 商

1? 0 0 . 0 1 1 1 0 0 . 1 1 0 + 1 1 . 0 1 1 1 1 r、y异号, +[y]补 1 1 . 1 1 1 0 1

1? 1 1 . 1 1 0 1 0 0.1 1 0 1 + 0 0 . 1 0 0 0 1 r、y同号,+[-y]补 0 0 . 0 1 0 1 1 1? 0.1 1 0 1 1 —— 恒置1 r、x同号,结束

[r]补=0.010 11,r=r*=0.000 000 101 1 真符位的产生:qf = x0 ? y0 = 0 ? 1 = 1 [x?y]补=10.110 11,x?y= -1.001 01 判溢出:qf ? q0 = 1 ? 0 = 1,溢出

注:由于本题中x*>y*,有溢出。除法运算时一般在运算前判断是否x* >y*,如果该条件成立则停止运算,转溢出处理。但此算法本身在溢出情况下仍可正常运行,此时数值位占领小数点左边的1位,商需设双符号位(变形补码),以判溢出。采用这种方法时运算前可不判溢出,直接进行运算,运算完后再判溢出。 (4)x=13/32=(0.011 01)2

y= -27/32=(-0.110 11)2 x*= [x]原= [x]补= x=0. 011 01 [y]原 = 1.110 11 y* = 0.110 11 [-y*]补=1.001 01 [y]补= 1.001 01 [-y]补= 0.110 11 q0 = x0 ? y0 = 0 ? 1 = 1 x*?y*= 0.011 11 [x?y]原=1.011 11

x?y =(-0.011 11)2 = -15/32 r*=0.010 11×2-5

=0.000 000 101 1 原码加减交替除法:

被除数(余数) 商

0 . 0 1 1 0 1 0 . 0 0 0 0 0 + 1 . 0 0 1 0 1 试减,+[-y*]补

1 . 1 0 0 1 0 1? 1 . 0 0 1 0 0 0 . + 0 . 1 1 0 1 1 r<0, +y*

1 . 1 1 1 1 1 1? 1 . 1 1 1 1 0 0.0 + 0 . 1 1 0 1 1 r<0, +y* 0 . 1 1 0 0 1

1? 1 . 1 0 0 1 0 0.0 1 + 1 . 0 0 1 0 1 r>0, +[-y*]补 0 . 1 0 1 1 1 被除数(余数) 商

1? 1 . 0 1 1 1 0 0 . 0 1 1 + 1 . 0 0 1 0 1 r>0, +[-y*]补 0 . 1 0 0 1 1

1? 1 . 0 0 1 1 0 0.0 1 1 1 + 1 . 0 0 1 0 1 r>0, +[-y*]补 0 . 0 1 0 1 1 1? 0.0 1 1 1 1 r>0, 结束

补码加减交替除法:

被除数(余数) 商

0 0 . 0 1 1 0 1 0 . 0 0 0 0 0 + 1 1 . 0 0 1 0 1 试减,x、y异号,+[y]补 1 1 . 1 0 0 1 0

1? 1 1 . 0 0 1 0 0 1 . + 0 0 . 1 1 0 1 1 r、y同号,+[-y]补 1 1 . 1 1 1 1 1

1? 1 1 . 1 1 1 1 0 1.1

+ 0 0 . 1 1 0 1 1 r、y同号,+[-y]补 0 0 . 1 1 0 0 1

1? 0 1 . 1 0 0 1 0 1.1 0

+ 1 1 . 0 0 1 0 1 r、y异号, +[y]补 0 0 . 1 0 1 1 1

被除数(余数) 商

1? 0 1 . 0 1 1 1 0 1 . 1 0 0 + 1 1 . 0 0 1 0 1 r、y异号, +[y]补 0 0 . 1 0 0 1 1

1? 0 1 . 0 0 1 1 0 1.1 0 0 0 + 1 1 . 0 0 1 0 1 r、y异号,+[y]补 0 0 . 0 1 0 1 1 1? 1.1 0 0 0 1 —— 恒置1 r、x同号,结束 [r]补=0.010 11,r=r*=0.000 000 101 1 [x?y]补=1.100 01,x?y=(-0.011 11)2 = -15/32

22. 设机器字长为16位(含1位符号位),若一次移位需1μs,一次加法需1 μs,试问原码一位乘、补码一位乘、原码加减交替除法和补码加减交替除法各最多需多少时间? 解:原码一位乘最多需时 1μs×15(加)+ 1μs×15(移位)=30μs 补码一位乘最多需时 1μs×16+1μs×15 = 31μs 原码加减交替除最多需时 1μs×(16+1)+1μs×15=32μs (或33μs) 补码加减交替除最多需时 1μs×(16+1) +1μs×15=32μs (或33μs) (包括最后恢复余数!)

25. 对于尾数为40位的浮点数(不包括符号位在内),若采用不同的机器数表示,试问当尾数左规或右规时,最多移位次数各为多少? 解:对于尾数为40位的浮点数,若采用原码表示,当尾数左规时,最多移位39次;反码表示时情况同原码;若采用补码表示,当尾数左规时,正数最多移位39次,同原码;负数最多移位40次。当尾数右规时,不论采用何种码制,均只需右移1次。

26.按机器补码浮点运算步骤,计算[x±y]补. (1)x=2 (2)x=2

-011-011101

× 0.101 100,y=2

-010

×(-0.011 100);

-010

×(-0.100 010),y=2×(-0.011 111);

(3)x=2×(-0.100 101),y=2×(-0.001 111)。 解:先将x、y转换成机器数形式:

100


计算机组成原理课后答案(唐朔飞第二版)(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:思源客户服务执行手册

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: