ここでは、シフト演算についてわかりやすく解説します。
|シフト演算とは?
シフト演算とは、ビット列の各ビットを左または右に移動させる演算です。
主な目的は、掛け算や割り算を高速に行うことです。
|2種類のシフト演算について
シフト演算には、論理シフトと算術シフトの2種類があります。
<論理シフト>
ビットを移動させたときに、空いたビットは0で埋められます。つまり、ビット列が左にシフトされると、右端に0が追加されます。右にシフトする場合も同様です。
<算術シフト>
ビットを移動させたときに、空いたビットは符号ビットと同じ値で埋められます。符号ビットは、ビット列の最上位ビットであり、その値が正や負の数を表します。したがって、符号ビットが1の場合、右にシフトすると右端には1が追加されます。符号ビットが0の場合は0が追加されます。
具体的な例を見てみましょう。
例えば、ビット列「101101」を左に1ビットシフトすると「011010」になります。右に1ビットシフトすると「010110」となります。これは論理シフトの例です。
次に、同じビット列「101101」を算術シフトしてみましょう。
左に1ビットシフトすると「011010」となります。右に1ビットシフトすると符号ビットが1なので「110110」となります。
|基本情報技術者試験から見る
シフト演算は、基本情報技術者試験の基礎理論として頻繁に出題されます。
シフト演算の基本的な仕組みを理解しておくことは、試験対策に役立ちます。
シフト演算はビット列の移動を行い、論理シフトでは空いたビットを0で埋め、算術シフトでは符号ビットと同じ値で埋めます。
試験勉強の際には、これらのポイントを意識して学習すると良いでしょう。