フリーキーズ | 独学プログラミング

算術シフト

最終更新日

算術シフトとは、コンピュータや情報科学で使われる特定のタイプのシフト操作のことです。これは、数値の符号(正または負)を保持したまま、数値の桁(通常は2進数)を左または右に移動させるものです。乗算や除算の演算によく使われる。算術シフトには、算術右シフトと算術左シフトの2種類があります。

簡単な例

まず、簡単な例えを使いましょう。数字のブロックが並んでいて、一番左のブロックが数字の符号(正なら0、負なら1)を表していると想像してください。算術シフトでは、ブロックを左右にスライドさせますが、符号のブロックはそのままの位置に保ちます。

2進数を使った例

算術左シフト 算術左シフト:2進数0101は10進数5と等しいとします。算術的に1つ左シフトすると、2進数1010となり、10進数10に等しくなります。左端の桁(0)が変わっていないのは、この数字が正の数であることを意味しています。この場合、算術左シフトは、実質的に元の数を2倍したことになります。

算術右シフト: 2進数の1101は、2の補数表現では10進数の-3に等しいと考えます。左端の桁(1)はそのままで、この数値が負の値であることを示す。この場合、算術右シフトは、元の数を2で割って0に丸めるということを意味します。

まとめ

まとめると、算術シフトとは、計算機で使われるシフト操作の一種で、数値の符号を保持したまま桁を移動させるものです(通常は2進数)。乗算や除算によく使われ、算術右シフトと算術左シフトの2種類がある。