“excess-3”指数格式(预期为 3 位指数)给出的偏差为2^(k - 1) - 1
,(3)
用于(k = 3)
指数位。
这表明您可以表示范围内的指数:{-3, 4}
. 也就是说,给定 3 位指数(E)
模式:{000, 001, .., 111} = {0, 7}
,(e)
通过减去偏差找到指数。正如E = 0
暗示的那样,情况并非如此e = 1 - bias
:为次正规表示保留的特殊值。
用于E
表示指数的存储位,并e
表示E - bias
,我们不断乘以(0.03125)
2 直到我们有一个前导二进制1.xxxx
形式,其中该前导1.
位隐含在归一化浮点数中。在这种情况下,给出的值(方便地)是(2)的幂:0.03125 = 1/32 = 2^(-5)
1.0000 x 2^(-5)
: 不能存储(-5)
指数。
由于隐式前导1.x
会给出 的最小值1 x 2^-2 = 0.25
,因此我们将无法使用规范化表示 - 正如我们所看到的:
0.1000 x 2^(-4)
: 不能存储(-4)
指数。
0.0100 x 2^(-3)
: 不能存储(-3)
指数。
规范化的数字意味着一个前导位,例如 ,1.xxxx
它实际上并没有被存储。右侧的值被解释为1/2
、1/4
、1/8
、1/16
等,就像十进制系统将连续数字解释为10
、100
、1000
等的分数一样。
这将我们带到了非规范化或“次规范”值的编码。E = 0
or是一个特殊值,e = (-2)
暗示前导位是0
,它为我们提供了有效位:0.xxxx
指数仍被解释为e = (-2)
-> 2^e = 1/4
。因此,尾数:[0.]0010
给我们:(1/8) * 2^e = 1/32 = 0.03125
。
这给出了(非规范化的)8 位浮点表示:[0][000][0010]或:(00000010)
问:你能显示你之前的答案:(01000001)给出的值:2.125吗?