计算机中,浮点数的标准格式
32位:| s(1) | E(8) |M(23) |
64位:| s(1) | E(11) |M(52) |
s:尾数符号,1或者0
M:尾数,纯小数表示,小数点放在尾数域的最前面,采用原码表示。
E:阶码,采用移码表示。
阶符采用隐含方式,即采用移码方法来表示正负指数。
一个规格化的32位的浮点数的真值为:
x =(-1)s *(1.M) * 2^(E-127) e=E–127
一个规格化的64位的浮点数的真值为:
x =(-1)s *(1.M) * 2^(E-1023) e =E– 127
这个E为机器数(10000010,E=130)
例:
若浮点数
x
的二进制存储格式为
(41360000)
16
,求其
32
位浮点
数的十进制值。
解:
0
100,0001,
0011,0110,0000,0000,0000,0000
数符:0
阶码:1000,0010
尾数:011,0110,0000,0000,0000,0000
指数
e
=阶码-
127
=
10000010
-
01111111
=
00000011=(3)
包括隐藏位 1 的尾数:
包括隐藏位 1 的尾数:
1
.
M
=
1
.011 0110 0000 0000 0000 0000
=
1.011011
于是有
x
=
(
-
1)
s
×
1.
M
×
2^e
=
(1.
011011
)
×
2^
3
=
1011.011
=
(11.375)
例
:将十进制数-0.75表示成单精度的IEEE 754标准代码。
解
:-0.75 = -3/4 = -0.11 = -1.1×2^-1
=(-1)^1×(1 + 0.1000 0000 0000 0000 0000 000)×2^-1
=(-1)^
1
×(1 +
0.1000 0000 0000 0000 0000 000
)×2^(126-127)
s=
1
,E=126 = 01111110,M=
1000
…
000
。
1
011,1111,0
100,0000,0000,0000,0000,0000
关于浮点数的加减,下次在继续说。