リスキリング|情報技術者への歩み、デジタルを使う側から作る側へ

情報技術者のスキルを身に付け、デジタルを提供する側になれば未来で勝ち組になれると思うので頑張る!

シフト演算についてわかりやすく解説|基礎理論(基本情報技術者)

ここでは、シフト演算についてわかりやすく解説します。

amprime.hatenablog.com

|シフト演算とは?

 シフト演算とは、ビット列の各ビットを左または右に移動させる演算です。

 主な目的は、掛け算や割り算を高速に行うことです。

 

|2種類のシフト演算について

 シフト演算には、論理シフトと算術シフトの2種類があります。

 

<論理シフト>

 ビットを移動させたときに、空いたビットは0で埋められます。つまり、ビット列が左にシフトされると、右端に0が追加されます。右にシフトする場合も同様です。

 

<算術シフト>

 ビットを移動させたときに、空いたビットは符号ビットと同じ値で埋められます。符号ビットは、ビット列の最上位ビットであり、その値が正や負の数を表します。したがって、符号ビットが1の場合、右にシフトすると右端には1が追加されます。符号ビットが0の場合は0が追加されます。

 

 具体的な例を見てみましょう。

 例えば、ビット列「101101」を左に1ビットシフトすると「011010」になります。右に1ビットシフトすると「010110」となります。これは論理シフトの例です。

 次に、同じビット列「101101」を算術シフトしてみましょう。

 左に1ビットシフトすると「011010」となります。右に1ビットシフトすると符号ビットが1なので「110110」となります。

 

基本情報技術者試験から見る

 シフト演算は、基本情報技術者試験の基礎理論として頻繁に出題されます。

 シフト演算の基本的な仕組みを理解しておくことは、試験対策に役立ちます。

 シフト演算はビット列の移動を行い、論理シフトでは空いたビットを0で埋め、算術シフトでは符号ビットと同じ値で埋めます。

 試験勉強の際には、これらのポイントを意識して学習すると良いでしょう。

amprime.hatenablog.com

amprime.hatenablog.com

amprime.hatenablog.com

amprime.hatenablog.com

amprime.hatenablog.com

amprime.hatenablog.com

amprime.hatenablog.com

amprime.hatenablog.com

amprime.hatenablog.com

amprime.hatenablog.com

amprime.hatenablog.com