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

10進数の数値を、IEEE 754規格の16進数(HEX)および2進数(Binary)へ相互に変換します。

※正しい数値を入力してください
※正しい16進数フォーマットで入力してください
※正しい2進数フォーマットで入力してください
高度な設定 精度(32bit/64bit)・バイト順・ワード順

フォーマット設定

浮動小数点数のビット幅を選択します。単精度は8文字(HEX)、倍精度は16文字(HEX)になります。

32bit値の表記を基準に、通常順、各16bitワード内のバイト反転、16bitワード順の反転、全バイト反転を選択します。Float64でも同じ規則を全バイトへ適用します。

HEXとBinaryの表示を、コピーしやすい連続形式または読みやすいバイト区切りに切り替えます。

並び順の切り替え

IEEE 754のビット列を保ったままABCD → BADC → CDAB → DCBAの順に切り替えます。Float32の12.5では 41480000 → 48410000 → 00004148 → 00004841 です。

IEEE 754 解析結果

値を入力すると、符号・指数・仮数をここに表示します。

分類 -
格納される10進値 -
現在のバイト列 -
IEEEビット列(Big Endian基準) -
符号ビット -
指数 -
仮数部 / Fraction -
Sign-
Exponent-
Fraction-

※ Binary/HEXから入力したNaNは、並び順を切り替えても符号・quiet/signaling・payloadを含む元のビット列を保持します。10進数欄にNaNを入力した場合はブラウザ標準のNaN表現になります。

IEEE 754 変換について

このツールは、プログラミングやデバッグの際に必要となる、IEEE 754規格の浮動小数点数の内部表現(16進数ダンプおよび2進数)を簡単に確認・変換するためのツールです。いずれか1つの入力欄に値を入力すると、他のフォーマットに自動的に変換されます。

入力値の変換処理はすべてブラウザ上で行われ、入力した数値・HEX・Binaryが変換のためにサーバーへ送信されることはありません。サイトの利用状況を把握するため、Google Analyticsによるアクセス解析を使用しています。

IEEE 754 変換早見表

よく使われる値のIEEE 754表現です。Float32は単精度、Float64は倍精度のBig Endian表記を掲載しています。Little Endianではバイト順が逆になります。

10進数 Float32 HEX
Big Endian
Float32 HEX
Little Endian
Float64 HEX
Big Endian
分類
000000000000000000000000000000000+0
-080000000000000808000000000000000-0
13F8000000000803F3FF0000000000000Normal
-1BF800000000080BFBFF0000000000000Normal
0.13DCCCCCDCDCCCC3D3FB999999999999ANormal
12.541480000000048414029000000000000Normal
Infinity7F8000000000807F7FF0000000000000Infinity
-InfinityFF800000000080FFFFF0000000000000Infinity
NaN7FC000000000C07F7FF8000000000000NaN

IEEE 754のビット構造

IEEE 754では、浮動小数点数を符号ビット、指数部、仮数部に分けて表現します。指数部がすべて0またはすべて1の場合は、ゼロ、非正規化数、Infinity、NaNなどの特殊な値として扱われます。

Float32 / 単精度

32ビットで構成されます。内訳は符号部1ビット、指数部8ビット、仮数部23ビットです。C言語のfloatやマイコンのセンサーデータでよく使われます。

Float64 / 倍精度

64ビットで構成されます。内訳は符号部1ビット、指数部11ビット、仮数部52ビットです。JavaScriptのNumberや多くの計算処理で使われます。

IEEE 754 変換のFAQ

Q. IEEE 754とは何ですか?
A. コンピュータ上で浮動小数点数を表現するための標準規格です。最も一般的に使われているのは単精度(32ビット)と倍精度(64ビット)の形式です。
Q. 16進数や2進数から10進数に戻せますか?
A. はい。「16進数(HEX)」または「2進数(Binary)」の欄に入力すると、自動的に10進数に変換されます。フォーマット(単精度/倍精度)が一致している必要があります。
Q. エンディアンとは何ですか?
A. 複数バイトのデータを配置する順序です。このツールではBig Endian (ABCD)、Byte Swap (BADC)、Word Swap (CDAB)、Little Endian (DCBA)を選択でき、ModbusやPLCで使われるワード順にも対応しています。
Q. -0、Infinity、NaNにも対応していますか?
A. はい。10進数欄では -0、Infinity、-Infinity、NaN を入力できます。HEXやBinaryから入力した場合も、ゼロ、非正規化数、無限大、NaNを分類して表示します。
Q. HEXやBinaryに空白を入れても使えますか?
A. はい。HEXは「41 48 00 00」のようなバイト区切り、Binaryは8ビットごとの空白区切りに対応しています。表示形式は「高度な設定」から連続表示にも切り替えられます。
Q. 41480000を00004841に変換できますか?
A. はい。「値を保持して次の並びへ」を押すと、同じIEEE 754ビット列を保ったままABCD、BADC、CDAB、DCBAの順に表示を切り替えられます。
Q. Float32とFloat64の違いは何ですか?
A. Float32は32ビットの単精度浮動小数点数で、符号部1ビット、指数部8ビット、仮数部23ビットで構成されます。Float64は64ビットの倍精度浮動小数点数で、符号部1ビット、指数部11ビット、仮数部52ビットで構成され、より高い精度で数値を表現できます。
Q. 0.1がIEEE 754で正確に表現できないのはなぜですか?
A. 0.1は2進数では有限桁で表せないため、IEEE 754では近い値に丸めて保存されます。そのため、Float32では3DCCCCCD、Float64では3FB999999999999Aのような近似表現になります。
Q. 7FC00000は何を表しますか?
A. Float32のBig Endian表記で7FC00000はNaNを表す代表的なビットパターンです。NaNは「Not a Number」の意味で、数値として定義できない結果などに使われます。
Q. 41480000は何の値ですか?
A. Float32のBig Endian表記で41480000は10進数の12.5を表します。Little Endianでは同じ値が00004841のバイト順になります。

このツールをシェアする