IEEE754は、浮動小数点の最もポピュラーなもの。
32bit2進数による浮動小数点を例にみていく。
32bit2進数による浮動小数点
次のように「符号」「指数部」「仮数部」の形式で表現する。
ここで用いる式は、とってもシンプルである。
(-1) ^ S × 1.M × 2 ^ ( E - 127 )
S…
符号部。0か1で表現する。
E…
指数部。指数部の- 127 は、マイナス値を表現するための工夫でバイアス値と呼ばれている。
例えば E 127 の部分が 2 であれば、 E の値は 129 であり、この 129 を 2 進数で表現したものを指数部の値として取り扱う。
要は必要な指数に 127 を足した ものを指数部にすればよい。
M…
仮数部。仮数部のM は、 1 の位 が 常に 1 なので省略し、 小数点以下の数字のみをM として表す。
例)3.625 を 32bit 浮動小数点で表す
始めに、3と0.625に分けて考える。
3は、2進数に変換すると → 11
0.625は、2進数に変換すると
×2 1.25 ← 整数部1は無視して0.25として2倍
×2 0.50
×2 1.00 ← 小数部が0になったら計算終了。
整数部分を、上から読んで 0.101
よって、3.625は、エ進数に変換すると 11.101 となる。
この 11.101 を浮動小数点に変換する
(-1) ^ S × 1.M × 2 ^ ( E - 127 )
この式に、 11.101 を当てはめると
( -1 ) ^ 0 × 1.1101 × 2 ^ 1
となる。
これを分析すると
S… 0
E… 128(E - 127 = 1 を計算)
10000000
M… 11010000000000000000000
SEMの順に並べると
0 10000000 11010000000000000000000
完成