浮点数的表示方法

问题描述 投票:0回答:1

我想了解二进制格式的数字表示是什么,其中最大数字是1,而二进制格式(宽度为8位)是0_1111111。最小数字为 -1,二进制为 1_0000000。 显然,最高位是数字的符号,7个1表示数字1是最大的,7个0表示数字-1是最小的。 最有可能的是,这是一个标准化的浮点表示,但我无法根据标准化规则调整数字。例如,在这种情况下我应该如何表示数字 0.02?谢谢。

math floating-point binary
1个回答
0
投票

浮点表示基于存储指数,然后是分数,因此根据您的描述,我们有:

价值 位模式
-1 1.0000000
1 0.1111111

这意味着我们可以将指数编码为符号位,为分数留下 7 位。由于我们有 7 位,因此每个位都是 1/127th 步长(不是 128:b01111111 需要是 127/127 才能得到十进制 1),并且我们有两种可能的编码方案:

  1. 分数始终是可加的,因此 b10000001 表示“-1 + 1/127”,或者,
  2. 分数是减法,因此 b10000001 表示“0 - 1/127”

无论采用哪种方案,0.02 都可以是 b00000011 或 b00000010,因为 3/127 和 2/127 都舍入为 0.02(真正强调了为什么使用低保真浮点数是一个坏主意)。

更有趣的问题是 -0.02 是什么,为此我们需要知道至少一个不是 -1 的负数。

© www.soinside.com 2019 - 2024. All rights reserved.