IEEE 754 インスペクター
IEEE 754浮動小数点表現をインタラクティブなビット操作で検査・視覚化できます。
このツールについて
IEEE 754インスペクターは、コンピュータが10進数をバイナリ浮動小数点値として どのように格納するかを探索できるツールです。任意の数値を入力すると、 32ビット(単精度)と64ビット(倍精度)のIEEE 754表現が即座に表示され、 符号ビット、指数フィールド、仮数部(有効数字)に分解されます。
インタラクティブなビット表示はカラーコーディングされています。符号ビットは赤、 指数ビットは青、仮数ビットは緑で表示されます。個々のビットをクリックして トグルし、結果の10進値がリアルタイムで変化する様子を確認できます。 これにより、各ビットが最終的な数値にどう寄与するかを理解し、非正規化数、 正と負のゼロ、無限大、NaNなどのエッジケースを探索するのが容易になります。
すべての処理はブラウザ内でJavaScriptのDataViewとArrayBuffer APIを
使用して完結します。データがサーバーに送信されることはありません。
教室でのデモンストレーション、技術面接、特定の浮動小数点値の格納方法を
正確に検証する必要があるデバッグセッションでも安全に使用できます。
比較モードでは、0.1 + 0.2が0.3にならない理由など、典型的な
浮動小数点の驚きを理解するのに役立ちます。各オペランドの正確な格納表現と
蓄積された丸め誤差を表示します。精度アナライザーは、現在の大きさでの
ULP(最下位の単位)と表現可能な範囲を表示し、float64の精度を具体的に
把握できます。
低レベルのバイナリデータを扱う場合は、Hexエディタで 生バイトを検査でき、進数変換ツールで 任意の基数変換が可能です。ビット演算の探索には テキストからバイナリツールをご覧ください。
使い方
- 入力フィールドに10進数を入力します(例:
0.1、-3.14、Infinity、NaN)。 - カラーコーディングされたビットフィールドで32ビットと64ビットのIEEE 754表現を確認します。
- ビット表示の個々のビットをクリックしてトグルし、結果の数値の変化を確認します。
- クイックアクセスボタンで+0、-0、Infinity、NaN、Max Safe Intなどの特殊値を読み込みます。
- Compare タブに切り替えて2つの値を入力し、合計が期待値と異なる理由を確認します。
- 精度アナライザーセクションで、現在の大きさでのULP、表現可能な範囲、マシンイプシロンを確認します。
- Copy ボタン(または Ctrl+Shift+C)をクリックして、IEEE 754の完全な分解をクリップボードにコピーします。
IEEE 754の人気サンプル
よくある質問
データは安全ですか?
はい。すべての処理はブラウザ内でJavaScriptのDataViewとArrayBuffer APIを使用して行われます。データはサーバーに送信されず、保存やログの記録も一切ありません。
IEEE 754とは何ですか?
IEEE 754は、事実上すべての最新のCPUとプログラミング言語で使用されている浮動小数点演算の国際標準です。10進数をバイナリとしてエンコードする方法を定義しており、32ビット(単精度)と64ビット(倍精度)のフロート形式を含みます。
なぜ0.1 + 0.2は0.3にならないのですか?
0.1と0.2はバイナリ浮動小数点で正確に表現できません。それぞれが最も近い表現可能な値に丸められ、加算すると蓄積された丸め誤差により、正確な0.3ではなく0.30000000000000004が生成されます。Compareタブで詳細を確認できます。
非正規化数(サブノーマル数)とは何ですか?
非正規化数は、指数フィールドがすべてゼロで仮数部がゼロでない数値です。ゼロと最小の正規化浮動小数点数の間のギャップを埋め、ゼロへの急激なジャンプの代わりに段階的なアンダーフローを可能にします。ゼロ付近で精度を犠牲にして範囲を確保します。
ビットをトグルするにはどうすればよいですか?
視覚的なビット表示の任意のビットをクリックします。符号ビットは赤、指数ビットは青、仮数ビットは緑です。ビットをトグルすると、10進値が即座に更新され、そのビットが結果にどう影響するかを正確に確認できます。
float32とfloat64の違いは何ですか?
Float32(単精度)は符号1ビット、指数8ビット、仮数23ビットを使用し、約7桁の10進精度を提供します。Float64(倍精度)は符号1ビット、指数11ビット、仮数52ビットを使用し、約15〜16桁の10進精度を提供します。JavaScriptの数値は常にfloat64です。
マシンイプシロンとは何ですか?
マシンイプシロンは、1.0に加算したときに浮動小数点演算で1.0とは異なる結果を生成する最小の値です。float64では約2.22e-16です。精度アナライザーは、マシンイプシロンと現在の値の大きさでのULP(最下位の単位)の両方を表示します。