基本情報技術者試験 -64ページ目

けた落ちの説明として、適切なものはどれか。

 ア 値がほぼ等しい浮動小数点同士の減算において、有効けた数が大幅に減ってしまうことである。
 イ 演算結果が、扱える数値の最大値を超えることによって生じる誤差のことである。
 ウ 数表現のけた数に限度があるとき、最小のけた数より小さい部分について四捨五入、切上げ又は切捨てを行うことによって生じる誤差のことである。
 エ 浮動小数点の加算において、一方の数値の下位のけたが結果に反映されないことである。
【解答と解説】
コンピュータで小数点を含む数値は、浮動小数点表示を使うと、非常に大きな数から、小さな数まで表現できます。
しかし、すべての数を正確に表現できるかというと、そうではありません。
誤差をできるだけ防ぐために、計算していく過程を考える必要がでてきます。

 ア けた落ち誤差の説明です。
 イ けたあふれの説明です。浮動小数点数で表現した場合、指数部が表現できる最大値を超えた場合、オーバーフローといいます。
 ウ 丸め誤差の説明です。
 エ 情報落ち誤差の説明です。

【解答】 ア

数値を16ビットの浮動小数点で、図に示す形式で表す。
10進数0.375を正規化した表現はどれか。
ここでの正規化は、仮数部の最上位けたが0にならないように指数部と仮数部を調節する操作である。
あきらめないで!基本情報技術者(FE)試験

S :仮数部の符号( 0:正、1:負)
E :指数部( 2を基数とし、負数は2の補数で表現)
M :仮数部( 2進数 絶対値表示)

0000111000000000
0100111000000000
0111111000000000
1000111000000000

【解説】
ここで出てくる 仮数 指数 基数の 関係はお分かりでしょうか?
数値表現をする際  
    仮数  x   基数 指数 
で表すことができます。
例えば
  375  = 3.75 x 102
です。
 この時、仮数は 3.75 基数は 10 指数は 2 となります。

この問題では、2進数表示をする際について尋ねていますので、 
まず、10進数 0.375を2進数に変換しましょう。

0.375  = ( 0 × 2-1 ) + ( 1 × 2-2 ) + ( 1 × 2-3 )  =  0.011(2)  
正規化とは、小数点第一位を0にしないことですから、 
        =   0.11(2) × 2-1 
と なります。

選択肢 エ を見ると、仮数部の符号が 1、すなわちマイナスとなっていますが、仮数部の符号は正です。
よって、ここで、 エの選択肢は 除外されます。

選択肢の違いは、指数部の値になりますので、 -1を 2進数で表している解答を選択します。
-1を 4ビットの補数で表現すると、
    -1 = (1111)2

【解答】 


10 進数の 0.6875 を2進数で表したものはどれか。 ア 0.1001     イ 0.1011     ウ 0.1101     エ 0.1111
【解答と解説】
基数変換する場合、
 整数部分の基数変換は、2で割り続け、計算過程で出現する余りが2進数の各桁になり、商が0になるまで行います。
小数部分の場合は、2を掛け続けて、整数部分になるものを2進数の各桁とし、最終的に1.0になると終了します。

具体的に計算をしていきます。


0.6875  x   2   =  1.375     ⇒1
0.375    x   2   =   0.75     ⇒0
0.75      x    2 =   1.5         ⇒1
0.5        x   2   =   1.0        ⇒1

つまり 0.6875(10)は  2進数では  0.1011 
ということです

解答:イ


 10進数 0.5  = 1/2   2進数 0.1
10進数 0.25 = 1/4   2進数 0.01
10進数 0.125 = 1/8   2進数 0.001
10進数 0.0625 = 1/16   2進数 0.0001

ですから、 
10進数 0.6875は 以下のようにも書けます。

0.6875= 0.5 + 0.125 + 0.0625 =  1/2  +  1/8   +   1/16  

つまり 0.6875=(0.1)2 + (0.001)2 +(0.0001)2

になるので、解答が導き出せることにもなります。