4

64 ビット IEEE 浮動小数点表現での 53 ビットの精度について、このナンセンスを目にし続けています。誰かが私にどのように世界で 1 で立ち往生しているビットが数値精度に何か貢献しているかを説明してくれませんか? bit0 が 1 で固定された浮動小数点ユニットがある場合、通常よりも精度が 1 ビット低いことが当然わかります。これについてのそれらの感性はどこにありますか?

さらに、仮数を除いた倍率である指数だけが、数値の先頭ビットがどこにあるかを正確に指定するため、先頭ビットは使用されません。53 番目のビットは、19 番目のホールとほぼ同じくらいリアルです。これは、人間の心と、そのような値にバイナリでアクセスするためのロジックを支援する (便利な) 松葉杖にすぎません。そうでないと主張することは二重にカウントされます。

この 53 番目のビットのナンセンスを主張するすべての本や記事が間違っているか、それとも私が馬鹿であるかのどちらかです。しかし、立ち往生ビットは立ち往生ビットです。反対の議論を聞いてみましょう。

4

3 に答える 3

4

ここで重要な概念は「正規化」です。一般的な科学表記法では、すべての値に多くの表現があります。これにより、算術、特に比較が必要以上に難しくなります。一般的な解決策は、仮数の最上位桁をゼロ以外にすることです。たとえば、私が最初に使用した浮動小数点システムは基数 16 で、仮数の先頭の桁は 1 から F の範囲でした。

これは、バイナリ浮動小数点に特別な効果があります。仮数の最上位ビットはゼロ以外のビットです。非ゼロであることがわかっているビットの物理表現の限られた数のビットの 1 つを無駄にする意味はありません。

IEEE 754 64 ビット 2 進数の通常の数値には 53 ビットの仮数部があり、その暗黙の先行ビットは 1 であることがわかっており、残りの 52 ビットは物理表現に格納されています。

無料のランチなどはないので、これには費用がかかります。コストは、特定の指数で格納できる数値の制限です。重要ではないほとんどの指数の場合、数値はより小さい指数で格納され、格納する必要のない先頭の 1 ビットが残ります。

使用するより小さな指数がないため、ゼロ指数の実際の制限になります。IEEE 754 2 進浮動小数点は、指数がゼロの非常に小さな数値を別の方法で格納することにより、これを解決します。それらは最大 52 個の有効ビットを持ち、すべて格納され、先行ゼロが許可されます。これにより、精度が低下しますが、非常に小さい大きさの数値をゼロ以外の数値として表すことができます。

無限大と NaN は異なる方法で格納され、指数はすべて 1 になります。

于 2013-08-23T20:21:28.617 に答える