浮動小数点数を、仮数部が7ビットである表示形式のコンピュータで計算した場合、情報落ちが発生しないものはどれか。
ここで、仮数部が7ビットの表示形式とは次のフォーマットであり、( )2内は2進数、Yは指数である。
また、{ }内を先に計算するものとする。
(1.X1X2X3X4X5X6X7)2×2Y
ア |
{(1.1)2×2-3 + (1.0)2×2-4} + (1.0)2×25 |
イ |
{(1.1)2×2-3 - (1.0)2×2-4} + (1.0)2×25 |
ウ |
{(1.0)2×25 + (1.1)2×2-3} + (1.0)2×2-4 |
エ |
{(1.0)2×25 - (1.0)2×2-4} + (1.1)2×2-3 |
答え ア
【解説】
各選択肢を計算して情報落ちが発生するかを確認する。
ア |
{(1.1)2×2-3 + (1.0)2×2-4} + (1.0)2×25
= {(0.0011)2 + (0.0001)2} + (100000.0)2
= (0.01)2 + (100000.0)2
= (100000.01)2
= (1.0000001)2
になり、仮数部が7ビットなので情報落ちは発生しない。(〇) |
イ |
{(1.1)2×2-3 - (1.0)2×2-4} + (1.0)2×25
= {(0.0011)2 - (0.0001)2} + (100000.0)2
= (0.001)2 + (100000.0)2
= (100000.001)2
= (1.00000001)2
になり、仮数部が8ビットなので情報落ちが発生する。(×) |
ウ |
{(1.0)2×25 + (1.1)2×2-3} + (1.0)2×2-4
= {(100000.0)2 + (0.0011)2} + (0.0001)2
= (100000.0011)2 + (0.0001)2
この時点で下線部の仮数部が7ビットを超えてしまうので情報落ちが発生する。(×) |
エ |
{(1.0)2×25 - (1.0)2×2-4} + (1.1)2×2-3
= {(100000.0)2 + (0.00101)2} + (0.0011)2
= (100000.0001)2 + (0.0011)2
この時点で下線部の仮数部が7ビットを超えてしまうので情報落ちが発生する。(×) |
【キーワード】
・浮動小数点
・情報落ち
【キーワードの解説】
- 浮動小数点
小数の表現の方法の一つで、符号と指数部、仮数部に分けて数値を記憶する方法です。
浮動小数点形式の表現を使用することで、絶対値が大きな数や、小さな数であっても、コンピュータで表現することが可能になります。
一般的な浮動小数点の表記は
(-1)符号×仮数×基数指数
になります。
- 情報落ち
コンピュータで扱える数値の有効けた数に限りがあることで発生する誤差の一つで、絶対値の大きい数値と、絶対値の小さい数値を加減算したときに、絶対値の小さい数値が無視されてしまうことです。
100,000,000(1億)と、これに1を加算した100,000,001が何百万(有効けた数3けた)かを考えると、共に100百万になり加算した1が無視されてしまいます。
もっと、「浮動小数点」について調べてみよう。
戻る
一覧へ
次へ
|