基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [平成31年春午前] [平成31年春午後]

平成29年 春期 基本情報技術者 午前 問05
問05   シフト演算

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

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

解答←クリックすると正解が表示されます

解説

 例えば、X=1102、Y=1012 の場合、X × Y は、次のようになる。
  110
×101
------
  110
   0
110
------
11110
計算の手順は以下のようになる。
  1. 結果を格納するZを0にする。
  2. Yの最下位ビットが1の場合のときだけ、ZにXを加算する。
  3. Xを1ビット左シフトする。
  4. Yを1ビット右シフトする。
  5. 16 回繰り返す。

【平成18年春 問15】


[←前の問題] [次の問題→] [問題一覧表] [分野別] [キーワード索引] [基本情報技術者試験TOP ]