IEEE 754 浮動小数点変換ツール

10 進数を 32 ビット・64 ビットの IEEE 754 に相互変換 — 符号・指数・仮数のビット、16 進、正確な格納値、丸め誤差まで、すべてブラウザ内で。

IEEE 754 変換ツールは、標準の数値 API を使って完全にブラウザ内で動作します。変換する 10 進数、16 進、ビットパターンはデバイス上に留まり、ArrayKit にアップロードされることはありません。

基数変換ツールを開く

IEEE 754 変換 について

IEEE 754 変換ツールは、10 進数を正確な 32 ビット(単精度)と 64 ビット(倍精度)の浮動小数点表現に変換します。符号ビット、バイアス付き指数、仮数を色分けした別々のビットフィールドとして表示し、さらに 16 進のワード、ビットが実際に格納する正確な値、そして入力した値と機械が保持する値との丸め誤差も示します。2 進数はほとんどの 10 進小数を表現できないため、0.1 のような値はごくわずかにずれます。このツールはそのずれを可視化します。逆方向も可能で、16 進パターンや生のビット列を貼り付ければ、それがデコードされる 10 進数を復元できます。浮動小数点の精度をデバッグしたり、float32 と float64 を比較したり、Infinity・NaN・非正規化数を調べたりする開発者のために作られています。すべての変換はブラウザ内でローカルに動作し、入力した数字がデバイスから外に出ることはありません。

機能

IEEE 754 変換 の使い方

  1. Decimal → IEEE 754 を選んだまま、0.1 のような数を入力します
  2. 32 ビットか 64 ビットを選び、単精度または倍精度のビットを表示します
  3. 符号・指数・仮数フィールド、16 進、丸め誤差を確認します
  4. IEEE 754 → Decimal に切り替え、16 進または 2 進パターンを貼り付けてデコードします

入力

0.1  (as float32)

出力

hex:            0x3dcccccd
stored value:   0.10000000149011612
exact value:    0.100000001490116119384765625
rounding error: 1.4901161193847656e-9

0.1 には正確な 2 進形がないため、float32 は 0.1 よりわずかに大きい値を格納します。

よくあるエラーとトラブルシューティング

よくある質問

0.1 が IEEE 754 で正確に格納されないのはなぜですか?
0.1 は 2 進では循環小数で、1/3 が 10 進で循環するのと同じです。有限のビット数では書けません。変換ツールはそれを最も近い表現可能な値に丸め、残った丸め誤差を表示します。
32 ビットと 64 ビットの浮動小数点の違いは何ですか?
32 ビット(単精度/float)は 8 ビットの指数と 23 ビットの仮数で、約 7 桁の 10 進精度です。64 ビット(倍精度)は 11 ビットと 52 ビットで約 15〜16 桁です。精度を切り替えて同じ数を両方で比較できます。
符号・指数・仮数フィールドはどう読みますか?
最初のビットが符号(0 が正、1 が負)です。次の 8 または 11 ビットが指数で、127 または 1023 のバイアス付きで格納されます。残りの 23 または 52 ビットが仮数 — 正規数では暗黙の先頭 1 の後の小数部分です。
Infinity、NaN、負のゼロはどうエンコードされますか?
指数がすべて 1 で仮数がゼロなら ±Infinity、仮数が非ゼロなら NaN です。負のゼロは符号ビット以外すべてゼロです。ツールは入力すると、これらの特殊なケースをそれぞれラベル付けします。
16 進の浮動小数点値を 10 進に戻せますか?
はい。IEEE 754 → Decimal に切り替え、Hex または Binary を選んでパターンを貼り付けます。ツールは符号・指数・仮数を再構成し、ビットが表す正確な 10 進数を表示します。
非正規化(denormal)数とは何ですか?
指数フィールドがすべてゼロで仮数が非ゼロのとき、その数は非正規化です:暗黙の先頭 1 を落として、最小の正規浮動小数点より小さい値を、精度を下げて表現します。ツールはこれらを自動的に示します。

関連ツール

すべての ArrayKit ツール