浮動小数点

問題

応用情報技術者平成22年春期 午前問2

図に示す16ビットの浮動小数点形式において,10進数 0.25 を正規化した表現はどれか。ここで,正規化は仮数部の最上位けたが1になるように指数部と仮数部を調節する操作とする。

答え

解説

浮動小数点

浮動小数点数(ふどうしょうすうてんすう、: floating point number)は、浮動小数点方式によるのことで、もっぱらコンピュータの数値表現において、それぞれ固定長の仮数部と指数部を持つ、数値の表現法により表現された数である。

出典: フリー百科事典『ウィキペディア(Wikipedia)』

何を言っているのが良く分かりません。

以下が良く分かります。

娘に分かりやすく浮動小数を教えるシナリオ

ただし、問題はIEEE754規格の浮動小数点とは異なります。

2の補数

2の補数(にのほすう)は、2、ないし2のべき乗の補数、またそれによる負の値の表現法である。特に二進法で使われる。

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これも何を言っているのか良く分かりません。

以下が良く分かります。

2の補数についてわかりやすく

問題を解く

問題を解きます。

まず、0.25は正の数なので、符号はプラス、つまり仮数部の符号sは0になります。

次に、10進数0.25を2進数に変換します。

$$ 0.25(10) = 2 ^ {-2} (10) =0.01(2)$$

次に、2進数0.01を正規化します。

正規化の第一ステップとして、最上位桁が1になるように変形して、仮数部を求めます。

問題では、図に示されている小数点の位置から、仮数部の最上位桁は小数点第一位であると判断します。

2進数0.01を最上位桁が小数点第一位になるように変形します。

$$ 0.01(2) = 0.1(2) \times 2 ^ {-1}$$

よって仮数部は1、指数部はー1になります。

つまり、 仮数部fは、10000000000 になります。

正規化の第2ステップとして、指数部を変形します。

問題には、指数部は「2を基数として、負数は2の補数で表現する」とあります。

1を4ビットで表現すると、0001です。

ビットを反転すると、1110です。

1を足すと、1111です。

よって、-1の2の補数は1111、つまり指数部eは1111となります。