計算機算術

−6.25 を単精度に変換するとき、符号・指数部・仮数を並べたビット列を16進数で表すとどれか。

  1. A0xC0C80000
  2. B0x40C80000
  3. C0xC0A80000
答えと解説を見る

正解:A. 0xC0C80000

6.25を2進数にすると110.01で、正規化すると 1.1001 × 2² です。符号は負なので1、指数部は 2 + 127 = 129 = 1000 0001、仮数は小数部の1001に0を続けたものです。並べると 1 10000001 1001000…0 で、4ビットずつ区切ると 1100 0000 1100 1000 0000 … となり 0xC0C80000 です。0x40C80000は符号ビットが0で+6.25を表し、0xC0A80000は仮数が0101で −5.25 を表します。

  • A. 正しい。符号1、指数部129、仮数1001で0xC0C80000です。
  • B. 0x40C80000は符号が0で、+6.25です。
  • C. 0xC0A80000は仮数が違い、−5.25を表します。
この分野を解く 分野ページへ

計算機算術のほかの問題

  1. 10進数の0.1を2進数の浮動小数点数で表したときの説明として正しいものはどれか。
  2. 多くのプログラミング言語で、倍精度の 0.1 + 0.2 == 0.3 という比較が偽になる理由として正しいものはどれか。
  3. IEEE 754の単精度のマシンイプシロン(1と、1の次に大きい表せる数との差)はいくらか。
  4. 単精度と倍精度の浮動小数点数で信頼できる10進数の有効桁数の目安の組み合わせとして正しいものはどれか。
  5. IEEE 754の非正規化数(サブノーマル数)の役割として正しいものはどれか。