0

IEEE754の倍精度について混乱しています
の2つの質問を検討 します。

2. 2 54 +2 が表現できないのは なぜですか?

手伝って頂けますか ?IEEE754の動作方法は理解 しいますが、表示に問題があります。

4

1 に答える 1

3

IEEE 754 double の仮数 (または仮数) には 53 ビットがあります。−2 54は次のように正確に表すことができます。

mantissa: 1.00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00 (bin)
exponent: 54
sign:     1

ここで、符号ビットを少し忘れてみましょう。この説明には関係ありません。+2 54があるとします。

この指数では、仮数の最下位 -- 右端 --の値は 2 -52 * 2 54 = 4 になります。したがって、2 54 + 4 は次のようにエンコードされます。

mantissa: 1.00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 01 (bin)
exponent: 54                                                             ^
                                                                lowest bit

しかし、その間に価値はありません。したがって、 2 54 + 2をエンコードすることはできません

−2 54 + 2ではなぜこれが問題にならないのでしょうか? これは−(2 54 − 2)と同じで、次のように表されるためです。

mantissa: 1.11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 11
exponent: 53 !!
sign:     1

指数 53 は、2 -52 * 2 53 = 2 のステップがあることを意味します。0 に向かう次の値は次のようになります。

mantissa: 1.11111 11111 11111 11111 11111 11111 11111 11111 11111 11111 10
exponent: 53
sign:     1

これは −2 54 + 4、または実際には −(2 54 − 4) です。そして、-2 53に到達するまで、このように続けることができます。

于 2016-09-03T07:59:10.213 に答える