そのため、浮動小数点数のIEEE754標準で定義されている非正規化数について詳しく調べようとしています。Googleの検索結果のおかげで、すでにいくつかの記事を読んだり、StackOverFlowの投稿をいくつか読んだりしました。しかし、私はまだ答えられていないいくつかの質問があります。
まず、非正規化フロートとは何かについての私の理解を確認します。
精度のビットが少なく、正規化された数値よりも(大きさが)小さい数値
基本的に、非正規化された浮動小数点数は、任意の浮動小数点値で表すことができる最も小さい(大きさの)数値を表すことができます。
それは正しいですか?それ以上のものはありますか?
私はそれを読みました:
非正規化数を使用すると、多くのプラットフォームでパフォーマンスコストが発生します
これについて何かコメントはありますか?
私はまた、その記事の1つを読みました
「正規化数と非正規化数の重複を避ける」必要があります
これについて何かコメントはありますか?
IEEE標準の一部のプレゼンテーションでは、浮動小数点範囲が提示されると、非正規化数が除外され、テーブルは「有効範囲」としてラベル付けされます。これは、プレゼンターが「非正規化数は可能な限り最小の浮動小数点を表すことができることを知っている」とほぼ同じです。ポイント値ですが、非正規化数の特定の欠点があるため、一般的な使用シナリオにより適した範囲からそれらを除外することを選択します。」-非正規化数が一般的に使用されていないかのように。
非正規化数を使用することは、ほとんどの場合、良いことではないことが判明したという印象を受け続けていると思いますか?
私が自分でその質問に答えなければならないとしたら、私はそれを考えたいと思います:
非正規化数を使用すると、可能な限り最小の(大きさの)数値を表すことができるため、適切です。精度が重要でなく、正規化数と混同しない限り、アプリケーションのパフォーマンスは要件の範囲内に収まります。
ほとんどのアプリケーションはそれほど小さな表現を必要としないため、非正規化数を使用することは悪いことです-精度の低下は有害であり、非正規化数と混同することで足を簡単に撃つことができ、パフォーマンスはコストに見合わないほとんどの場合。
これらの2つの答えについて何かコメントはありますか?非正規化数について他に何が欠けているか、理解できない可能性がありますか?