流れ図は,シフト演算と加算の繰り返しによって,2進整数の乗算を行う手順を表したものである。

この流れ図中のa,bの組合せとして,適切なものはどれか。

ここで,乗数と被乗数は符号なしの16ビットで表される。

X,Y,Zは32ビットのレジスタであり,けた送りは論理シフトを用いる。

最下位ビットを第0ビットと記す。

流れ図
h29haruFE q5
表1
ab
Yの第0ビットXを1ビット左シフト, Yを1ビット右シフト
Yの第0ビットXを1ビット右シフト, Yを1ビット左シフト
Yの第15ビットXを1ビット左シフト, Yを1ビット右シフト
Yの第15ビットXを1ビット右シフト, Yを1ビット左シフト
×不正解です

流れ図の説明から、被乗数がX、乗数がY、そして結果がZとして「X × Y = Z」が成立することが求められます。

流れ図の詳細な情報が不明な場合、論理的に正しい組合せを見つけるには、トレースしやすい数値をXとYに設定し、Zの結果を確認する方法が有効です。

XとYに「0000 0000 0000 0011」(16ビット表記で3)を設定すると、正しい結果「9」を得る組合せが「ア」であると確認できます。

このアルゴリズムは、Yの各ビットに基づいて、ZにXを倍化した値を加算するもので、Yの第nビットが1であれば、ZにX×2^nを加算する仕組みです。

回答数 3
正解率 0.00%