计算机组成原理作业1-10章答案(唐朔飞)(8)

2019-04-21 20:47

+111 . 001 001 111 . 100 100 111 . 111 001 +111 . 001 001 111 . 000 010 111 . 110 000 +000 . 110 111 000 . 100 111 10 001 011 00 100 010 10 001 000 10 001 0 1 1 根据yn-1ynCj=110,加[-x*]补,置Cj=1 右移2位 根据yn-1ynCj=101,加[-x*]补,置Cj=1 右移2位 根据yn-1ynCj=001,加x*,保持Cj=0 即x*×y*=0.100 111 100 010,z0=x0? y0=0 ?1=1, [x×y]原=1.100 111 100 010,x·y= -0. 100 111 100 010

补码一位乘:[x]补=0.110111,[-x]补=1.001001,[y]补=1.010010

部分积 00 . 000 000 00 . 000 000 +11 . 001 001 11 . 001 001 11 . 100 100 +00 . 110 111 00 . 011 011 00 . 001 101 00 . 000 110 +11 . 001 001 11 . 001 111 11 . 100 111 +00 . 110 111 00 . 011 110 00 . 001 111 +11 . 001 001 1 111 010 0 111 101 1 0 乘数 1 010 010 0 101 001 1 010 100 1 101 010 1 110 101 Yn+1 0 0 1 0 0 说明 Ynyn+1=00,部分积右移1位 Ynyn+1=10,部分积加[-x]补 右移1位 Ynyn+1=01,部分积加[x]补 右移1位 Ynyn+1=00,部分积右移1位 Ynyn+1=10,部分积加[-x]补 右移1位 Ynyn+1=01,部分积加[x]补 右移1位 Ynyn+1=10,部分积加[-x]补 11 . 011 000 0 111 10 即 [x×y]补=1.011 000 011 110,x·y= -0.100 111 100 010 补码两位乘:

2[x]补=001.101110,2[-x]补=1.001001

部分积 乘数 Yn+1 说明

结果同补码一位乘, x·y= -0. 100 111 100 010 00

21. 用原码加减交替法和补码加减交替法计算x÷y。 (1)x=0.100111,y=0.101011; (2)x=-0.10101, y=0.11011; (3)x=0.10100, y= -0.10001;

(4)x=13/32, y= -27/32。

