計算機算術

符号なしの8ビットの数どうしを掛けたとき、結果を桁あふれなく表すのに必要なビット数はどれか。

  1. A8ビット
  2. B9ビット
  3. C16ビット
答えと解説を見る

正解:C. 16ビット

8ビットの符号なしの数の最大値は255なので、最大の積は 255 × 255 = 65025 です。これは 2¹⁶ = 65536 より小さく 2¹⁵ = 32768 より大きいので、16ビットあれば必ず表せ、15ビットでは足りません。一般に、nビットとmビットの数の積は n + m ビットで表せます。そのため乗算器の出力は入力の2倍の幅をもつのが普通です。9ビットは足し算の結果(和は n + 1 ビット)に必要な幅です。

  • A. 8ビットでは255までしか表せず、積はあふれます。
  • B. 9ビットは足し算の結果に必要な幅です。
  • C. 正しい。最大の積65025は16ビットで表せます。
この分野を解く 分野ページへ

計算機算術のほかの問題

  1. 整数 x を10倍する計算を、掛け算の命令を使わずにシフトと足し算で行う式として正しいものはどれか。
  2. 一般的な整数の除算器(1ビットずつ商を求める回復型・非回復型など)が、乗算器より遅くなりやすい理由として正しいものはどれか。
  3. 8ビットの符号付き整数で −8(1111 1000)を算術右シフトで1ビット右にずらした結果はどれか。
  4. C言語で、int型の −7 / 2 と −7 >> 1(算術右シフトの場合)の結果の組み合わせとして正しいものはどれか。
  5. C言語で、32ビットの符号なし整数(unsigned int)の 0 から 1 を引いた結果はどれか。