スポンサーリンク

【応用情報技術者試験】シフト演算を5分で理解!

「シフト演算って何…?」

応用情報技術者試験では毎年のように出題される超頻出テーマですが、

  • 左シフトと右シフトの違いは?
  • なぜビットをずらすの?
  • 掛け算・割り算になるって本当?
  • 論理シフトと算術シフトは何が違うの?

で苦手な人が非常に多い分野です。

この記事では、

  • シフト演算とは?
  • 左シフト・右シフト
  • 論理シフト・算術シフト
  • 覚え方
  • 試験での頻出ポイント

を5分で理解できるように解説します!


まず結論

シフト演算

「ビットを左右にずらす演算」


ビットを1つ動かすだけで、

2倍・2分の1の計算ができます。


シフト演算とは?

超重要!

例えば

0011

という4ビットがあります。

これを左右へ移動させる操作が

シフト演算

です。


左シフトとは?

超頻出!

ビットを

← 左

へ1つずらします。

例えば

0011

左へ1ビット

0110

になります。


10進数で考えると

0011=3

0110=6

つまり

2倍

になります。


左シフトのポイント

超重要!

左へ1ビット

×2


左へ2ビット

×4


左へ3ビット

×8


右シフトとは?

超頻出!

ビットを

→ 右

へ1つずらします。

例えば

1000

右へ1ビット

0100

になります。


10進数で考えると

1000=8

0100=4

つまり

2分の1

になります。


右シフトのポイント

超重要!

右へ1ビット

÷2


右へ2ビット

÷4


右へ3ビット

÷8


イメージ

左シフト

×2

右シフト

÷2


論理シフトとは?

応用情報で頻出!

空いた場所に

必ず0

を入れます。

例えば

0011

左へ

0110

右へ

0001

算術シフトとは?

超頻出!

負の数を扱うため、

一番左の

符号ビット

を保持します。

例えば

1100

を右シフトすると

1110

になります。


論理シフトと算術シフトの違い

超頻出!

比較論理シフト算術シフト
空いた場所0を入れる符号ビットを維持
主な用途一般的なビット操作負数の計算
符号考慮しない考慮する

計算例

例えば

0101

(5)

を左へ1ビット

1010

(10)


右へ1ビット

0010

(2)


試験での覚え方

超重要!

左シフト

×2


右シフト

÷2


論理シフト

0を入れる


算術シフト

符号を残す


よくあるひっかけ

「左シフトは÷2になる」

→ ❌違う!

左シフトは

×2


「右シフトは×2になる」

→ ❌違う!

右シフトは

÷2


「論理シフトは符号を保持する」

→ ❌違う!

符号を保持するのは

算術シフト


応用情報で超頻出

かなり狙われる👇

  • シフト演算
  • 左シフト
  • 右シフト
  • 論理シフト
  • 算術シフト
  • ビット演算

1分で復習!

左シフト

×2


右シフト

÷2


論理シフト

0を入れる


算術シフト

符号を保持する


超重要

  • 左へ1ビット=×2
  • 右へ1ビット=÷2
  • 論理シフト=空きを0で埋める
  • 算術シフト=符号ビットを維持する
  • ビット演算の定番問題!

練習問題

問題

2進数「0011」を左に1ビット論理シフトした結果として正しいものはどれか。

ア 0001

イ 0110

ウ 1100

エ 1110


解答

正解:イ

解説

「0011」を左に1ビット移動すると、

0011
↓
0110

まとめ

シフト演算とは

「ビットを左右へずらす演算」


超重要

  • 左シフト=×2
  • 右シフト=÷2
  • 論理シフトは0を入れる
  • 算術シフトは符号ビットを維持する
  • 左右どちらへ何ビット移動するかが頻出

まずは、

「左=2倍」

「右=2分の1」

このイメージを持つと、シフト演算の問題が一気に解けるようになります!


知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…

まずは無料でキャリア相談

コメント