ホームページ > バックエンド開発 > C++ > 非正規浮動小数点数とは何ですか?なぜ重要ですか?

非正規浮動小数点数とは何ですか?なぜ重要ですか?

Susan Sarandon
リリース: 2024-11-08 16:08:02
オリジナル
984 人が閲覧しました

What Are Subnormal Floating-Point Numbers and Why Are They Important?

非正規浮動小数点数とは何ですか?

IEEE 754 浮動小数点数表現では、非正規数は特殊なタイプの数値です。はゼロに非常に近い値を表します。これらは、数値が小さすぎて通常の浮動小数点数として表現できない場合に発生するアンダーフローを防ぐために使用されます。

IEEE 754 の基礎

IEEE 754 は浮動小数点数を表すための標準化された形式。 32 ビットの単精度 IEEE 754 数値は次のように表されます:

  • 1 ビットの符号
  • 8 ビットの指数
  • 23 ビットの小数部

先頭ビット規則

IEEE 754 では、ゼロ以外のすべての数値は 2 進数で先頭に 1 が付きます。これは、先行ビット規則として知られています。ただし、これにより、ゼロに近い数値の精度が無駄になる可能性があります。

非正規数

この問題に対処するために、非正規数が導入されました。指数が 0 で小数部が 0 以外の場合、その数値は非正規とみなされます。この場合、先頭ビット規則は無視され、表現される実際の値は次のとおりです。

0.fraction * 2^(-126)
ログイン後にコピー

これにより、アンダーフローで失われる非常に小さな数値の表現が可能になります。

非正規数の範囲

非正規数の範囲は、通常の浮動小数点数よりもはるかに狭いです。最小の正の非正規数は:

0.000002 * 2^(-126)
ログイン後にコピー

、最大の非正規数は:

0.FFFFFE * 2^(-126)
ログイン後にコピー

非正規化

を表すプロセス10 進数を非正規数として 2 進数形式で表現することは、非正規化として知られています。数値が非正規化されると、2 進小数点の左側に単一の「1」ビットだけが残るまで左にシフトされます。

実装

非正規化は次のとおりです。異なるハードウェア アーキテクチャでは異なる方法で実装されます。例:

  • x86_64: サブノーマルはハードウェアに直接実装されます。
  • ARMv8: パフォーマンス重視のシナリオではサブノーマルを無効にできます。 「フラッシュ・トゥ・ゼロ」を使用するモード。

非正規化の利点

  • 数値計算でのアンダーフローを防止します。
  • 小さな数値を含む計算の精度が向上します。
  • 必要性を排除して浮動小数点演算を簡素化します。アンダーフローの特殊な場合。

以上が非正規浮動小数点数とは何ですか?なぜ重要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート