次の流れ図は、シフト演算と加算の繰り返しによって2進数の乗算を行う手段を表したものである。 この流れ図の中のa、bの処理の組合せとして、正しいものはどれか。 ここで、乗数と被乗数は符号なしの16ビットで表される。 X、Y、Zは32ビットのレジスタであり、けた送りには論理シフトを用いる。 最下位ビットを第ビットを記す。
答え ア
【解説】 例として、被乗数を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進数の乗算
戻る 一覧へ 次へ