浮動小数点変換の使い方
数値を符号化
数値→ビットを選びfloat32/64と小数を入力します。DataViewで書き込み、格納値、ビット、hex、符号、指数、仮数部、分類を表示します。
ビット・hexを復号
float32は32ビット/8hex、float64は64ビット/16hexが必要です。0x、空白、_を許可し、最上位バイトを左に表示します。
フィールドの意味
float32は符号1・指数8・仮数23、bias 127。float64は1・11・52、bias 1023です。指数が全0ならゼロ/非正規、全1なら無限大/NaNです。
丸めを理解
小数は最初にJavaScript Numberへ変換され、float32では再度丸められます。失われた桁の復元や任意精度計算はしません。
既知の例
Float32の1
1は0x3F800000、00111111100000000000000000000000です。
特殊値
-0は0x80000000、∞は0x7F800000、最小正非正規数は0x00000001です。
制限
- DataViewによるIEEE 754表現確認で、任意精度計算やメモリ読取りではありません。
- NaNには複数payloadがあります。符号化はブラウザー標準形、復号は入力ビットを保ちます。
- ビッグエンディアンは明示した表示順で、ホストメモリ順を主張しません。
よくある質問
なぜfloat32で値が変わる?
2進で正確でない小数があり精度ビットも少ないためです。
+0と-0は違う?
符号ビットが異なり、この変換器は保持します。
NaN payloadを入力できる?
復号モードのビット・hexで可能です。
ビッグエンディアンとは?
最上位バイトを左に置く表示順です。