IEEE 754とは?Float32・Float64の仕組みをわかりやすく解説

この記事の要点

値をすぐに変換・確認したい方へ

IEEE 754変換ツールで符号・指数・仮数を分解できます。

IEEE 754変換ツールを使う

IEEE 754とは何か

IEEE 754は、実数に近い値をコンピュータ上で扱うための浮動小数点数規格です。小数点の位置を固定せず、符号・指数・有効数字に分けることで、非常に小さい値から非常に大きい値まで限られたビット数で表現します。

よく使われる形式は、32ビットの単精度(Float32)と64ビットの倍精度(Float64)です。同じ10進数でも、形式によって精度や表現範囲が異なります。

Float32・Float64のビット構造

符号1 bit
指数8 bits
仮数23 bits
形式符号部指数部仮数部bias
Float321 bit8 bits23 bits127
Float641 bit11 bits52 bits1023

通常の値を求める計算式

指数部がすべて0でもすべて1でもない正規化数は、次の式で値を求めます。

(−1)符号 × (1 + 仮数) × 2指数部の値 − bias

仮数部の先頭には通常、保存されていない1があるものとして計算します。これを暗黙の1(hidden bit)と呼びます。

例:Float32で1.0を表す

  1. 1.0は正の値なので符号ビットは0です。
  2. 1.0は2進数で1.0 × 2⁰なので実際の指数は0です。
  3. 指数部は0+127=127、2進数では01111111です。
  4. 小数部分はないため仮数部は23個の0です。
結果

ビット列:0 01111111 00000000000000000000000
HEX:3F800000

ゼロ・Infinity・NaNなどの特殊値

指数部がすべて0またはすべて1の場合は、通常の計算式とは異なる意味を持ちます。

指数部仮数部意味
すべて0すべて0+0 または −0
すべて00以外非正規化数
すべて1すべて0+Infinity または −Infinity
すべて10以外NaN

IEEE 754が使われる場面

よくある質問

Float32と単精度は同じですか?

はい。Float32は32ビットの単精度浮動小数点数を指します。

Float64と倍精度は同じですか?

はい。Float64は64ビットの倍精度浮動小数点数で、Float32より多くの有効桁を持ちます。

仮数部の暗黙の1は常に使いますか?

いいえ。正規化数では使いますが、指数部がすべて0の非正規化数では先頭を0として計算します。

IEEE 754ですべての小数を正確に表せますか?

表せません。0.1のように2進数で有限桁にならない値は、最も近い表現へ丸められます。