1. 基本情報技術者講座トップページ
  2. 基本情報技術者試験過去問題
  3. 問1から問10
  4. 問2解説
IT関連の練習問題(ITキャパチャージ)
リクルートが運営するキーマンズネットに無料会員登録することで、基本情報技術者で出題されるIT関連の問題を解くことができます。また、基本情報技術者試験の勉強で用語を調べるときにIT単語帳は簡単に調べられほとんどの用語をカバーしているのでたいへん便利です。基本情報技術者試験合格のためにぜひ、無料会員登録をしておきたいサイトです。

基本情報技術者試験平成19年秋期問2解説

解答:ア

2進数において乗算と除算はシフト演算を用いておこなうことができる。シフト演算とは、2進数を左右にずらして演算をおこなうことである。

シフトの方法は以下の3種類がある。

算術シフト
2進数の乗算や除算に用いる
論理シフト
2進数を単純にシフト(ずらす)ときに用いる
循環シフト
シフトによってあふれた最上位のビットの値を最下位ビットに入れる。

この問題では、3倍する乗算のため、算術シフトで考える。算術シフトは以下の方法でシフトをおこなう。

左にシフト
最上位のビット(符号ビット)はそのままで、それ以下のビットをシフトする。シフトによって空いたビットには0を入れる
右にシフト
最上位のビットはシフトさせない。空いたビットには、最上位のビットと同じ値を入れる

例えば8ビットの2進数00000110を左に1ビットシフトすると、00001100となる。

シフト演算は、nをシフト回数をnとするとき、左にシフトすると、2n、右にシフトすると、2-n倍(1/2n)になる。

したがって、左に1回シフトすると、2倍、2回シフトすると4倍になる。では、3倍はどのようにすればよいのだろうか。

数値aを3倍するとき、3aと表すことができる。これを変形すると、以下のようになる。

3a=2a+a

つまり、数値を2倍したものと、その数値を加えたものが3倍である。よって、左に1回シフトしたものと数値を加えたものを解答群から見つければよい。解答群それぞれの数値の下位けたのゼロに注目すれば分かりやすい。ゼロの数がシフト回数である。

解答群のアは最下位のけたが0になっているので左に1回シフトしている。そして、シフト結果に数値を加えているので、数値を3倍している。

このページの先頭