平成19年 秋期 ソフトウェア開発技術者 午前 問15

次の流れ図は、シフト演算と加算の繰り返しによって2進数の乗算を行う手段を表したものである。
この流れ図の中のa、bの処理の組合せとして、正しいものはどれか。
ここで、乗数と被乗数は符号なしの16ビットで表される。
X、Y、Zは32ビットのレジスタであり、けた送りには論理シフトを用いる。
最下位ビットを第ビットを記す。

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ビット左シフト


答え ア


解説
例として、被乗数を3(11)と乗数を5(101)として計算を行う。
まず、終了の前の出力処理で「Zを出力」となっているので、乗算の結果はZに格納するのがわかる。
空欄aの次の処理で、Z+X → Zとなっていて、空欄bではXとYの操作しかないので、空欄aには『Yの第0ビット』が1かを見ているのがわかる。すなわち、Z=11になる。
次には、Xの値を1100にして、Z(11)に加える処理が行いたいので、空欄bには『Xを1ビット左シフト、Yを1ビット右シフト』であることがわかる。


キーワード
・2進数の乗算

キーワードの解説

戻る 一覧へ 次へ