计算机组成原理二章答案.docx

上传人:b****5 文档编号:7215241 上传时间:2023-05-11 格式:DOCX 页数:15 大小:56.24KB
下载 相关 举报
计算机组成原理二章答案.docx_第1页
第1页 / 共15页
计算机组成原理二章答案.docx_第2页
第2页 / 共15页
计算机组成原理二章答案.docx_第3页
第3页 / 共15页
计算机组成原理二章答案.docx_第4页
第4页 / 共15页
计算机组成原理二章答案.docx_第5页
第5页 / 共15页
计算机组成原理二章答案.docx_第6页
第6页 / 共15页
计算机组成原理二章答案.docx_第7页
第7页 / 共15页
计算机组成原理二章答案.docx_第8页
第8页 / 共15页
计算机组成原理二章答案.docx_第9页
第9页 / 共15页
计算机组成原理二章答案.docx_第10页
第10页 / 共15页
计算机组成原理二章答案.docx_第11页
第11页 / 共15页
计算机组成原理二章答案.docx_第12页
第12页 / 共15页
计算机组成原理二章答案.docx_第13页
第13页 / 共15页
计算机组成原理二章答案.docx_第14页
第14页 / 共15页
计算机组成原理二章答案.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

计算机组成原理二章答案.docx

《计算机组成原理二章答案.docx》由会员分享,可在线阅读,更多相关《计算机组成原理二章答案.docx(15页珍藏版)》请在冰点文库上搜索。

计算机组成原理二章答案.docx

计算机组成原理二章答案

 

第2章作业参考答案

1、

(1)-35(=23)16

(2)127(3)-127(4)-1

[-35]原=10100011[127]原=01111111[-127]原=11111111[-1]原=10000001

[-35]反=11011100[127]反=01111111[-127]反=10000000[-1]反=11111110

[-35]补=11011101[127]补=01111111[-127]补=10000001[-1]补=11111111

2

当a7=0时,x≥0,满足x>-0.5的条件,即:

若a7=0,a6~a0可取任意值

当a7=1时,x<0,若要满足x>-0.5的条件,则由补码表示与其真值的关系,可知:

要使x>-0.5,所以要求a6=1,并且a5~a0不能全部为0

所以,要使x>-0.5,则要求a7=0;或者a7=a6=1,并且a5~a0至少有一个为1

3、

由题目要求可知,该浮点数的格式为:

31

3023

220

S

E(移码表示)

M(补码表示)

注:

由于S是数符,已表示了尾数的符号,所以为了提高表示精度,M(23位)不必存储符号位,只需存小数点后面的有效数值位即可。

(1)最大数的二进制表示为:

0111111111111……111(23个1)

(2)最小数的二进制表示为:

1111111110000……000(23个0)

(3)非IEEE754标准的补码表示的规格化数是指其最高有效位与符号位相反

故有:

最大正数为:

0111111111111……111(23个1)=+(1-2-23)⨯2127

最小正数为:

0000000001000……000(22个0)=+0.5⨯2-128

最大负数为:

1000000000111……111(22个1)=-(0.5+2-23)⨯2-128

最小负数为:

1111111110000……000(23个0)=-1⨯2127

所以其表示数的范围是:

+0.5⨯2-128~+(1-2-23)⨯2127以及-1⨯2127~-(0.5+2-23)⨯2-128

4、IEEE754标准32位浮点的规格化数为

X=(-1)S⨯1.M⨯2E-127

(1)27/64

27/64=27⨯2-6=(11011)2⨯2-6=(1.1011)2⨯2-2

所以S=0,E=e+127=125=(01111101)2,M=1011

32位的规格化浮点数为:

00111110110110000000000000000000,即十六进制的(3ED80000)16

(2)-27/64

-27/64=-(1.1011)2⨯2-2

所以S=1,E=e+127=125=(01111101)2,M=1011

32位的规格化浮点数为:

10111110110110000000000000000000,即十六进制的(BED80000)16

5、[x+y]补=[x]补+[y]补

(1)x=11011,y=00011

[x+y]补=0011011+0000011=0011110;没有溢出,x+y=11110

(2)x=11011,y=-10101

[x+y]补=0011011+1101011=0000110;

0011011

+1101011

0000110

没有溢出,x+y=00110

(3)x=-10110,y=-00001

[x+y]补=1101010+1111111=1101001;没有溢出,x+y=-10111

6、[x-y]补=[x]补+[-y]补

(1)x=11011,y=-11111

[-y]补=0011111

[x-y]补=0011011+0011111=0111010;

0011011

+0011111

0111010

正溢出,x-y=+111010

(2)x=10111,y=11011

