目录
- 第六章
- 1.最少用几位二进制数即可表示任一五位长的十进制正整数?
- 2.已知 X = 0. a 1 a 2 a 3 a 4 a 5 a 6 ( a i 为 0 或 1 ) X=0.a_1a_2a_3a_4a_5a_6(a_i为0或1) X=0.a1a2a3a4a5a6(ai为0或1),讨论下列几种情况时 a i a_i ai各取何值。
- 3.设x为整数, [ x ] 补 = 1 , x ₁ x ₂ x 3 x 4 x 5 [x]_补=1,x_₁x_₂x_3x_4x_5 [x]补=1,x₁x₂x3x4x5,若要求 x < − 16 x<-16 x<−16,试问 x 1 ∽ x 5 x_1\backsim x_5 x1∽x5应取何值?
- 4.设机器数字长为8位(含1位符号位在内),写出对应下列各真值的原码、补码和反码。
- 5.已知 [ x ] 补 [x]_补 [x]补,求 [ x ] 原 [x]_原 [x]原和 x x x。
- 6.设机器数字长为8位(含1位符号位在内),分整数和小数两种情况讨论真值x为何值时, [ x ] 补 = [ x ] 原 [x]_补=[x]_原 [x]补=[x]原成立。
- 7.设 x x x为真值, x ∗ x^* x∗为绝对值,说明 [ − x ∗ ] 补 = [ − x ] 补 [-x^*]_补=[-x]_补 [−x∗]补=[−x]补能否成立。
- 8.讨论 [ x ] 补 > [ y ] 补 [x]_补>[y]_补 [x]补>[y]补,是否有 x > y x>y x>y?
- 9.当十六进制数9B和FF分别表示为原码、补码、反码、移码和无符号数时,所对应的十进制数各为多少(设机器数采用一位符号位)?
- 10.在整数定点机中,设机器数采用一位符号位,写出 ± 0 \pm0 ±0的原码、补码、反码和移码,得出什么结论?
- 11.已知机器数字长为4位(其中1位为符号位),写出整数定点机和小数定点机中原码、补码和反码的全部形式,并注明其对应的十进制真值。
- 12.设浮点数格式为:阶码5位(含1位阶符),尾数11位(含1位数符)。写出51/128、-27/1024、7.375、-86.5所对应的机器数。要求如下:
- 13.浮点数格式同上题,当阶码基值分别取2和16时,
- 14.设浮点数字长为32位,欲表示 ± 6 \pm 6 ±6万间的十进制数,在保证数的最大精度条件下,除阶符、数符各取一位外,阶码和尾数各取几位?按这样分配,该浮点数溢出的条件是什么?
- 15.什么是机器零?若要求全0表示机器零,浮点数的阶码和尾数应采取什么机器数形式?
- 16.设机器数字长为16位,写出下列各种情况下它能表示的数的范围。设机器数采用一位符号位,答案均用十进制表示。
第六章
1.最少用几位二进制数即可表示任一五位长的十进制正整数?
答:
五位长的十进制正整数中,最大的数99999满足条件:
2
16
(
=
65536
)
<
99999
<
2
17
(
=
131072
)
2^{16}(=65536)<99999<2^{17}(=131072)
216(=65536)<99999<217(=131072),故最少用17位二进制数即可表示任一五位长的十进制正整数。
2.已知 X = 0. a 1 a 2 a 3 a 4 a 5 a 6 ( a i 为 0 或 1 ) X=0.a_1a_2a_3a_4a_5a_6(a_i为0或1) X=0.a1a2a3a4a5a6(ai为0或1),讨论下列几种情况时 a i a_i ai各取何值。
(
1
)
X
>
1
2
;
(
2
)
X
≥
1
8
;
(
3
)
1
4
≥
X
>
1
16
(1)X>\frac{1}{2}; (2) X\geq \frac{1}{8}; (3)\frac{1}{4}\geq X>\frac{1}{16}
(1)X>21;(2)X≥81;(3)41≥X>161
答:
(
1
)
若要
X
>
1
/
2
,只要
a
1
=
1
,
a
2
∽
a
6
不全为
0
即可
(
a
2
o
r
a
3
o
r
a
4
o
r
a
5
o
r
a
6
=
1
)
;
(
2
)
若要
X
≥
1
/
8
,只要
a
1
∽
a
3
不全为
0
即可
(
a
1
o
r
a
2
o
r
a
3
=
1
)
,
a
4
∽
a
6
可任取
0
或
1
;
(
3
)
若要
1
/
4
≥
X
>
1
/
16
,只要
a
1
=
0
,
a
2
可任取
0
或
1
;
当
a
2
=
0
时,若
a
3
=
0
,则必须
a
4
=
1
,且
a
5
、
a
6
不全为
0
(
a
5
o
r
a
6
=
1
)
;
若
a
3
=
1
,则
a
4
∽
a
6
可任取
0
或
1
;
当
a
2
=
1
时,
a
3
∽
a
6
取
0
。
(1)若要X>1/2,只要a_1=1,a_2\backsim a_6不全为0即可(a_2 \ or \ a_3 \ or \ a_4 \ or \ a_5 \ or \ a_6=1);\\ (2)若要X\geq 1/8,只要a_1\backsim a_3不全为0即可(a_1 \ or \ a_2 \ or \ a_3=1),a_4\backsim a_6可任取0或1;\\ (3)若要1/4\geq X>1/16,只要a_1=0,a_2可任取0或1;\\ 当a_2=0时,若a_3=0,则必须a_4=1,且a_5、a_6不全为0(a_5\ or\ a_6=1);若a_3=1,则a_4\backsim a_6可任取0或1;\\ 当a_2=1时,a_3\backsim a_6取0。
(1)若要X>1/2,只要a1=1,a2∽a6不全为0即可(a2 or a3 or a4 or a5 or a6=1);(2)若要X≥1/8,只要a1∽a3不全为0即可(a1 or a2 or a3=1),a4∽a6可任取0或1;(3)若要1/4≥X>1/16,只要a1=0,a2可任取0或1;当a2=0时,若a3=0,则必须a4=1,且a5、a6不全为0(a5 or a6=1);若a3=1,则a4∽a6可任取0或1;当a2=1时,a3∽a6取0。
3.设x为整数, [ x ] 补 = 1 , x ₁ x ₂ x 3 x 4 x 5 [x]_补=1,x_₁x_₂x_3x_4x_5 [x]补=1,x₁x₂x3x4x5,若要求 x < − 16 x<-16 x<−16,试问 x 1 ∽ x 5 x_1\backsim x_5 x1∽x5应取何值?
答:
若要
x
<
−
16
,需
x
1
=
0
,
x
2
∽
x
5
任意。
若要x<-16,需x_1=0,x_2\backsim x_5任意。
若要x<−16,需x1=0,x2∽x5任意。
(注:负数绝对值大的反而小。)
4.设机器数字长为8位(含1位符号位在内),写出对应下列各真值的原码、补码和反码。
−
13
64
,
29
128
,
100
,
−
87
-\frac{13}{64},\frac{29}{128},100,-87
−6413,12829,100,−87
答:
真值与不同机器码对应关系如下:
真值(十进制) | 真值(二进制) | 原码 | 反码 | 补码 |
---|---|---|---|---|
-13/64 | -0.00 1101 | 1.001 1010 | 1.110 0101 | 1.110 0110 |
29/128 | 0.001 1101 | 0.001 1101 | 0.001 1101 | 0.001 1101 |
100 | 110 0100 | 0,110 0100 | 0,110 0100 | 0,110 0100 |
-87 | -101 0111 | 1,101 0111 | 1,010 1000 | 1,010 1001 |
5.已知 [ x ] 补 [x]_补 [x]补,求 [ x ] 原 [x]_原 [x]原和 x x x。
[
x
]
补
=
1.1100
;
[
x
]
补
=
1.1001
;
[
x
]
补
=
0.1110
;
[
x
]
补
=
1.0000
;
[x]_补=1.1100;[x]_补=1.1001;[x]_补=0.1110;[x]_补=1.0000;
[x]补=1.1100;[x]补=1.1001;[x]补=0.1110;[x]补=1.0000;
[
x
]
补
=
1
,
0101
;
[
x
]
补
=
1
,
1100
;
[
x
]
补
=
0
,
0111
;
[
x
]
补
=
1
,
0000
。
[x]_补=1,0101;[x]_补=1,1100;[x]_补=0,0111;[x]_补=1,0000。
[x]补=1,0101;[x]补=1,1100;[x]补=0,0111;[x]补=1,0000。
答:
[
x
]
补
[x]_补
[x]补、
[
x
]
原
[x]_原
[x]原和
x
x
x的对应关系如下:
[ x ] 补 [x]_补 [x]补 | [ x ] 原 [x]_原 [x]原 | x x x(二进制) | x x x(十进制) |
---|---|---|---|
1.1100 | 1.0100 | -0.0100 | -1/4 |
1.1001 | 1.0111 | -0.0111 | -7/16 |
0.1110 | 0.1110 | +0.1110 | +7/8 |
1.0000 | 无 | -1.0000 | -1 |
1,0101 | 1,1011 | -1011 | -11 |
1,1100 | 1,0100 | -0100 | -4 |
0,0111 | 0,0111 | +0111 | +7 |
1,0000 | 无 | -10000 | -16 |
6.设机器数字长为8位(含1位符号位在内),分整数和小数两种情况讨论真值x为何值时, [ x ] 补 = [ x ] 原 [x]_补=[x]_原 [x]补=[x]原成立。
答:
当
x
为小数时,
若
x
≥
0
,则
[
x
]
补
=
[
x
]
原
成立;
当
x
<
0
,则当
x
=
−
1
/
2
时,
[
x
]
补
=
[
x
]
原
成立。
当
x
为整数时,
若
x
≥
0
,则
[
x
]
补
=
[
x
]
原
成立;
当
x
<
0
,则当
x
=
−
64
时,
[
x
]
补
=
[
x
]
原
成立。
当x为小数时,\\ 若x\geq 0,则[x]_补=[x]_原成立;\\ 当x<0,则当x=-1/2时,[x]_补=[x]_原成立。\\ 当x为整数时,\\ 若x\geq 0,则[x]_补=[x]_原成立;\\ 当x<0,则当x=-64时,[x]_补=[x]_原成立。
当x为小数时,若x≥0,则[x]补=[x]原成立;当x<0,则当x=−1/2时,[x]补=[x]原成立。当x为整数时,若x≥0,则[x]补=[x]原成立;当x<0,则当x=−64时,[x]补=[x]原成立。
7.设 x x x为真值, x ∗ x^* x∗为绝对值,说明 [ − x ∗ ] 补 = [ − x ] 补 [-x^*]_补=[-x]_补 [−x∗]补=[−x]补能否成立。
答:
当
x
为真值,
x
∗
为绝对值时,
[
−
x
∗
]
补
=
[
−
x
]
补
不能成立。
当x为真值,x^*为绝对值时,[-x^*]_补=[-x]_补不能成立。
当x为真值,x∗为绝对值时,[−x∗]补=[−x]补不能成立。
[
−
x
∗
]
补
=
[
−
x
]
补
的结论只有在
x
>
0
时成立。
[-x^*]_补=[-x]_补的结论只有在x>0时成立。
[−x∗]补=[−x]补的结论只有在x>0时成立。
当
x
<
0
时,由于
[
−
x
∗
]
补
是一个负值,而
[
−
x
]
补
是一个正值,因此此时
[
−
x
∗
]
补
不等于
[
−
x
]
补
。
当x<0时,由于[-x^*]_补是一个负值,而[-x]_补是一个正值,因此此时[-x^*]_补不等于[-x]_补。
当x<0时,由于[−x∗]补是一个负值,而[−x]补是一个正值,因此此时[−x∗]补不等于[−x]补。
8.讨论 [ x ] 补 > [ y ] 补 [x]_补>[y]_补 [x]补>[y]补,是否有 x > y x>y x>y?
答:
若
[
x
]
补
>
[
y
]
补
,不一定有
x
>
y
。
若[x]_补>[y]_补,不一定有x>y 。
若[x]补>[y]补,不一定有x>y。
[
x
]
补
>
[
y
]
补
时,
x
>
y
的结论只在
x
>
0
、
y
>
0
,以及
x
<
0
、
y
<
0
时成立。
[x]_补>[y]_补时,x>y的结论只在x>0、y>0,以及x<0、y<0时成立。
[x]补>[y]补时,x>y的结论只在x>0、y>0,以及x<0、y<0时成立。
当时
x
>
0
、
y
<
0
,有
x
>
y
,但由于负数补码的符号位为
1
,则
[
x
]
补
<
[
y
]
补
。
当时x>0、y<0,有x>y,但由于负数补码的符号位为1,则[x]_补<[y]_补。
当时x>0、y<0,有x>y,但由于负数补码的符号位为1,则[x]补<[y]补。
同样,当时
x
<
0
、
y
>
0
,有
x
<
y
,但
[
x
]
补
>
[
y
]
补
。
同样,当时x<0、y>0,有x<y,但[x]_补>[y]_补。
同样,当时x<0、y>0,有x<y,但[x]补>[y]补。
注意:
(1)绝对值小的负数其值反而大,且负数的绝对值越小,其补码值越大。因此,当x<0、y<0时,若
[
x
]
补
>
[
y
]
补
[x]_补>[y]_补
[x]补>[y]补,必有x>y 。
(2)补码的符号位和数值位为一体,不可分开分析。
(3)完整的答案应分四种情况分析,但也可通过充分分析一种不成立的情况获得正确答案。
(4)由于补码0的符号位为0,因此x、y=0可归纳到>0的一类情况讨论。
9.当十六进制数9B和FF分别表示为原码、补码、反码、移码和无符号数时,所对应的十进制数各为多少(设机器数采用一位符号位)?
答:
真值和机器数的对应关系如下:
十六进制 | 真值 | 无符号数 | 原码 | 反码 | 补码 | 移码 |
---|---|---|---|---|---|---|
9BH | 二进制 | 1001 1011 | 1,001 1011 | 1,110 0100 | 1,110 0101 | 0,001 1011 |
9BH | 十进制 | 155 | -27 | -100 | -101 | 27 |
FFH | 二进制 | 1111 1111 | 1,111 1111 | 1,000 0000 | 1,000 0001 | 0,111 1111 |
FFH | 十进制 | 255 | -127 | -0 | -1 | 127 |
注意:
(1)9BH、FFH为机器数,本身含符号位。
(2)移码符号位与原、补、反码相反,数值同补码。
10.在整数定点机中,设机器数采用一位符号位,写出 ± 0 \pm0 ±0的原码、补码、反码和移码,得出什么结论?
答:
0的机器数形式如下:
真值 | 原码 | 补码 | 反码 | 移码 |
---|---|---|---|---|
+0 | 0,00…0 | 0,00…0 | 0,00…0 | 1,00…0 |
-0 | 1,00…0 | 0,00…0 | 1,11…1 | 1,00…0 |
结论:补、移码0的表示不唯一,原、反码不唯一。
11.已知机器数字长为4位(其中1位为符号位),写出整数定点机和小数定点机中原码、补码和反码的全部形式,并注明其对应的十进制真值。
答:
机器数与对应的真是形式如下:
真值(二进制) | 真值(十进制) | 原码 | 反码 | 补码 | |
---|---|---|---|---|---|
整数 | +111 | +7 | 0,111 | 0,111 | 0,111 |
整数 | +110 | +6 | 0,110 | 0,110 | 0,110 |
整数 | +101 | +5 | 0,101 | 0,101 | 0,101 |
整数 | +100 | +4 | 0,100 | 0,100 | 0,100 |
整数 | +011 | +3 | 0,011 | 0,011 | 0,011 |
整数 | +010 | +2 | 0,010 | 0,010 | 0,010 |
整数 | +001 | +1 | 0,001 | 0,001 | 0,001 |
整数 | +000 | +0 | 0,000 | 0,000 | 0,000 |
整数 | -1000 | -8 | 无 | 无 | 1,000 |
整数 | -111 | -7 | 1,111 | 1,000 | 1,001 |
整数 | -110 | -6 | 1,110 | 1,001 | 1,010 |
整数 | -101 | -5 | 1,101 | 1,010 | 1,011 |
整数 | -100 | -4 | 1,100 | 1,011 | 1,100 |
整数 | -011 | -3 | 1,011 | 1,100 | 1,101 |
整数 | -010 | -2 | 1,010 | 1,101 | 1,110 |
整数 | -001 | -1 | 1,001 | 1,110 | 1,111 |
整数 | -000 | -0 | 1,000 | 1,111 | 0,000 |
小数 | +0.111 | +7/8 | 0.111 | 0.111 | 0.111 |
小数 | +0.110 | +6/8 | 0.110 | 0.110 | 0.110 |
小数 | +0.101 | +5/8 | 0.101 | 0.101 | 0.101 |
小数 | +0.100 | +4/8 | 0.100 | 0.100 | 0.100 |
小数 | +0.011 | +3/8 | 0.011 | 0.011 | 0.011 |
小数 | +0.010 | +2/8 | 0.010 | 0.010 | 0.010 |
小数 | +0.001 | +1/8 | 0.001 | 0.001 | 0.001 |
小数 | +0.000 | +0 | 0.000 | 0.000 | 0.000 |
小数 | -1.000 | -1 | 无 | 无 | 1.000 |
小数 | -0.111 | -7/8 | 1.111 | 1.000 | 1.001 |
小数 | -0.110 | -6/8 | 1.110 | 1.001 | 1.010 |
小数 | -0.101 | -5/8 | 1.101 | 1.010 | 1.011 |
小数 | -0.100 | -4/8 | 1.100 | 1.011 | 1.100 |
小数 | -0.011 | -3/8 | 1.011 | 1.100 | 1.101 |
小数 | -0.010 | -2/8 | 1.010 | 1.101 | 1.110 |
小数 | -0.001 | -1/8 | 1.001 | 1.110 | 1.111 |
小数 | -0.000 | -0 | 1.000 | 1.111 | 0.000 |
12.设浮点数格式为:阶码5位(含1位阶符),尾数11位(含1位数符)。写出51/128、-27/1024、7.375、-86.5所对应的机器数。要求如下:
(1)阶码和尾数均为原码;
(2)阶码和尾数均为补码;
(3)阶码为移码,尾数为补码。
答:
据题意画出该浮点数的格式:
注意:1)正数补码不“取反+1” 。 2)机器数末位为0的不能省。
将十进制数转换为二进制:
x
1
=
51
/
128
=
(
0.011
0011
)
2
=
2
−
1
×
(
0.11
0011
)
2
x
2
=
−
27
/
1027
=
(
−
0.00
0001
1011
)
2
=
2
−
5
×
(
−
0.1
1011
)
2
x
3
=
7.375
=
(
111.011
)
2
=
2
3
×
(
0.11
1011
)
2
x
4
=
−
86.5
=
(
−
1010
110.1
)
2
=
2
7
×
(
−
0.1010
1101
)
2
x_1=51/128=(0.011\ 0011)_2=2^{-1}\times(0.11\ 0011)_2 \\ x_2=-27/1027=(-0.00\ 0001\ 1011)_2=2^{-5}\times(-0.1\ 1011)_2 \\ x_3=7.375=(111.011)_2=2^3\times(0.11\ 1011)_2 \\ x_4=-86.5=(-1010\ 110.1)_2=2^7\times (-0.1010\ 1101)_2
x1=51/128=(0.011 0011)2=2−1×(0.11 0011)2x2=−27/1027=(−0.00 0001 1011)2=2−5×(−0.1 1011)2x3=7.375=(111.011)2=23×(0.11 1011)2x4=−86.5=(−1010 110.1)2=27×(−0.1010 1101)2
则以上各数的浮点规格化数为:
(1)
[
x
1
]
浮
=
1
,
0001
;
0.11
0011
0000
[x_1]_浮=1,0001;0.11\ 0 011\ 000 0
[x1]浮=1,0001;0.11 0011 0000
[
x
2
]
浮
=
1
,
0101
;
1.11
0110
0000
[x_2]_浮=1,0101;1.11\ 0 110\ 000 0
[x2]浮=1,0101;1.11 0110 0000
[
x
3
]
浮
=
0
,
0011
;
0.11
1011
0000
[x_3]_浮=0,0011;0.11\ 1 011\ 000 0
[x3]浮=0,0011;0.11 1011 0000
[
x
4
]
浮
=
0
,
0111
;
1.10
1011
0100
[x_4]_浮=0,0111;1.10\ 1 011\ 010 0
[x4]浮=0,0111;1.10 1011 0100
(2)
[
x
1
]
浮
=
1
,
1111
;
0.11
0011
0000
[x_1]_浮=1,1111;0.11\ 0 011\ 000 0
[x1]浮=1,1111;0.11 0011 0000
[
x
2
]
浮
=
1
,
1011
;
1.00
1010
0000
[x_2]_浮=1,1011;1.00\ 1 010\ 000 0
[x2]浮=1,1011;1.00 1010 0000
[
x
3
]
浮
=
0
,
0011
;
0.11
1011
0000
[x_3]_浮=0,0011;0.11\ 1 011\ 000 0
[x3]浮=0,0011;0.11 1011 0000
[
x
4
]
浮
=
0
,
0111
;
1.01
0100
1100
[x_4]_浮=0,0111;1.01\ 0 100\ 110 0
[x4]浮=0,0111;1.01 0100 1100
(3)
[
x
1
]
浮
=
0
,
1111
;
0.11
0011
0000
[x_1]_浮=0,1111;0.11\ 0 011\ 000 0
[x1]浮=0,1111;0.11 0011 0000
[
x
2
]
浮
=
0
,
1011
;
1.00
1010
0000
[x_2]_浮=0,1011;1.00\ 1 010\ 000 0
[x2]浮=0,1011;1.00 1010 0000
[
x
3
]
浮
=
1
,
0011
;
0.11
1011
0000
[x_3]_浮=1,0011;0.11\ 1 011\ 000 0
[x3]浮=1,0011;0.11 1011 0000
[
x
4
]
浮
=
1
,
0111
;
1.01
0100
1100
[x_4]_浮=1,0111;1.01\ 0 100\ 110 0
[x4]浮=1,0111;1.01 0100 1100
13.浮点数格式同上题,当阶码基值分别取2和16时,
(1)说明2和16在浮点数中如何表示。
(2)基值不同对浮点数什么有影响?
(3)当阶码和尾数均用补码表示,且尾数采用规格化形式,给出两种情况下所能表示的最大正数和非零最小正数真值。
答:
(1)阶码基值不论取何值,在浮点数中均为隐含表示,即:2和16不出现在浮点格式中,仅为人为的约定。
(2)当基值不同时,对数的表示范围和精度都有影响。即:在浮点格式不变的情况下,基越大,可表示的浮点数范围越大,但精度越下降。
(3)r=2时,最大正数的浮点格式为:0,1111;0.111 111 111 1
其真值为:
N
+
m
a
x
=
2
15
×
(
1
−
2
−
10
)
N_{+max}=2^{15}\times(1-2^{-10})
N+max=215×(1−2−10)
非零最小规格化正数浮点格式为:1,0000;0.100 000 000 0
其真值为:
N
+
m
i
n
=
2
−
16
×
2
−
1
=
2
−
17
N_{+min}=2^{-16}\times 2^{-1}=2^{-17}
N+min=2−16×2−1=2−17
r=16时,最大正数的浮点格式为:0,1111;0.1111 1111 11
其真值为:
N
+
m
a
x
=
1
6
15
×
(
1
−
2
−
10
)
N_{+max}=16^{15}\times(1-2^{-10})
N+max=1615×(1−2−10)
非零最小规格化正数浮点格式为:1,0000;0.0001 0000 00
其真值为:
N
+
m
i
n
=
1
6
−
16
×
1
6
−
1
=
1
6
−
17
N_{+min}=16^{-16}\times 16^{-1}=16^{-17}
N+min=16−16×16−1=16−17
14.设浮点数字长为32位,欲表示 ± 6 \pm 6 ±6万间的十进制数,在保证数的最大精度条件下,除阶符、数符各取一位外,阶码和尾数各取几位?按这样分配,该浮点数溢出的条件是什么?
答:
若要保证数的最大精度,应取阶的基=2。
若要表示
±
6
\pm 6
±6万间的十进制数,由于
32768
(
2
15
)
<
6
万
<
65536
(
2
16
)
32768(2^{15})<6万<65536(2^{16})
32768(215)<6万<65536(216),则:阶码除阶符外还应取5位(向上取2的幂)。
故:尾数位数=32-1-1-5=25位
按此格式,该浮点数上溢的条件为:阶码
≥
32
\geq 32
≥32该浮点数格式如下:
15.什么是机器零?若要求全0表示机器零,浮点数的阶码和尾数应采取什么机器数形式?
答:
机器零指机器数所表示的零的形式,它与真值零的区别是:机器零在数轴上表示为“0”点及其附近的一段区域,即在计算机中小到机器数的精度达不到的数均视为“机器零”,而真零对应数轴上的一点(0点)。若要求用“全0”表示浮点机器零,则浮点数的阶码应用移码、尾数用补码表示(此时阶码为最小阶、尾数为零,而移码的最小码值正好为“0”,补码的零的形式也为“0”,拼起来正好为一串0的形式)。
16.设机器数字长为16位,写出下列各种情况下它能表示的数的范围。设机器数采用一位符号位,答案均用十进制表示。
(1)无符号数;
(2)原码表示的定点小数;
(3)补码表示的定点小数;
(4)补码表示的定点整数;
(5)原码表示的定点整数;
(6)浮点数的格式为:阶码6位(含1位阶符),尾数10位(含1位数符)。分别写出正数和负数的表示范围;
(注:加条件:阶原尾原非规格化数。)
(7)浮点数格式同(6),机器数采用补码规格化形式,分别写出其对应的正数和负数的真值范围。
答:
各种表示方法数据范围如下:
(1)无符号整数:
0
∽
2
16
−
1
0\backsim 2^{16}- 1
0∽216−1,即:
0
∽
65535
0\backsim 65535
0∽65535;
(2)原码定点小数: − ( 1 − 2 − 15 ) ∽ 1 − 2 − 15 -(1-2^{-15})\backsim 1-2^{-15} −(1−2−15)∽1−2−15
(3)补码定点小数: − 1 ∽ 1 − 2 − 15 -1\backsim 1-2^{-15} −1∽1−2−15
(4)补码定点整数: − 2 15 ∽ 2 15 − 1 -2^{15}\backsim 2^{15}-1 −215∽215−1,即: − 32767 ∽ 32768 -32767\backsim 32768 −32767∽32768;
(5)原码定点整数: − ( 2 15 − 1 ) ∽ 2 15 − 1 -(2^{15}-1)\backsim 2^{15}-1 −(215−1)∽215−1,即: − 32767 ∽ 32767 -32767\backsim 32767 −32767∽32767;
(6)据题意画出该浮点数格式:
由于题意中未指定该浮点数所采用的码制,则不同的假设前提会导致不同的答案,示意如下:
1)当采用阶原尾原非规格化数时,最大正数=0,11 111;0.111 111 111最小正数=1,11 111;0.000 000 001
则正数表示范围为:
2
31
×
(
1
−
2
−
9
)
∽
2
−
31
×
2
−
9
2^{31}\times (1-2^{-9})\backsim 2^{-31}\times 2^{-9}
231×(1−2−9)∽2−31×2−9
最大负数=1,11 111;1.000 000 001
最小负数=0,11 111; 1.111 111 111
则负数表示范围为:
2
−
31
×
(
−
2
−
9
)
∽
−
2
31
×
(
1
−
2
−
9
)
2^{-31}\times (-2^{-9})\backsim -2^{31}\times(1-2^{-9})
2−31×(−2−9)∽−231×(1−2−9)
2)当采用阶移尾原非规格化数时,
正数表示范围为:
2
31
×
(
1
−
2
−
9
)
∽
2
−
32
×
2
−
9
2^{31}\times(1-2^{-9})\backsim 2^{-32}\times 2^{-9}
231×(1−2−9)∽2−32×2−9
负数表示范围为:
2
−
32
×
(
−
2
−
9
)
∽
−
2
31
×
(
1
−
2
−
9
)
2^{-32}\times (-2^{-9})\backsim -2^{31}\times(1-2^{-9})
2−32×(−2−9)∽−231×(1−2−9)
注:零视为中性数,不在此范围内。
(7)当机器数采用补码规格化形式时,若不考虑隐藏位,则
最大正数=0,11 111;0.111 111 111
最小正数=1,00 000;0.100 000 000
其对应的正数真值范围为:
2
31
×
(
1
−
2
−
9
)
∽
2
−
32
×
2
−
1
2^{31}\times(1-2^{-9}) \backsim 2^{-32}\times 2^{-1}
231×(1−2−9)∽2−32×2−1
最大负数=1,00 000;1.011 111 111
最小负数=0,11 111;1.000 000 000
其对应的负数真值范围为:
−
2
−
32
×
(
2
−
1
+
2
−
9
)
∽
2
31
×
(
−
1
)
-2^{-32}\times(2^{-1}+2^{-9})\backsim 2^{31}\times (-1)
−2−32×(2−1+2−9)∽231×(−1)
注意:
1)应写出可表示范围的上、下限精确值(用
≥
或
≤
\geq 或\leq
≥或≤,不要用>或<)。
2)应用十进制2的幂形式分阶、尾两部分表示,这样可反映出浮点数的格式特点。括号不要乘开,不要用十进制小数表示,不直观、不精确且无意义。
3)原码正、负域对称,补码正、负域不对称,浮点数阶、尾也如此。特别要注意浮点负数补码规格化范围。(满足条件:
数符
⊕
M
S
B
位
=
1
数符\oplus MSB位=1
数符⊕MSB位=1)