完整版第二章习题参考答案5版.docx
《完整版第二章习题参考答案5版.docx》由会员分享,可在线阅读,更多相关《完整版第二章习题参考答案5版.docx(9页珍藏版)》请在冰点文库上搜索。
完整版第二章习题参考答案5版
习题参考答案
1.写出下列各数的原码、反码、补码、移码表示(用8位二进制数)。
其中MSB是最高位(又是符号位)LSB是最低位。
如果是小数,小数点在MSB之后;如果是整数,小数点在LSB之后。
(1)-35
(2)128(3)-127(4)-1
解:
(1)先把十进制数-35/64写成二进制小数:
(注意位数为8位)x=(-35)10=(-100011)2
[x]原=10100011[x]反=11011100[x]补=11011101
(2)128写成二进制小数:
x=(128)10=(10000000)2
[x]原=10000000[x]反=10000000[x]补=10000000
(3)先把十进制数-127写成二进制小数:
x=(-127)10=(-1111111)2
[x]原=11111111[x]反=10000000[x]补=10000001
(4)令Y=-1=-0000001B
[Y]原=10000001[Y]反=11111110[Y]补=11111111
2.设[X]补=a7,a6,a5-a0,其中ai取0或1,若要x>—0.5,求a0,
a1,a2,…,a6的取值。
解:
若a7=0,贝x>0,所以:
a仁0,a2,…,a6任意;
若a7=1,贝廿:
a1=1,a2,…,a6不全为0
3.有一个字长为32位的浮点数,符号位1位,阶码8位,用移码表示;尾数23位(包括1位尾符)用补码表示,基数R=2。
请写出:
(1)最大数的二进制表示;
(2)最小数的二进制表示;
(1)
111111111
0111111*********111111
2)
111111111
1000000000000000000000
3)
111111111
0111111111111111111111
〜011111111
1000000000000000000000
4)
000000000
00000000000000000000001
(3)规格化数所能表示的数的范围;
解:
〜000000000111111*********11111111
4.将下列十进制数表示成浮点规格化数,阶码3位,用补码表示;尾数9位,用补码表示。
(1)27/64
(2)-27/64
解:
(1)x=27/64=11011BX2-6=0.011011B=1.1011B2-2
S=0M=0.10110000000000000000000
E=e+127=-2+127=125=01111101
[x]浮=00111110110110000000000000000000
=(3ED80000)16
(2)x=-27/64=-11011B>2-6=-0.011011B=-1.1011B2-2X
S=1M=0.10110000000000000000000
E=e+127=-2+127=125=01111101
[x]浮=10111110110110000000000000000000
=(BED80000)16
浮点规格化数:
[x]浮=11111001010000
5.已知X和Y,用变形补码计算X+Y,同时指出运算结果是否溢出
(1)X=11011Y=00011
解:
先写出x和y的变形补码再计算它们的和
[x]补=0011011[y]补=0000011
[x+y]补二[x]补+[y]补=0011011+0000011=0011110无溢出。
(2)X=11011Y=-10101
解:
先写出x和y的变形补码再计算它们的和
[x]补=0011011[y]补=1101011
[x+y]补=[x]补+[y]补=0011011+110101仁0000110
•••x+y=0000110B无溢出。
(3)X=-10110Y=-00001
解:
先写出x和y的变形补码再计算它们的和
[x]补=1101010[y]补=1111111
[x+y]补=[x]补+[y]补=11.01010+11.11111=1101001
•••x+y=-10111无溢出
6.已知X和Y,用变形补码计算X-Y,同时指出运算结果是否溢出。
(1)X=11011Y=-11111
解:
先写出x和y的变形补码,再计算它们的差
[x]补=0011011[y]补=1100001[-y]补=0011111
[x-y]补=[x]补+[-刃补=0011011+0011111=0111010
•••运算结果双符号不相等二为正溢出
(2)X=10111Y=11011
解:
先写出x和y的变形补码,再计算它们的差
[x]补=0010111[y]补=0011011[-y]补=1100101
[x-y]补=0010111+1100101=1111100
•••x-y=-1无溢出
(3)X=0.11011Y=-10011
解:
先写出x和y的变形补码,再计算它们的差
[x]补=0011011[y]补=1101101[-y]补=0010011
[x-y]补=[x]补+[-刃补=0011011+0010011=0101110
•••运算结果双符号为01不相等•为正溢出
7.用原码阵列乘法器、补码阵列乘法器分别计算XX丫。
(1)X=11011Y=-11111
(2)X=-11111丫=-11011
[X]原=0.11011[丫]原=1.11111
积的符号为XfYf011
11011
X11111
11011
11011
11011
11011
11011
0.1101000101
[XXY]原=1.1101000101
XXY=-0.1101000101
(2)X二11111
丫二11011
解:
用原码阵列乘法器计算
[X]原=111111[丫]原=111011
积的符号为
XfYf110
11111
x11011
11111
11111
00000
11111
11111
0.
1101000101
[X>丫]原=0.1101000101
XXY
=0.1101000101
&用原码阵列除法器计算X+丫。
(1)X=0.11000Y=-0.11111
(2)X=-0.01011Y=0.11001
解:
(1)[x]原=[x]补=0.11000[|y|]补=0.11111
[-IyI]补=1.00001
被除数X
[-|y|]补
0.1100000000
1.00001
余数为负
+[|y|]补
1.110010
0.011111
tq0=0
余数为正
0.0100010
—q1=1
[-|y|]补
1.1100001
余数为正
0.00000110
tq2=1
[-|y|]补
1.11100001
余数为负
1.111001110
—q3=0
+[|y|]
0.000011111
余数为负
1.1111011010
tq4=0
+[|y|]
0.0000011111
1.1111111001
tq5=0
商|q|=q0.q1q2q3q4q5=0.11000
XfYf011
余数r=0.00000110=0.11X2-101[x/y]原=1.11000
(2)X=-0.01011Y=0.11001
解:
(1川x|]原=[|x|]补=0.01011[|y|]补=0.11001
[-|y|]补=1.00111
被除数.010*******
[-|y|]补
1.00111
余数为负
1.100100
tq0=0
+[|y|]补
0.011001
余数为负
1.1111010
tq1=0
[|y|]补
0.0011001
余数为正
0.00100110
tq2=1
[-|y|]补
1.11100111
余数为正
0.000011010
tq3=1
+[-|y|]
1.111100111
余数为负
0.0000000010
tq4=1
+[|y|]
1.1111100111
1.1111101001
tq5=0
|q|=q0.q1q2q3q4q5=0.01110
r=0.000000001=0.1X21°0°
XfYf101
[x/y]原=1.01110
9.设阶为3位((不包括阶符位),尾数为6位(不包括数符位),阶码、尾数均用补码表示,完成下列取值的[X+丫],[X-丫]运算:
(1)x=2-011>0.100101y=2-°1°X(-0.011110)
解:
1对阶:
因x阶码小,所以调整x指数向y看齐
x=2-010>0.0100101
2尾数相加减
x+y=2-010>0.0100101-0.011110)
=2-010>(-0.0010111)
x-y=2-010».1100001
3规格化处理
x+y=2-010>(-0.0010111)=2-101>(-1.011100)
x-y=2-010».1100001=2-011X1.100001
4溢出检查
-126没有溢出
(2)x=2-101X(-0.010110)y=2-1°°>^0.010110)
1对阶:
因x阶码小,所以调整x指数向y看齐
x=2-100X-0.0010110)
2尾数相加减
x+y=2-100X-0.0010110+0.010110)
=2-叫(0.001011)
x-y=2-100X-0.100001)
3规格化处理
X+y=2-111X(1.011000)
X-y=2-101X-1.000010)
4溢出检查
-126没有溢出
10.设数的阶码为3位,尾数为6位,用浮点运算方法,计算下列各式
31349
⑴(2肓)[2(肓)]
解:
x=2010X1.10100,y=2011X-1.00100)
1阶码求和
ex+ey=010+011=101(+5)
移码表示为Ex+Ey=127+5=132
2尾数相乘,可以采用原码阵列乘法实现(用绝对值)
MxXMy=1.10100K00100
=1.1101010000
3规格化处理与溢出检查
MxXMy=-1.1101010000(已是规格化数)
-126W指数5<127,故没溢出
4舍入处理(保留6位小数)
MxXMy=1.110101
5确定积的符号,异号相乘为负
[xX]浮=2101X-1.110101)
解:
x=2-100X1.101000,y=2010X(1.111000)
Mx=1.101000My=1.111000
1阶码求差
ex-ey=-100-010=-110(-6)
移码Ex-Ey=127+(-6)=121
2尾数相除,可以采用无符号阵列除法实现
=0.110111
3规格化处理及溢出判断---尾数左移1位,阶码减1
ex-ey=-111(-7)
-126w指数-7<127,故没溢出
[Mx/My]=1.101110
4舍入处理(保留6位小数)
AiBi
Ci
A
iB
iBiC
i1AiCi1
Ci
Ai
Bi
(Ai
Bi)Ci1
Ci
Ai
Bi
(Ai
Bi)Ci1
Ci
Gi
PiCi1
Gi
Ai
Bi
PiAiB
对于串行方式有
C1
G1
P1C0
其中
G1
A1B1
P
A1
B1
C2
G2
P2C1
其中
G2
A2B2
P
A2
B2
C3
G3
P3C2
其中
G3
A3B3
P
A3
B3
C4
G4
P4C3
其中
G4
A4B4
P
A4
B
对于并行进位方式:
C1=G1+P1C0
C2=G2+P2G1+P2P1C0
C3=G3+P3G2+P3P2G1+P3P2P1C0
C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0