計算機算術

IEEE 754の単精度で、指数部に記録される値が130のとき、実際の指数(2の何乗か)はいくつか。

  1. A3
  2. B130
  3. C2
答えと解説を見る

正解:A. 3

負の指数も表せるように、指数部には実際の指数にバイアスを足した値を記録します。単精度のバイアスは127なので、実際の指数は 130 − 127 = 3 で、2³ = 8 を仮数に掛けることになります。指数部が127なら2⁰ = 1倍、1なら2⁻¹²⁶倍です。指数部の0とすべて1(255)は、非正規化数や無限大・NaNのために予約されています。130をそのまま指数とするのはバイアスを忘れた誤りです。

  • A. 正しい。130 − 127 = 3です。
  • B. 130はバイアスを引く前の記録値です。
  • C. 2はバイアスを128と誤った場合の値です。
この分野を解く 分野ページへ

計算機算術のほかの問題

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