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

選択肢
- 1a:Y の第 0 ビット / b:X を 1 ビット左シフト,Y を 1 ビット右シフト
- 2a:Y の第 0 ビット / b:X を 1 ビット右シフト,Y を 1 ビット左シフト
- 3a:Y の第 15 ビット / b:X を 1 ビット左シフト,Y を 1 ビット右シフト
- 4a:Y の第 15 ビット / b:X を 1 ビット右シフト,Y を 1 ビット左シフト
正解
1. a:Y の第 0 ビット / b:X を 1 ビット左シフト,Y を 1 ビット右シフト
詳しい解説を見る解説を閉じる
解説
筆算による乗算と同じく、乗数 Y の各ビットが 1 のとき被乗数 X を該当桁ずらして加算する。最下位(第 0 ビット)から判定するので a は「Y の第 0 ビット」、加算後は X を 1 ビット左へずらして桁を上げ、Y を 1 ビット右へずらして次のビットを第 0 ビットに送るので b は「X を左シフト,Y を右シフト」となる。(出典: 平成29年度 春期 基本情報技術者試験 午前 問5)
一問一答
科目A 180問+科目B 60問