[-y]补=1100101

[x-y]补=0010111+1100101=1111100;

0010111

+1100101

1111100

没有溢出,x-y=-00100

(3)x=11011,y=-10011

[-y]补=0010011

[x-y]补=0011011+0010011=0101110;正溢出,x-y=+101110

7、

(1)x=11011,y=-11111

用原码阵列乘法器

11011

⨯11111

11011

11011

11011

11011

11011

1101000101

[x⨯y]符号=0⊕1=1

所以[x⨯y]原=11101000101

用直接补码阵列乘法器:

[x]补=011011,[y]补=100001

(0)11011

(1)00001

(0)11011

(0)00000

(0)00000

(0)00000

(0)00000

0

(1)

(1)(0)

(1)

(1)

0

(1)

(1)0

(1)

(1)11011

将乘积中的符号位用负权表示,其他的负权位化为正权,得:

[x⨯y]补=10010111011

(2)x=-11111,y=-11011

用原码阵列乘法器

11111

⨯11011

11111

11111

00000

11111

11111

1101000101

[x⨯y]符号=1⊕1=0

所以[x⨯y]原=01101000101

用直接补码阵列乘法器:

[x]补=100001,[y]补=100101

(1)00001

(1)00101

(1)00001

(0)00000

(1)00001

(0)00000

(0)00000

1(0)(0)(0)(0)

(1)

100

(1)

(1)000101

将乘积中的符号位用负权表示,其他的负权位化为正权,得:

[x⨯y]补=01101000101

8、

(1)x=11000,y=-11111

用原码阵列除法器计算,符号位单独处理,商的符号位=0⊕1=1

设a=(|x|⨯2-5),b=(|y|⨯2-5),则a,b均为正的纯小数,且x÷y的数值=(a÷b);余数等于(a÷b)的余数乘以25

下面用不恢复余数法的原码阵列除法器计算a÷b

[a]补=[|x|⨯2-5]补=0.11000,[b]补=[|y|⨯2-5]补=0.11111,[-b]补=1.00001

过程如下:

0.11000

+[-b]补1.00001

1.11001——余数为负,商为0

1.10010——余数和商左移一位(0)

+[b]补0.11111

0.10001——余数为正,商为1

1.00010——余数和商左移一位(01)

+[-b]补1.00001

0.00011——商为1

0.00110——(011)

+[-b]补1.00001

1.00111——商为0

0.01110——(0110)

+[b]补0.11111

1.01101——商为0

0.11010——(01100)

+[b]补0.11111

1.11001——商为0——(011000)

即:

a÷b的商为0.11000;

余数为1.11001⨯2-5,因为1.11001为负数,加b处理为正数,1.11001+b=1.11001+0.11111=0.11000,所以a÷b的余数为0.11000⨯2-5

所以,(x÷y)的商=-0.11000,原码为:

1.11000;余数为0.11000

(2)x=-01011,y=11001

商的符号位=1⊕0=1

设a=|x|⨯2-5,b=|y|⨯2-5,则a,b均为正的纯小数,且x÷y的数值=a÷b;余数等于(a÷b)的余数乘以25

下面用不恢复余数法的原码阵列除法器计算a÷b

[a]补=[|x|⨯2-5]补=0.01011,[b]补=[|y|⨯2-5]补=0.11001,[-b]补=1.00111

过程如下:

0.01011

+[-b]补1.00111

1.10010——余数为负,商为0

1.00100——余数和商左移一位(0)

+[b]补0.11001

1.11101——余数为负,商为0

1.11010——余数和商左移一位(00)

+[b]补0.11001

0.10011——商为1

1.00110——(001)

+[-b]补1.00111

0.01101——商为1

0.11010——(0011)

+[-b]补1.00111

0.00001——商为1

0.00010——(00111)

+[-b]补1.00111

1.01001——商为0——(001110)

即:

a÷b的商为0.01110;

余数为1.01001⨯2-5,因为1.01001为负数,加b处理为正数,1.01001+b=1.01001+0.11001=0.00010,所以a÷b的余数为0.00010⨯2-5

所以,(x÷y)的商=-0.01110,原码为:

1.01110;余数为0.00010

9、

(1)x=2-011⨯0.100101,y=2-010⨯(-0.011110)

EX=-011,Ey=-010,所以[EX]补=1101,[Ey]补=1110

MX=0.100101,My=-0.011110,所以[MX]补=0.100101,[My]补=1.100010

[x]浮=11010.100101,[y]浮=11101.100010

EX

对阶后[x]浮=11100.010010

(1),[y]浮=11101.100010

对阶后的尾数相加:

MX+My=0.010010

(1)+1.100010

0.010010

