[解決済み] 16ビット、32ビット、64ビットのIEEE-754システムで表現できる数値の範囲は?
質問
浮動小数点数がどのように表現されるかについて少し知っていますが、十分ではありません。
一般的な質問です。
与えられた精度 (私の目的では、基本 10 における正確な小数点以下の桁数) に対して、16 ビット、32 ビット、64 ビットの IEEE-754 システムではどの範囲の数値を表現できますか?
具体的には、私は 16 ビットおよび 32 ビットの数値が ±0.5 (1 の位) または ±0.0005 (1,000 の位) に正確になる範囲にのみ関心があります。
どのように解決するのですか?
ある IEEE-754 浮動小数点数 X であれば
2^E <= abs(X) < 2^(E+1)
からの距離は X から次に大きい表現可能な浮動小数点数 ( イプシロン )は
epsilon = 2^(E-52) % For a 64-bit float (double precision)
epsilon = 2^(E-23) % For a 32-bit float (single precision)
epsilon = 2^(E-10) % For a 16-bit float (half precision)
上記の式から、次のように計算することができる。
-
の場合 半精度 ...
もし+/-0.5 (または 2^-1) の精度が必要な場合、数値の最大サイズは 2^10 です。これより大きいと、浮動小数点数間の距離が 0.5 よりも大きくなります。
もし+/-0.0005 (約2^-11)の精度が必要なら、数値の最大サイズは1です。
-
の場合 単精度 ...
もし+/-0.5 (または 2^-1) の精度が必要なら、数値の最大サイズは 2^23 となります。これより大きいと、浮動小数点数間の距離が 0.5 よりも大きくなります。
もし+/-0.0005 (約2^-11) の精度が必要な場合、数値の最大サイズは 2^13 です。これより大きいと、浮動小数点数間の距離が 0.0005 よりも大きくなります。
-
の場合 倍精度 ...
もし+/-0.5 (または 2^-1) の精度が必要なら、数値の最大サイズは 2^52 となります。これより大きいと、浮動小数点数間の距離が 0.5 よりも大きくなります。
もし+/-0.0005 (約2^-11) の精度が必要なら、数値の最大サイズは 2^42 となります。これより大きいと、浮動小数点数間の距離が 0.0005 よりも大きくなります。
関連
-
[解決済み】Lisp: なぜ (- 1e16 1) は 999999999999 ではなく 1000000000000 になるのでしょうか?
-
[解決済み] 通貨を表すのにDoubleやFloatを使ってはいけないのですか?
-
[解決済み】IEEE754のNaN値に対して、すべての比較がfalseを返す根拠は何ですか?
-
[解決済み】なぜ10進数は2進数で正確に表現できないのですか?
-
[解決済み] IEEE754の浮動小数点が正確に表現できない最初の整数はどれでしょう?
-
[解決済み] 単精度浮動小数点演算と倍精度浮動小数点演算はどう違うのですか?
-
[解決済み] C#で浮動小数点演算は整合性が取れているのか?可能なのか?
-
[解決済み] なぜNaNはNaNと等しくないのですか?[重複あり]
-
[解決済み] quiet NaNとsignaling NaNの違いは何ですか?
-
[解決済み] 2つの不等な浮動小数点数の引き算で0を得ることは可能ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン