IEEE 754 浮動小数点変換 (32 & 64ビット)
変換
浮動小数点数は符号ビット、バイアス付き指数、仮数(fraction)として格納され、入力した値と実際に格納される値の差が数多くの丸めバグの原因になります。この変換器は任意の十進数を float32(単精度、1+8+23 ビット、バイアス 127)と float64(倍精度、1+11+52 ビット、バイアス 1023)の両方で正確な IEEE 754 表現として表示します:色分けされたビット列、hex ワード、バイアスなしの指数と仮数、値のカテゴリ(正規・非正規・ゼロ・無限・NaN)、そして丸め後に実際に格納される値。逆方向にも動作します — 8 桁または 16 桁の hex ワードを貼り付けると、復号された数値と完全な内訳が得られます。シリアライズ、シェーダや組み込みコード、GPU バッファのデバッグや「なぜ 0.1 + 0.2 != 0.3 なのか」という疑問に便利です。特殊入力 Infinity、-Infinity、NaN も受け付けます。すべてローカルで動作し、アップロードされません。
- 符号
- 0 (+)
- 指数
- 123 (2^-4)
- 有効数字
- 1.10011001100110011001101
- 格納値
- 0.10000000149011612
丸められました — float32 はこの値を正確に格納できません。
- 符号
- 0 (+)
- 指数
- 1019 (2^-4)
- 有効数字
- 1.1001100110011001100110011001100110011001100110011010
- 格納値
- 0.1
float32 = 符号 1 + 指数 8 + 仮数 23 ビット;float64 = 1 + 11 + 52。指数バイアスは 127 / 1023。
使い方
- 「十進数 → ビット」で数値(例:0.1、-3.14、1e10、Infinity、NaN)を入力し float32・float64 の両方を確認。
- 符号 / 指数 / 仮数の分割、hex ワード、格納値を読みます。float32 が丸めた場合は注記が表示されます。
- 「ビット → 十進数」に切り替え、精度を選び、hex ワードを貼り付けて数値に復号。
よくある質問
- 格納値が入力と異なるのはなぜ?
- ほとんどの十進小数は二進浮動小数点で正確に表現できません。ツールは最も近い表現可能な値を表示します — 例えば float32 の 0.1 は実際には 0.100000001490116119384765625 です。格納された float32 値が入力と異なるときに丸め注記が表示されます。float64 は JavaScript がすでに使う値と同じです。
- 色分けされたビットの意味は?
- 赤は符号ビット(0 正、1 負)、青は指数(バイアス付き:2 の累乗を得るには float32 は 127、float64 は 1023 を引く)、緑は仮数(fraction)です。正規数の有効数字は 1.仮数、非正規数は最小指数で 0.仮数です。
- 無限・NaN・ゼロはどう表示される?
- 指数が全て 1 で仮数が 0 なら ±無限;指数が全て 1 で仮数が非ゼロなら NaN;指数と仮数が全て 0 なら ±ゼロ(-0 の符号ビットが区別される);指数が全て 0 で仮数が非ゼロなら非正規数です。各カードにカテゴリが表示されます。
- 復号はどの hex 形式を期待しますか?
- 生ビットのビッグエンディアン hex です:float32 は 8 桁(例:3f800000 = 1.0)、float64 は 16 桁(例:3ff0000000000000 = 1.0)。先頭の 0x と空白は無視され、短い入力は左側が 0 で埋められます。
関連ツール
BCD変換器 (2進化10進数)
10進数と8421 2進化10進数を相互変換 — 桁ごとの4ビットニブル、パックドBCDの16進バイト、BCD妥当性チェック。
グレイコード変換器
10進数・2進数・反射2進グレイコードを双方向で変換、任意の固定ビット幅と0-7の対照表付き。
2 の補数変換 (8〜64ビット)
十進・hex・二進・八進の値を入力し、8/16/32/64 ビットの 2 の補数ビットパターンと、符号付き/符号なしの読み、hex、八進、1 の補数を表示 — ブラウザ内で。
ローマ数字コンバーター
1〜3999 のアラビア数字とローマ数字を相互変換します。
基数変換ツール
2進数・8進数・10進数・16進数の間で数値を変換。
単位変換
長さ・重さ・温度・面積・体積・速度・時間を変換。