负浮点数表示为负整数



我知道今天的计算机如何存储负整数,大多数计算机都使用2'补码。我只是想知道 2' 补码方法也适用于浮点等各种数字?

不,浮点数不使用 2 个补码表示,但由于所有二进制实现都有一个符号位,因此可以保证对于所有值(符号没有意义的 NaN 除外),可以测试浮点数的整数表示与<0.这是因为如果设置了第一位,则 2 补码中的整数也是负数。但有效数和指数都没有使用 2 补码表示。

有不同种类的浮点数表示,但我记得大多数类似于符号位(1 = 正),然后是 2s 补数指数值,然后是 2s 补码尾数值,当指数为零时,最高有效位位于 1s 位置。

请注意,在这种安排中,您可以使用整数比较来表示更大/更小。

编辑

以上显然是基于错误的内存,但在 http://en.wikipedia.org/wiki/Binary32 有一个很好的解释。

基本上。。。

  • 第一位是数字的符号,也是尾数的符号
  • 接下来的几个位是指数,可以是无符号的,也可以是使用 2-s 补码签名的。
  • 其余位是尾数,减去隐式前导"1"。
  • 零是一个特例...

最新更新