IEEE754の倍精度について混乱しています。
次の2つの質問を検討
します。
2. 2 54 +2 が表現できないのは なぜですか?
手伝って頂けますか ?IEEE754の動作方法は理解 していますが、表示に問題があります。
IEEE754の倍精度について混乱しています。
次の2つの質問を検討
します。
2. 2 54 +2 が表現できないのは なぜですか?
手伝って頂けますか ?IEEE754の動作方法は理解 していますが、表示に問題があります。
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に到達するまで、このように続けることができます。