算術シフトと論理シフト

算術シフト

正負を考慮した数値データとして扱うときに使用。

  • 算術左シフト - 開いた右側の桁に 0 を挿入
  • 算術右シフト - 左側の桁に符号ビットと同じ値を挿入
算術左シフト
   11111010
  ↓
   11110100
算術右シフト
   11111010
  ↓
   11111101

論理シフト

ビットの並びとして扱うときに使用し、空いた桁に 0 を挿入する。

論理左シフト
   11111010
  ↓
   11110100
論理右シフト
   11111010
  ↓
   01111101

どういうときに使うのか、役に立つのかが分からない orz