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・非正規化数を調べたりする開発者のために作られています。すべての変換はブラウザ内でローカルに動作し、入力した数字がデバイスから外に出ることはありません。
機能
- 任意の 10 進数を 32 ビット(単精度)と 64 ビット(倍精度)の IEEE 754 に変換
- 符号・指数・仮数を色分けしたビットフィールド
- 完全な 2 進ビット列と並べて 16 進ワードを表示
- 正確な格納値と、入力に対する丸め誤差を報告
- 逆モードで 16 進パターンやビット列を 10 進数にデコード
- Infinity、NaN、負のゼロ、非正規化(denormal)数に対応
- バイアス付きとバイアスなしの指数を表示し、スケールを読み取れる
- 完全にブラウザ内で動作 — 数字がデバイスから外に出ることはありません
IEEE 754 変換 の使い方
- Decimal → IEEE 754 を選んだまま、0.1 のような数を入力します
- 32 ビットか 64 ビットを選び、単精度または倍精度のビットを表示します
- 符号・指数・仮数フィールド、16 進、丸め誤差を確認します
- 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 よりわずかに大きい値を格納します。
よくあるエラーとトラブルシューティング
- 等しいはずの 2 つの数がコードで異なると比較される。 — 丸めは演算ごとに異なるので、== ではなく小さな許容誤差(イプシロン)で浮動小数点を比較するか、より高い精度のために 64 ビットに移行してください。
- 貼り付けた 16 進値が予期せず Infinity や NaN にデコードされる。 — 指数フィールドがすべて 1 だと Infinity(仮数がゼロ)または NaN(仮数が非ゼロ)を意味します。幅も確認してください — 32 ビットは 16 進 8 桁、64 ビットは 16 桁です。
- プログラムで 0.1 + 0.2 が 0.3 にならない。 — 各値はまず最も近い 2 進浮動小数点に丸められるため、合計がずれます。0.1、0.2、0.3 をここで変換すると、不一致の背後にある正確な格納値がわかります。
- 非常に小さな数が『subnormal』と表示される。 — 最小の正規指数を下回ると、浮動小数点は暗黙の先頭 1 を落とし、精度と引き換えにゼロに近づく非正規化(denormal)エンコードを使います。
よくある質問
- 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 ツール