【問題】
数値を図に示す16ビットの浮動小数点方式で表すとき、10進数0.25を正規化した表現はどれか。ここでの正規化は、仮数部の最上位けたが0にならないように指数部と仮数部を調整する操作とする。
1ビットの仮数部の符号s(0:正、1:負)
4ビットの指数部の符号e(2を基数とし、負数は2の補数で表現)
11ビットの仮数部の符号f(符号なし2進数)
さらに、小数点の位置はeとfの間とする。
【解答】
「仮数部の最上位けたが0にならないようにする」とは、0.25を2進数で表し、0.XXXXXとすることを意味するから、まずは0.25を2進数に変換する。
0.25 x 2 = 0.5
0.5 x 2 = 1.0
よって、10進数の0.25は2進数の0.01と表すことが出来る。
さらに、0.01を0.XXXXXと変えるので、
0.01 = 0.1 x 2^-1
となる。
ここで、s、e、fをそれぞれ具体的に当てはめると、
s = 0、e = -1、f = 10000000000
であることが分かる。
さらに、e = -1 について、負数は2の補数で表現するとあるから、2進数に変換し、ビットを入れ替え、1を足すことで表現できる。
-1 → 0001 → 1110 → 1111
よって、e = 1111 と表現する。
以上により、 s = 0、 e = 1111、f = 10000000000 となる。