計算機算術

IEEE 754の正規化数で、仮数の先頭の1を記録しない(隠れビット)ことの効果として正しいものはどれか。

  1. A先頭の1を省くと、負の数を表せるようになる
  2. B同じビット数で精度が1ビット分増える
  3. C先頭の1を省くと、計算の結果が必ず正確になる
答えと解説を見る

正解:B. 同じビット数で精度が1ビット分増える

2進数で正規化すると、0以外の数は必ず「1.xxx × 2^指数」の形になり、先頭は常に1です。決まっている1をわざわざ記録する必要はないので省き、その分のビットを小数部に使います。そのため単精度では仮数の記録が23ビットでも、精度は24ビットになります。ただし指数部がすべて0の非正規化数では先頭を0とみなします。負の数は符号ビットで表し、丸め誤差がなくなるわけでもありません。

  • A. 負の数は符号ビットで表します。
  • B. 正しい。決まっている1を省き、精度を1ビット稼ぎます。
  • C. 丸め誤差がなくなるわけではありません。
この分野を解く 分野ページへ

計算機算術のほかの問題

  1. 10進数の1.0を、IEEE 754の単精度で表したビット列を16進数で書くとどれか。
  2. −6.25 を単精度に変換するとき、符号・指数部・仮数を並べたビット列を16進数で表すとどれか。
  3. 10進数の0.1を2進数の浮動小数点数で表したときの説明として正しいものはどれか。
  4. 多くのプログラミング言語で、倍精度の 0.1 + 0.2 == 0.3 という比較が偽になる理由として正しいものはどれか。
  5. IEEE 754の単精度のマシンイプシロン(1と、1の次に大きい表せる数との差)はいくらか。