アルゴリズムとプログラミング

平成29年度 春期 基本情報技術者試験 午前 問5

次の流れ図は,シフト演算と加算の繰返しによって 2 進整数の乗算を行う手順を表したものである。この流れ図中の a,b の組合せとして,適切なものはどれか。ここで,乗数と被乗数は符号なしの 16 ビットで表される。X,Y,Z は 32 ビットのレジスタであり,桁送りには論理シフトを用いる。最下位ビットを第 0 ビットと記す。
流れ図: 開始 → [被乗数→X, 乗数→Y, 0→Z, 1→i] → ループ先頭の判定 [a : 1](= のとき (Z+X)→Z を実行、≠ のときはそれを飛ばす)→ [b] → [(i+1)→i] → 判定 [i : 16](> のとき「Z を出力する」→ 終了、≦ のときループ先頭の判定 a : 1 に戻る)。選択肢は a, b の組合せの表(列 a / 列 b)として提示。
答えを選ぶ

出典:平成29年度 春期 基本情報技術者試験 午前 問5(問題文は IPA の公開問題。解説は当サイト作成)

解説に誤りを見つけたら、解説の誤りを報告してください。

答えと解説を見る

正解:ア

覚える知識

シフト演算と加算による2進乗算の流れ図読解

2進乗算は、乗数の各ビットが1のときに桁位置に応じた被乗数を加算することで実現する。

この問題で必要なこと

乗数の最下位ビットが1なら被乗数を加算し、被乗数を左シフト、乗数を右シフトして次の桁へ進む。

ひっかけ

シフト方向の左右や、判定するビット位置(第0ビットと第15ビット)を逆にした組合せ。

この知識の出題:本試験系 1 回・免除試験 1 回(公開問題での観測値)。頻出知識ランキング704位(全1,254件中)。

この知識をアプリで解いて覚える レッスン「数値を扱うアルゴリズムと計算問題」で学ぶ

同じ知識の過去問