(1)

+1.100010

1.110100

(1)

x+y=1.110100

(1)⨯21110,化为规格化数(左移2位)为:

x+y=1.010010⨯21100,即:

x+y=-0.101110⨯2-4

对阶后的位数相减:

MX-My=MX+(-My)=0.010010

(1)+0.011110

0.010010

(1)

+0.011110

0.110000

(1)

x-y=0.110000

(1)⨯21110,已经是规格化数,采用0舍1入法进行舍入处理:

x-y=0.110001⨯21110,即:

x-y=0.110001⨯2-2

(2)x=2-101⨯(-0.010110),y=2-100⨯(0.010110)

EX=-101,Ey=-100,所以[EX]补=1011,[Ey]补=1100

MX=-0.010110,My=0.010110,所以[MX]补=1.101010,[My]补=0.010110

[x]浮=10111.101010,[y]浮=11000.010110

EX

对阶后[x]浮=11001.110101(0),[y]浮=11000.010110

对阶后的尾数相加:

MX+My=1.110101+0.010110

1.110101

+0.010110

0.001011

x+y=0.001011⨯21100,化为规格化数(左移2位)为:

x+y=0.101100⨯21010,即:

x+y=0.101100⨯2-6

对阶后的位数相减:

MX-My=MX+(-My)=1.110101+1.101010

1.110101

+1.101010

1.011111

x-y=1.011111⨯21100,已经是规格化数,所以

x-y=-0.100001⨯2-4

10、

(1)

Mx=

,Ex=0011

My=

,Ey=0100

Ex+Ey=0011+0100=0111

[x⨯y]符=0⊕1=1,乘积的数值=|Mx|⨯|My|:

0.1101

⨯0.1001

01101

00000

00000

01101

00000

001110101

所以,x⨯y=-0.01110101⨯20111,规格化处理(左移一位),并采用0舍1入法进行舍入:

x⨯y=-0.111011⨯20110

即:

=-0.111011⨯26

(2)

将x、y化为规格化数:

Mx=

,Ex=1110

My=

,Ey=0011

Ex-Ey=Ex+(-Ey)=1110+1101=1011

[x÷y]符=0⊕0=0,下面用加减交替法计算尾数Mx÷My:

[Mx]补=0.011010,[My]补=0.111100,[-My]补=1.000100

0.011010

+[-My]补1.000100

1.011110——余数为负,商为0

0.111100——余数和商左移一位(0)

+[My]补0.111100

1.111000——余数为负,商为0

1.110000——余数和商左移一位(00)

+[My]补0.111100

0.101100——余数为正,商为1

1.011000——余数和商左移一位(001)

+[-My]补1.000100

0.011100——商为1

0.111000——(0011)

+[-My]补1.000100

1.111100——商为0

1.111000——(00110)

+[My]补0.111100

0.110100——商为1

1.101000——(001101)

+[-My]补1.000100

0.101100——商为1

1.011000——(0011011)

+[-My]补1.000100

0.011100——商为1——(00110111)

Mx÷My的商为0.0110111,余数为0.011100⨯2-7,由于x化为0.01101(Mx)是尾数右移2位才得到,所以x÷y真正的余数是0.011100⨯2-7再尾数左移2位,即0.011100⨯2-9=0.111000⨯2-10

所以,x÷y的商为:

0.0110111⨯21011,规格化处理后为:

0.110111⨯21010=0.110111⨯2-6,余数为0.111000⨯2-10

11、

不考虑181ALU的函数发生器,而是从简单的全加器出发,则:

若设4位的二进制数为A=A3A2A1A0,B=B3B2B1B0,并设Gi=AiBi,Pi=Ai⊕Bi,由全加器进位输出的逻辑函数Ci+1=AiBi+Ci(Ai⊕Bi)可知:

(由于进位输出函数还可以写成Ci+1=AiBi+Ci(Ai+Bi),故Pi=Ai+Bi也可)

(1)串行进位方式:

C1=A0B0+C0(A0⊕B0)=G0+P0C0

C2=A1B1+C1(A1⊕B1)=G1+P1C1

C3=A2B2+C2(A2⊕B2)=G2+P2C2

C4=A3B3+C3(A3⊕B3)=G3+P3C3

(2)并行进位方式:

C1=G0+P0C0

C2=G1+P1C1=G1+P1(G0+P0C0)=G1+P1G0+P1P0C0

C3=G2+P2C2=G2+P2(G1+P1G0+P1P0C0)=G2+P2G1+P2P1G0+P2P1P0C0

C4=G3+P3C3=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0

12、

(1)-5

-5=-(101)2=-(1.01)2⨯22

所以

S=1