解:(1)x*=[x]原=[x]补=x= 0.100 111 y*=[y]原=[y]补=y= 0=0 ?y0=0 ?0.101 011 [-y*]补=[-y]补=1.010 101 q0=x0 y]原=0.111 010 r*=0.000 010×2-6=0.000 000 000 010 ?y*=[x?y=x*?x 计算过程如下: 原码加减交替除法: 被除数(余数) 商 0 . 1 0 0 1 1 1 0 . 0 0 0 0 0 0 + 1 . 0 1 0 1 0 1 试减,+[-y*]补 1 . 1 1 1 1 0 1 . 1 1 1 0 0 0 0 . + 0 . 1 0 1 0 1 1 ?0 1 r< 1 . 0 0 0 1 1 0 ?0,+y* 0 . 1 0 0 0 1 1 1 0.1 + 1 . 0 1 0 1 0 1 r>?0, +[-y*]补 0 . 0 1 1 0 1 1 1 0 . 1 1 0 1 1 0 0.1 1 + 1 . 0 1 0 1 0 1 r>0, +[-y*]补 0 . 0 0 1 0 1 1

0 .?续: 被除数(余数) 商 1 0 1 0 1 1 0 0 . 1 1 1 + 1 . 0 1 0 1 0 1 r>0, 1 . 0 1 0 1 1 0 0.1 1 1 0 ?+[-y*]补 1 . 1 0 1 0 1 1 1 + 0 . 1 0 1 0 1 1 r< 0 . 0 0?0,+y* 0 . 0 0 0 0 0 1 1 0 0 1 0 0.1 1 1 0 1 + 1 . 0 1 0 1 0 1 r>0, 0.1 1 1 0 1 0 + 0 . 1 0 1 0 1 1 ?+[-y*]补 1 . 0 1 0 1 1 1 1 r<0,+y*(恢复余数) 0 . 0 0 0 0 1 0

补码加减交替除法: 被除数(余数) 商 0 0 . 1 0 0 1 1 1 0 . 0 0 0 0 0 0 + 1 1 . 0 1 0 1 0 1 1 . 1 1 1 0 0 0 ?1 试减,x、y同号,+[-y]补 1 1 . 1 1 1 1 0 0 1 0 . + 0 0 . 1 0 1 0 1 1 r、y异号,+[y]补 0 0 0 1 . 0 0 0 1 1 0 0.1 + 1 1 . 0 1?. 1 0 0 0 1 1 1 0 0 . 1 1 0?0 1 0 1 r、y同号, +[-y]补 0 0 . 0 1 1 0 1 1 1 1 1 0 0.1 1 + 1 1 . 0 1 0 1 0 1 r、y同号, +[-y]补 0 0 . 0 0 1 0 1 1

0 0 . 0 1 0 ?续: 被除数(余数) 商 1 1 1 0 0 . 1 1 1 + 1 1 . 0 1 0 1 0 1 r、y同号, +[-y]补 1 1 . 0 1 0 1 1 0 0.1 1 1 0 + ? 1 1 . 1 0 1 0 1 1 1 0 0 . 0?0 0 . 1 0 1 0 1 1 r、y异号,+[y]补 0 0 . 0 0 0 0 0 1 1 0 0 0 1 0 0.1 1 1 0 1 + 1 1 . 0 1 0 1 0 1 r、y同号, 0.1 1 1 0 1 1 —— 恒置1 + 0 0 . 1 0 1 ?+[-y]补 1 1 . 0 1 0 1 1 1 1 0 1 1 r、x异号,(恢复余数) 0 0 . 0 0 0 0 1 0 且r、y异号, +[y]补 y]补= 0.111 011 [r6]补=0.000 010,r=r*=0.000 000 000 010?y=[x?注:恒置1引入误差。 x

(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 y?y]原=1.110 00 x?y*= 0.110 00 [x? 0 = 1 x*? y0 = 1 ? q0 = x0 = -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 . 1 1 1 1 0 0.1 ?0,+y* 0 . 0 1 1 1 1 1 + 1 . 0 0 1 0 1 r> 0 . 0 0?0, +[-y*]补 0 . 0 0 0 1 1 1 1 1 0 0.1 1 + 1 . 0 0 1 0 1 r>0, +[-y*]补 1 . 0 1 0 1 1

0 . 1 0 1 1 0 ?续: 被除数(余数) 商 1 0 . 1 1 0 + 0 . 1 1 0 1 1 r<0, +y* 1 . 1 0 0 0 1 . 0 0 0 1 0 0.1 1 0 0 + 0 . 1 1 0 1 1 ?1 1 r< 0.1 1 0 0 0 + 0 . 1 1 0 1 1 ?0,+y* 1 .

1 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 0 0 . 0 1 1 0 0 ? 试减,x、y异号,+[y]补 0 0 . 0 0 1 1 0 1 1 . + 1 1 . 0 0 1 0 1 r、y同号,+[-y]补 1 1 . 1 0 0 0 1 1 . 0 0 0 1 0 1.0 + 0 0 . 1 1 0 1 1 ?1 1 1 1 . 1 1 0 1 0 ? r、y异号, +[y]补 1 1 . 1 1 1 0 1 1 1.0 0 + 0 0 . 1 1 0 1 1 r、y异号, +[y]补 0 0 . 1 0 1 0 1 0 1 . 0 1 0 1 0 1 . 0 0 1?续: 被除数(余数) 商 1 0 0? + 1 1 . 0 0 1 0 1 r、y同号, +[-y]补 0 0 . 0 1 1 1 1 1 . 1 1 1 1 0 1.0 0 1 1 + 1 1 . 0 0 1 0 1 1.0 0 1 1 1 —— 恒置1 + 1 1 . 0 0?r、y同号,+[-y]补 0 0 . 0 0 0 1 1 1 1 0 1 r、x异号,(恢复余数) 1 1 . 0 1 0 0 0 且r、y同号,+[-y]补 y=?y]补=1.001 11,x?注:恒置1引入误差。 [r5]补=1.010 00, r= -0.000 001 100 0 [x -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*= 1.001 01 —— 溢出 ? 1 = 1 x*? y0 = 0 ? [-y]补= 0.100 01 q0 = x0 y = -1.001 01 r*=0.010 11×2-5 =0.000?y]原:无定义 x? [x 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 . 0 0 1 1 0 1?0 1 1 1 . + 1 . 0 1 1 1 1 r>0, +[-y*]补 1 . 1 0 1 0 1 1 . 0 1 0 1 0 1.0 + 0 . 1 0? 1 0 0 1 r< 1 . 1 0 1 1 0 ?0, +y* 1 . 1 1 0 1 1 1 1.0 0 + 0 . 1 0 0 0 1 r<0, +y* 0 . 0 0 1 1 1

0 . 0 1 1 1 0 1 . 0 0 1 ?续: 被除数(余数) 商 1 + 1 . 0 1 1 1 1 r> 1 . 1 1?0, +[-y*]补 1 . 1 1 1 0 1 1 0 1 0 1.0 0 1 0 + 0 . 1 0 0 0 1 r<0,+y* 1.0 0 1 0 1 r?0 . 0 1 0 1 1 1>0, 结束 注:当x*>y*时产生溢出,这种情况在第一步运算后判断r的正负时就可发现。此时数值位占领小数点左边的1位,原码无定义,但算法本身仍可正常运行。

补码加减交替除法: 被除数(余数) 商 0 0 . 1 0 1 0 0 0 . 0 0 0 0 0 + 1 0 0 . 0 0 1 ?1 . 0 1 1 1 1 试减,x、y异号,+[y]补 0 0 . 0 0 0 1 1 1 1 0 0 . + 1 1 . 0 1 1 1 1 r、y异号,+[y]补 1 1 . 0 1 0 1 0 0.1 + 0 0 .? 1 1 . 1 0 1 0 1 1 1 1 . 1 0 1?1 0 0 0 1 r、y同号, +[-y]补 1 1 . 1 1 0 1 1 1 1 0 0.1 1 + 0 0 . 1 0 0 0 1 r、y同号, +[-y]补 0 0 . 0 0 1 1 1

0 0 . 0 1 1 1 0 ?续: 被除数(余数) 商 1 0 . 1 1 0 + 1 1 . 0 1 1 1 1 r、y异号, +[y]补 1 1 . 1 1 . 1 1 0 1 0 0.1 1 0 1 + 0 0 . 1 0 0 0?1 1 1 0 1 1 0.1 1 0 1 1 —— 恒置1 ?1 r、y同号,+[-y]补 0 0 . 0 1 0 1 1 1 r、x同号,结束 [r5]补=0.010 11,r=r*=0.000 000 101 1 ?y= -1.001 01 判溢出:qf ?y]补=10.110 11,x? 1 = 1 [x? y0 = 0 ?真符位的产生:qf = x0 0 = 1,溢出?q0 = 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.011 11 ? 1 = 1 x*? y0 = 0 ?[-y]补= 0.110 11 q0 = x0 y =(-0.011 11)2 = -15/32 r*=0.010 11×2-5 ?y]原=1.011 11 x?[x =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 0 1 0 0 0 .? 1 0 1 + 0 . 1 1 0 1 1 r<0, +y* 1 . 1 1 1 1 1 1 . 1 1 1 1 0 0.0 + 0 . 1 1 0 1? 1 1 r< 1 . 1 0 0 1 0 ?0, +y* 0 . 1 1 0 0 1 1 0.0 1 + 1 . 0 0 1 0 1 r>0, +[-y*]补 0 . 1 0 1 1 1

1 . 0 1 1 1 0 0 . 0 1 1 ?续: 被除数(余数) 商 1 + 1 . 0 0 1 0 1 r> 1 . 0 0?0, +[-y*]补 0 . 1 0 0 1 1 1 1 1 0 0.0 1 1 1 + 1 . 0 0 1 0 1 r>0, +[-y*]补 0.0 1 1 1 1 r? 0 . 0 1 0 1 1 1>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 . + 0 0 . 1 1 0 1 1 1 1 . 1 1 1 1 ? r、y同号,+[-y]补 1 1 . 1 1 1 1 1 1 1.1 + 0 0 . 1 1 0 1 r、y同号,+[-y]补 0 0 . 1 1 0 0 1 0 1 . 1 0 0 1 0 1.1 + 1 1 . 0 0 1 0 1 ?1 r、y异号, +[y]补 0 0 . 1 0 1 1 1

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

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

(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); (3)x=2101×(-0.100 101),y=2100×(-0.001 111)。 解:先将x、y转换成机器数形式:

(1)x=2-011× 0.101 100,y=2-010×(-0.011 100)

[x]补=1,101;0.101 100, [y]补=1,110;1.100 100

[Ex]补=1,101, [y]补=1,110, [Mx]补=0.101 100, [My]补=1.100 100 1)对阶:

[?E]补=[Ex]补+[-Ey]补 = 11,101+ 00,010=11,111 < 0,

应Ex向Ey对齐,则:[Ex]补+1=11,101+00,001=11,110 = [Ey]补 [x]补=1,110;0.010 110 2)尾数运算:

