16ビット浮動小数点への変換

(IEEE754規格に準拠)

例題:実数 145.0 を16ビット浮動小数点に変換しよう

今回の16ビットの構成では
ビット番号は左端を0ビット目とします。
ビット番号 0 123 45 678 91011 121314 15
役割 符号 指数部 仮数部
ビット数 1 5 10

指数部のバイアスは 15 です。

4ステップで変換しよう

試験では、この4つだけ。
① 2進数にする → ② 正規化する → ③ 3部分を作る → ④ つなげる

STEP 1 2進数にする

145.0を2進数にする

145を2のべき乗に分けます。

145 = 128 + 16 + 1

したがって、

145.0 → 10010001.000…2

STEP 2 正規化する

「1.xxx × 2n」の形にする
10010001.000…
↓
1.0010001 × 27

したがって、真の指数は 7 です。

STEP 3 符号・指数・仮数を作る

① 符号

145.0は正の数なので、

符号 = 0
② 指数

真の指数7にバイアス15を加えます。

7 + 15 = 22 = 101102

したがって、

指数部 = 10110
③ 仮数

正規化した

1.0010001 × 27

の先頭の「1」を除き、10ビットにします。

0010001 → 0010001000

したがって、

仮数部 = 0010001000

STEP 4 3つをつなげる

符号 → 指数 → 仮数
0 | 10110 | 0010001000
ビット番号 0 123 45 678 91011 121314 15
役割 符号 指数部 仮数部
値 0 101 10 001 000 100 0

答え

0101100010001000

145.0 の16ビット浮動小数点表現

16進数では 0x5888

試験ではここだけ覚える

① 2進数にする
② 正規化する
③ 符号・指数・仮数を作る
④ つなげる

まとめ

手順今回の結果
① 2進数10010001.000…
② 正規化1.0010001 × 27
③ 3部分0 / 10110 / 0010001000
④ 結合0101100010001000