基礎理論

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

数値を 2 進数で表すレジスタがある。このレジスタに格納されている正の整数 x を 10 倍にする操作はどれか。ここで,桁あふれは起こらないものとする。
  • ア x を 2 ビット左にシフトした値に x を加算し,更に 1 ビット左にシフトする。
  • イ x を 2 ビット左にシフトした値に x を加算し,更に 2 ビット左にシフトする。
  • ウ x を 3 ビット左にシフトした値と,x を 2 ビット左にシフトした値を加算する。
  • エ x を 3 ビット左にシフトした値に x を加算し,更に 1 ビット左にシフトする。

出典:平成29年度 秋期 基本情報技術者試験 午前 問1

答えと解説を見る

正解:ア

覚える知識

左シフトによる2のべき乗倍と加算

2進数をnビット左にシフトすると値は2のn乗倍になる。

この問題で必要なこと

nビット左シフトは2^n倍になる。10x=(4x+x)×2なので、2ビット左シフトにxを加算し、さらに1ビット左シフトすればよい。

ひっかけ

イ・ウ・エはシフト量の組合せを変えて、10倍にならない値(20倍・12倍・18倍)を作っている。

この知識の出題:本試験系 4 回・免除試験 12 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「シフト演算で掛け算・割り算をする」で学ぶ

同じ知識の過去問