[Mx]补+[My]补= 0.010 110 + 11.100 100=11.111010

[Mx]补+[-My]补=0.010 110 + 00.011100= 00.110 010 3)结果规格化:

[x+y]补=11,110;11.111 010 = 11,011;11.010 000 (尾数左规3次,阶码减3) [x-y]补=11,110;00.110 010, 已是规格化数。 4)舍入:无 5)溢出:无

则:x+y=2×(-0.110 000) x-y =2-010×0.110 010

(2)x=2×(-0.100010),y=2-×(-0.011111)

[x]补=1,101;1.011 110, [y]补=1,110;1.100 001 1) 对阶:过程同(1)的1),则 [x]补=1,110;1.101 111

2)尾数运算:

[Mx]补+[My]补= 11.101111 + 11. 100001 = 11.010000 [Mx]补+[-My]补= 11.101111 + 00.011111 = 00.001110

3)结果规格化:

[x+y]补=11,110;11.010 000,已是规格化数

[x-y]补=11,110;00.001 110 =11,100;00.111000 (尾数左规2次,阶码减2) 4)舍入:无

5)溢出:无 则:x+y=2-010×(-0.110 000) x-y =2-100×0.111 000

(3)x=2101×(-0.100 101),y=2100×(-0.001 111)

[x]补=0,101;1.011 011, [y]补=0,100;1.110 001

1)对阶:

[?E]补=00,101+11,100=00,001 >0,应Ey向Ex对齐,则: [Ey]补+1=00,100+00,001=00,101=[Ex]补 [y]补=0,101;1.111 000(1) 2)尾数运算:

[Mx]补+[My]补= 11.011011+ 11.111000(1)= 11.010011(1) [Mx]补+[-My]补= 11.011011+ 00.000111(1)= 11.100010(1) 3)结果规格化:

[x+y]补=00,101;11.010 011(1),已是规格化数

[x-y]补=00,101;11.100 010(1)=00,100;11.000 101 (尾数左规1次,阶码

减1)

4)舍入:

[x+y]补=00,101;11.010 011(舍)

[x-y]补 不变

5)溢出:无 则:x+y=2101×(-0.101 101)

100

x-y =2×(-0.111 011)

-011

010

-101


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

下一篇:师生互动模式在初中体育课堂教学中的应用

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

马上注册会员

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