第二章
1.(1)???35???100011)
[??35]原 10100011
[??35]补( 11011100 2
[??35]反 ??11011101 (2)
??
[127]原=01111111
??[127]反=01111111 [127]补=01111111
(3)???127???1111111)
[??127]原 11111111
[??127]补( 10000001 2
[??127]反 ??10000000
(4)???1???00000001??)
[??1]原 10000001 ??
[??1]补( 11111111 2
[??1]反 11111110 ??
2.[x]补 = a0. a1a2…a6
??
解法一、
(1) 若 a0 = 0, 则 x > 0, 也满足 x > -0.5
此时 a1→a6 可任意
??
2) 若 a0 = 1, 则 x <= 0, 要满足 x > -0.5, 需 a1 = 1 (
即 a0 = 1, a1 = 1, a2→a6 有一个不为 0
解法二、
-0.5 = -0.1(2) = -0.100000 = 1, 100000
(1) 若 x >= 0, 则 a0 = 0, a1→a6 任意即可;
(2) [x]补
= x = a0. a1a2…a6
(2) 若 x < 0, 则 x > -0.5
只需-x < 0.5, -x > 0
[x]补 = -x, [0.5]补 = 01000000 即[-x]补 < 01000000
a0 * a1 * a 2???a6?? 1?? 01000000
a0 * a1 * a 2???a6?? 00111111
a0 a1a 2???a6?? 11000000
即 a0a1 = 11, a2→a6 不全为 0 或至少有一个为 1(但不是“其余取 0”)
3.字长 32 位浮点数,阶码 8 位,用移码表示,尾数 23 位,用补码表示,基为 2
Es
E1→E8
Ms
M21
M0
(1) 最大的数的二进制表示
E = 11111111
Ms = 0, M = 11…1(全 1)
1 11111111 01111111111111111111111
(2) 最小的二进制数
E = 11111111
Ms = 1, M = 00…0(全 0) 1 11111111 1000000000000000000000
(3) 规格化范围
正最大
E = 11…1, M = 11…1, Ms = 0
8 个
22 个
7
即: 22 ??1 ??22
正最小
E = 00…0, M = 100…0, Ms = 0
8 个
21 个
7 ??1
负最大
E = 00…0, M = 011…1, Ms = 1
8 个 21 个
7???????1 ??22
) 负最小
E = 11…1, M = 00…0, Ms =1
8 个
22 个
即: 2??2 ? (1???? ( 2 ) ??1) 规格化所表示的范围用集合表示为:
7 ??1
7
, 22 ??1 ??22 7 7?????????????22
即: 2??2?? 2
(最接近 0 的负数)即:???2??2?? (2?? 2 [ 2??2?? 2 ? (1??? 2 ) ] [ 22???1?? (??1) ,???2??2?? (2??1?? 2 ) ]
4
计算机组成原理第五版习题答案
4.在 IEEE754 标准中,一个规格化的 32 位浮点数 x 的真值表示为:
X=
(??1)s ×(1.M)× 2 E???127 (1)27/64=0.011011=1.1011× 2 ??2
E= -2+127 = 125= 0111 1101 S= 0 M= 1011 0000 0000 0000 0000 000
最后表示为:0 01111101 10110000000000000000000 (2)-27/64=-0.011011=1.1011× 2 ??2
E= -2+127 = 125= 0111 1101 S= 1 M= 1011 0000 0000 0000 0000 000
最后表示为:1 01111101 10110000000000000000000 5.(1)用变形补码进行计算:
[x]补=00 11011 [y]补=00 00011 [x]补 =
00 11011 [y]补 = + 00 00011 [x+y]补= 00 11110
结果没有溢出,x+y=11110
(2) [x]补=00 11011 [y]补=11 01011
[x]补 = 00 11011 [y]补 = + 11 01011 [x+y]补=
00 00110
结果没有溢出,x+y=00110
(3)[x]补=11 01010 [y]补=11 111111
[x]补 =
00 01010 [y]补 = + 00 11111 [x+y]补=
11 01001
结果没有溢出,x+y=?10111
6.[x-y]补=[x]补+[-y]补 (1)[x]补=00 11011
[-y]补=00 11111
[x]补 = 00 11011
[-y]补 = + 00 11111 [x-y]补= 01 11010 结果有正溢出,x?y=11010
(2)[x]补=00 10111
[x]补 = 00 10111
[-y]补=11 00101
[-y]补 = + 11 00101 [x-y]补= 11 11100 结果没有溢出,x?y=?00100
5