流れ図は、シフト演算と加算の繰り返しによって、2進整数の乗算を行う手順を表したものである。
この流れ図中のa、bの組合せとして、適切なものはどれか。
ここで、乗数と被乗数は符号なしの16ビットで表される。
X 、Y 、Z は32ビットのレジスタであり、けた送りは論理シフトを用いる。
最下位ビットを第0ビットと記す。
a | b | |
ア | Y の第0ビット | X を1ビット左シフト、Y を1ビット右シフト |
イ | Y の第0ビット | X を1ビット右シフト、Y を1ビット左シフト |
ウ | Y の第15ビット | X を1ビット左シフト、Y を1ビット右シフト |
エ | Y の第15ビット | X を1ビット右シフト、Y を1ビット左シフト |
答え ア
【解説】
この流れ図で解はZ であり、Z についての操作は“Z +X → Z ”だけであるので、被乗数X についての操作は左シフトである。
被乗数X の操作が左シフトなので、Y は最下位のけたから見ることになるので、
aに入るのは、Y の第0ビット
bに入るのは、X を1ビット左シフト、Y を1ビット右シフト
(ア)になる。
【キーワード】
・シフト演算