3

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

4

2 回答 2

4

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

于 2012-06-20T11:15:25.217 回答
-1

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

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

编辑

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

基本上, ...

  • 第一位是数字的符号,也是尾数的符号
  • 接下来的几位是指数,可以是无符号的或使用 2-s 补码有符号的。
  • 其余位是尾数,减去隐含的前导“1”。
  • 零是一个特例...
于 2012-06-20T05:01:43.553 回答