E=e+127=2+127=129=(81)16=(10000001)2

M=(01000000000000000000000)2

故浮点格式为:

11000000101000000000000000000000,用十六进制表示为:

(C0A00000)16

(2)-1.5

-1.5=-(1.1)2=-(1.1)2⨯20

所以

S=1

E=e+127=0+127=(7F)16=(01111111)2

M=(10000000000000000000000)2

故浮点格式为:

10111111110000000000000000000000,用十六进制表示为:

(BFC00000)16

(3)384

384=(180)16=(110000000)2=(1.1)2⨯28

所以

S=0

E=e+127=8+127=135=(87)16=(10000111)2

M=(10000000000000000000000)2

故浮点格式为:

01000011110000000000000000000000,用十六进制表示为:

(43C00000)16

(4)1/16

1/16=(1.0)2⨯2-4

所以

S=0

E=e+127=-4+127=(7B)16=(01111011)2

M=(00000000000000000000000)2

故浮点格式为:

00111101100000000000000000000000,用十六进制表示为:

(3D800000)16

(5)-1/32

-1/32=-(1.0)2⨯2-5

所以

S=1

E=e+127=-5+127=(7A)16=(01111010)2

M=(00000000000000000000000)2

故浮点格式为:

10111101000000000000000000000000,用十六进制表示为:

(BD000000)16

13、

(1)11000001111000000000000000000000

S=1

E=(83)16=131e=E-127=131-127=4

1.M=(1.11)2

所以,该浮点数为-(1.11)2⨯24=-(11100)2=-28

(2)00111111010100000000000000000000

S=0

E=(7E)16=126e=E-127=126-127=-1

1.M=(1.101)2

所以,该浮点数为(1.101)2⨯2-1=(0.1101)2=0.8125

14、

IEEE754标准中,32位二进制数仍然有232种不同的组合,但是由于在IEEE754标准中,阶码为全1并且尾数为非0的情况不表示一个数。

尾数23位,尾数非0有223-1种组合,再配合符号位,共有2⨯(223-1)种组合不表示一个数

所以,该格式最多能表示不同的数的个数为:

232-2⨯(223-1)

15、该运算器电路由3部分组成:

ALU完成定点加减法运算和逻辑运算;专用阵列乘法器完成乘法运算;专用阵列除法器完成除法运算。

具体逻辑电路略。

16、

该ALU能完成8种运算,故使用3个控制参数S0~S2。

运算器中含有:

(1)一个4位的加法器:

完成加法、减法、加1和传送4种操作,其中加1操作是把加数固定为1,利用4位的加法器实现;传送是把加数固定为0,利用4位加法器实现。

(2)一个4位的求补器:

完成求补操作。

(3)求反、逻辑乘和逻辑加分别设计专门的逻辑电路实现。

具体电路略

17、

181ALU中的有些操作是冗余的或可由其他操作替代的,现要求简化为8种运算,故对181的运算种类进行简化,得到4种逻辑运算和4种算术运算,具体功能表如下:

控制参数

S2S1S0

运算

000

001

010

011

100

101

110

111

逻辑0

AB

A+B

A⊕B

A加B

A减B减1

A+A

A

而181其他的逻辑运算和算术运算都可以由以上的运算间接得到,例如:

逻辑运算中:

通过对“A”求反得到;

通过对“A+B”求反得到;

通过对“A⊕B”与“

”进行逻辑与实现;

通过对“AB”取反得到;

通过“A⊕B”并让A固定为全1得到;

通过对“A⊕B”与“A”进行逻辑与实现;

通过对前面得到的

再取反得到;

通过对“A⊕B”取反得到;B通过“A⊕B”并让A固定为全0得到;逻辑1通过对“逻辑0”取反得到;

通过对前面得到的

再取反得到

算术运算中:

减1操作可通过“A减B减1”并令B固定为0来实现;

18、

余3码编码的十进制加法规则是:

两个1位十进制数的余3码相加,如结果无进位,则从和数中减去3(即加上1101);如结果有进位,则和数中加上3(加上0011),即得和数的余3码。

设参加运算的两个一位的十进制数分别为Ai和Bi,它们的余3码分别为Ai0~Ai3和Bi0~Bi3,其二进制加法的和的编码为Si0~Si3,进位为Ci+1,修正之后,和对应的余3码为Fi0~Fi3,进位为CYi+1,则根据余3码的运算规则,有:

当Ci+1=0时,Fi3Fi2Fi1Fi0=Si3Si2Si1Si0+1101;当Ci+1=1时,Fi3Fi2Fi1Fi0=Si3Si2Si1Si0+0011,由此可画出逻辑电路图如下:

 

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2