計算機算術

乗算器で基数4のブースのアルゴリズム(ブース符号化)を使う主な効果はどれか。

  1. A掛け算の結果を、必ず丸めずに正確に求められるようにする
  2. B乗数を符号付きの桁に置き換え、部分積をほぼ半分に減らす
  3. C符号付きの数の掛け算をできなくする代わりに、回路を小さくする
答えと解説を見る

正解:B. 乗数を符号付きの桁に置き換え、部分積をほぼ半分に減らす

普通の掛け算では、乗数の1ビットごとに部分積が1つできるので、nビットならn個の部分積を足す必要があります。基数4のブース符号化では、乗数を2ビットずつ(重なりのある3ビットを見て)−2、−1、0、+1、+2の桁に置き換えるので、部分積はおよそn/2個に減ります。−2倍や+2倍は1ビットずらし、負の値は2の補数で作れるので回路も簡単です。部分積が減る分、足し合わせる回路が小さく速くなります。符号付きの掛け算も自然に扱えます。

  • A. 整数の掛け算はもともと正確で、ブース法の目的ではありません。
  • B. 正しい。部分積の数をほぼ半分に減らします。
  • C. ブース法は符号付きの掛け算を自然に扱えます。
この分野を解く 分野ページへ

計算機算術のほかの問題

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