浮動小数点データ型を16進で表記する方法

C++ではfloatやdoubleという浮動小数点のデータ型がありますが,
これらを16進表記する場合についての解説です.

通常,浮動小数点はIEEE754というフォーマットに従ってデータとして表現されます.
例えば,単精度(float)の場合,10進で1.2345という値は,16進では0x3F9E0419となります.

C++でこの16進表記に変換するには,共用体(union)を用いれば実現できます.
以下が単精度の場合の変換を行う関数です.

このように,一度整数型(unsigned int)に変換してから,関数の呼び出し元で

と16進(std::hex)で指定して表示すれば,浮動小数点の16進表記が確認できます.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">