计算机组成原理第五版白中英(详细)第2章作业参考答案解析

loading 分享 2026-9-1 下载文档

第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??1??(ai?2i?7)??1?a6?2?1?a5?2?2?a4?2?3?a3?2?4?a2?2?5?a1?2?6?a0?2?7i?06要使x>0、5 ,所以要求a6=1,并且a5?a0不能全部为0

所以,要使x>0、5,则要求a7=0;或者a7= a6=1,并且a5?a0至少有一个为1 3、

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

31 30 23 22 0 S E(移码表示) M(补码表示) 注:由于S就是数符,已表示了尾数得符号,所以为了提高表示精度,M(23位)不必存储符号位,只需存小数点后面得有效数值位即可。

(1)最大数得二进制表示为:0 11111111 1111……111(23个1) (2)最小数得二进制表示为:1 11111111 0000……000(23个0)

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

最大正数为:0 11111111 1111……111(23个1)=+(1223)?2127 最小正数为:0 00000000 1000……000(22个0)=+0、5?2128 最大负数为:1 00000000 0111……111(22个1)=(0、5+223)?2128

最小负数为:1 11111111 0000……000(23个0)=1?2127

所以其表示数得范围就是:+0、5?2128?+(1223)?2127以及1?2127?(0、5+223)?2128 4、IEEE754标准32位浮点得规格化数为 X=(1)S?1、M?2E127 (1)27/64

27/64=27?26=(11011)2?26=(1、1011)2?22 所以S=0,E=e+127=125=(01111101)2,M=1011 32位得规格化浮点数为:

00111110 11011000 00000000 00000000,即十六进制得(3ED80000)16 (2)27/64

27/64=(1、1011)2?22

所以S=1,E=e+127=125=(01111101)2,M=1011 32位得规格化浮点数为:

10111110 11011000 00000000 00000000,即十六进制得(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;

0 0 1 1 0 1 1 + 1 1 0 1 0 1 1 0 0 0 0 1 1 0

没有溢出,x+y=00110 (3)x=10110,y=00001

[x+y]补=1101010+1111111=1101001;没有溢出,x+y=10111 6、[xy]补=[x]补+[y]补 (1)x=11011,y=11111 [y]补=0011111

[xy]补=0011011+0011111=0111010;

0 0 1 1 0 1 1 + 0 0 1 1 1 1 1 0 1 1 1 0 1 0

正溢出,xy=+111010 (2)x=10111,y=11011 [y]补=1100101

[xy]补=0010111+1100101=1111100;

0 0 1 0 1 1 1 + 1 1 0 0 1 0 1 1 1 1 1 1 0 0

没有溢出,xy=00100 (3)x=11011,y=10011 [y]补=0010011

[xy]补=0011011+0010011=0101110;正溢出,xy=+101110 7、

(1)x=11011,y=11111 用原码阵列乘法器

1 1 0 1 1 ? 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1

1 1 0 1 1

1 1 0 1 1

1 1 0 1 1 1 1 0 1 0 0 0 1 0 1 [x?y]符号=0?1=1

所以 [x?y]原=1 1101000101

用直接补码阵列乘法器:[x]补=011011,[y]补=100001 (0) 1 1 0 1 1 ? (1) 0 0 0 0 1 (0) 1 1 0 1 1

(0) 0 0 0 0 0

(0) 0 0 0 0 0

(0) 0 0 0 0 0 (0) 0 0 0 0 0

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

将乘积中得符号位用负权表示,其她得负权位化为正权,得:[x?y]补=1 0010111011 (2) x=11111,y=11011 用原码阵列乘法器

1 1 1 1 1 ? 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1

0 0 0 0 0

1 1 1 1 1

1 1 1 1 1 1 1 0 1 0 0 0 1 0 1 [x?y]符号=1?1=0

所以 [x?y]原=0 1101000101

用直接补码阵列乘法器:[x]补=100001,[y]补=100101 (1) 0 0 0 0 1 ? (1) 0 0 1 0 1 (1) 0 0 0 0 1 (0) 0 0 0 0 0

(1) 0 0 0 0 1

(0) 0 0 0 0 0 (0) 0 0 0 0 0

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

将乘积中得符号位用负权表示,其她得负权位化为正权,得:[x?y]补=0 1101000101 8、

(1) x=11000,y=11111

用原码阵列除法器计算,符号位单独处理,商得符号位=0?1=1 设a=(|x|?25),b=(|y|?25),则a,b均为正得纯小数,且 x÷y得数值=(a÷b);余数等于(a÷b)得余数乘以25

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

[a]补=[|x|?25]补=0、11000,[b]补=[|y|?25]补=0、11111,[b]补=1、00001 过程如下:

0、 1 1 0 0 0 +[b]补 1、 0 0 0 0 1

1、 1 1 0 0 1 ——余数为负,商为0

1、 1 0 0 1 0 ——余数与商左移一位(0) +[b]补 0、 1 1 1 1 1

0、 1 0 0 0 1 ——余数为正,商为1

1、 0 0 0 1 0 ——余数与商左移一位(01) +[b]补 1、 0 0 0 0 1

0、 0 0 0 1 1 ——商为1 0、 0 0 1 1 0 ——(011) +[b]补 1、 0 0 0 0 1

1、 0 0 1 1 1 ——商为0 0、 0 1 1 1 0 ——(0110) +[b]补 0、 1 1 1 1 1 1、 0 1 1 0 1 ——商为0 0、 1 1 0 1 0 ——(01100) +[b]补 0、 1 1 1 1 1

1、 1 1 0 0 1 ——商为0——(011000) 即:a÷b得商为0、11000; 余数为1、11001?25,因为1、11001为负数,加b处理为正数,1、11001+b=1、11001+0、11111=0、11000,所以a÷b得余数为0、11000?25 所以,(x÷y)得商=0、11000,原码为:1、11000;余数为0、11000 (2) x=01011,y=11001 商得符号位=1?0=1

设a=|x|?25,b=|y|?25,则a,b均为正得纯小数,且 x÷y得数值=a÷b;余数等于(a÷b)得余数乘以25

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

[a]补=[|x|?25]补=0、01011,[b]补=[|y|?25]补=0、11001,[b]补=1、00111 过程如下:

0、 0 1 0 1 1 +[b]补 1、 0 0 1 1 1

1、 1 0 0 1 0 ——余数为负,商为0

1、 0 0 1 0 0 ——余数与商左移一位(0) +[b]补 0、 1 1 0 0 1

1、 1 1 1 0 1 ——余数为负,商为0

1、 1 1 0 1 0 ——余数与商左移一位(00) +[b]补 0、 1 1 0 0 1

0、 1 0 0 1 1 ——商为1 1、 0 0 1 1 0 ——(001) +[b]补 1、 0 0 1 1 1

0、 0 1 1 0 1 ——商为1 0、 1 1 0 1 0 ——(0011) +[b]补 1、 0 0 1 1 1

0、 0 0 0 0 1 ——商为1 0、 0 0 0 1 0 ——(00111) +[b]补 1、 0 0 1 1 1

1、 0 1 0 0 1 ——商为0——(001110) 即:a÷b得商为0、01110; 余数为1、01001?25,因为1、01001为负数,加b处理为正数,1、01001+b=1、01001+0、11001=0、00010,所以a÷b得余数为0、00010?25


计算机组成原理第五版白中英(详细)第2章作业参考答案解析.doc 将本文的Word文档下载到电脑
搜索更多关于: 计算机组成原理第五版白中英(详细)第2章作业参考答案解析 的文档
相关推荐
相关阅读