浮動小数点表示の仮数部が23ビットであるコンピュータで計算した場合、情報落ちが発生する計算式はどれか。
ここで、( )2内の数は2進数とする。
ア |
(10.101)2×2-16(1.001)2×2-15 |
イ |
(10.101)2×216(1.001)2×216 |
ウ |
(1.01)2×218+(1.01)2×2-5 |
エ |
(1.001)2×220+(1.1111)2×221 |
答え ウ
【解説】
仮数部のビット数が23ビットなので、情報落ちが発生するのは、加減算する数値の絶対値の差が223以上あるときです。
この条件を満たすのはウの
になります。
2つの数を2進数で表すと
(1.01)2×218=101 0000 0000 0000 0000 |
(1.01)2×2-5=0.0000 101 |
になり、これを加算すると
101 0000 0000 0000 0000 .0000 101
になります。仮数部は23ビットなので、この数の上位23ビットを取り出すと
101 0000 0000 0000 0000.0000=(1.01)2×218 |
になり、(1 .01) 2×2 -5の情報は無視されてしまい、情報落ちが発生します。
【キーワード】
・浮動小数点
・情報落ち
【キーワードの解説】
- 浮動小数点
小数の表現の方法の一つで、符号と指数部、仮数部に分けて数値を記憶する方法である。
32ビットの浮動小数点で、仮数部が23ビットの場合、下図のようになる。
このときの浮動小数点の値は、
(-1)符号×仮数部×基数指数部
になる。(基数:2進数なら2、10進数なら10です。)
- 情報落ち
コンピュータで扱える数値の有効けた数に限りがあることで発生する誤差の一つで、絶対値の大きい数値と、絶対値の小さい数値を加減算したときに、絶対値の小さい数値が無視されてしまうことです。
100,000,000(1億)と、これに1を加算した100,000,001が何百万(有効けた数3けた)かを考えると、共に100百万になり加算した1が無視されてしまいます。
もっと、「浮動小数点」について調べてみよう。
戻る
一覧へ
次へ
|