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

流れ図は、シフト演算と加算の繰り返しによって、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ビット左シフト


答え ア


解説
この流れ図で解はZ であり、Z についての操作は“Z +X Z ”だけであるので、被乗数X についての操作は左シフトである。
被乗数X の操作が左シフトなので、Y は最下位のけたから見ることになるので、
 aに入るのは、Y の第0ビット
 bに入るのは、X を1ビット左シフト、Y を1ビット右シフト
(ア)になる。


キーワード
・シフト演算

キーワードの解説
  • シフト演算(ビットシフト)
    数値を右か左にけた移動する演算です。
    1234を右に1ビットシフトした場合、123になります。左に1ビットシフトした場合、12340になります。なお、有効けた数が4けたの場合1234の左1ビットシフトは2340になります。

もっと、「シフト演算」について調べてみよう。

戻る 一覧へ 次へ