0

浮動小数点表現を理解しようとしています。浮動小数点の「無限大」「NaN」表現がわかりません。私はTopCoderによって提供されたテーブルを見ています。

無限大は、すべて1の指数と、すべて0の仮数で表されます。

私はそれを0^nとしてしか読むことができず、それがどのように無限大になるのかわかりません。

4

1 に答える 1

2

使用されるビットパターンを単に無視し、無限大とNaNを特別な値として扱う必要があります。フロートを少しいじらない限り(これを行う理由はほとんどありません)、IEEE規則で作成する必要があると定められている場所でのみこれらの値に遭遇し、次の質問を無視しても安全です。コンピュータがそれらをどのように表現するか。標準以上の計算を行ったとしても、99%の確率で、ビットパターンは重要ではないと推測されます。

もちろん、上記のいずれも、標準の有限の非ゼロ浮動小数点数の実装を無視する必要があるとは言っていません。仮数/指数からメモリ内のビットへのステップは、まだほとんど関係がありません。リンク先のページで、作成者は「C++のグローバル変数はゼロビットパターンに初期化されている」と主張しています。これは誤りです。C ++のPODタイプのグローバル変数は、セマンティックゼロに必要なビットパターンで初期化されます(§3.6.2.2、§8.5.5)。C ++標準では、浮動小数点値に特定のビットパターンは必要ないと思います。

于 2012-05-10T07:38:37.723 に答える