FE EXAM

IEEE 754 単精度(32ビット浮動小数点の決定版)

現代のコンピュータが使う浮動小数点数の規格「IEEE 754 単精度」。32 ビットを 符号 1 + 指数 8 + 仮数 23 に分けて値を表します。

INTERACTIVE VISUALIZATION
符号 S (1bit)
指数 E (8bit)
仮数 M (23bit)
符号
0 (+)
指数(実)
+2
仮数(1.xxx)
1.625000
10進値
6.5
10進数を入力
プリセット
各ビットをクリックして 0/1 を切り替えてください。式は 値 = (-1)S × 1.M × 2E-127。リアルタイムで 10 進値が再計算されます。
S
1 bit
E (指数 8 bit)
保存値 129
M (仮数 23 bit)
23 bit
計算式
値 = (-1)0 × 1.625000 × 22=6.5
解説

📌
IEEE 754単精度とは

IEEE 754 単精度とは、現代のコンピュータが浮動小数点数を扱うときに最もよく使う32 ビット規格のことです。多くのプログラミング言語の float 型・float32 型はこのフォーマットです。

値の式は次のとおりです(暗黙の 1 を補ったあとの計算):
値 = (-1)S × 1.M × 2E - 127
 ・S: 符号部(1ビット、0=正 / 1=負)
 ・E: 指数部の保存値(8ビット、バイアス済み)
 ・M: 仮数部の小数部分(23ビット、暗黙の 1. は別途)

これまで個別に学んだ「符号部」「指数部」「仮数部」「ケチ表現」「バイアス表現」「正規化」がすべて1つの 32 ビット表現にまとめられた完成形──それが IEEE 754 単精度です。

📌
32ビットの内訳

位置ビット数役割具体例 (6.5 の場合)
bit 311 bit符号部 S0 (正)
bit 30-238 bit指数部 E (バイアス済み、+127)10000001 (=129, 実指数 +2)
bit 22-023 bit仮数部 M (1. を省略した小数部)10100000000000000000000

上のツールで「6.5」プリセットを試してみてください。32 ビット全体は 0 10000001 10100000000000000000000 となります。これを式に当てはめると (-1)⁰ × 1.625 × 2² = 6.5

📌
表現範囲と精度

IEEE 754 単精度の主なスペック:
正の最大値: 約 3.4 × 10³⁸
正の最小値(正規化数): 約 1.18 × 10⁻³⁸
10進精度: 約 7 桁
負の値も同じ範囲(符号ビット 1)

特殊な値:
±0: 全ビット 0(符号だけ違う 2 通り)
±∞: 指数部が全て 1、仮数部が全て 0
NaN(Not a Number): 指数部が全て 1、仮数部が 0 以外
非正規化数: 指数部が全て 0、仮数部が 0 以外(極小値を表現)

上のツールで「0.1」を選んでみてください。0 01111011 10011001100110011001101 となります。十進 0.1 が二進では循環小数なので、ビット列の末尾で打ち切られた値が 0.1 のごく近似値として保存されています。これがプログラミングでよく見る「0.1 + 0.2 = 0.30000000000000004」の正体です。

関連コンテンツ

IEEE 754 単精度 | Vizigo