論理シフトとは?
論理シフトは、コンピュータの演算処理の一つで、2進数を構成するビット列を、左または右に一定数だけずらす操作です。これは、乗算や除算、ビットマスクなどの処理に利用されます。
論理シフトの種類
論理シフトには、以下の2種類があります。
- 左論理シフト: ビット列を左にずらす操作です。左に1ビットずらすと、2倍になります。
- 右論理シフト: ビット列を右にずらす操作です。右に1ビットずらすと、2分の1になります。
論理シフトの例
例えば、10進数10を2進数に変換すると、1010
となります。
- 左論理シフト:
1010
を左に1ビットずらすと、10100
となり、10進数20になります。これは、2倍になったことを意味します。 - 右論理シフト:
1010
を右に1ビットずらすと、101
となり、10進数5になります。これは、2分の1になったことを意味します。
論理シフトの用途
論理シフトは、以下のような用途で利用されます。
- 乗算: 左論理シフトは、2の累乗を表すために利用できます。
- 除算: 右論理シフトは、2で割るために利用できます。
- ビットマスク: 特定のビット列を抽出するために利用できます。
論理シフトの注意点
論理シフトは、符号ビットを含むすべてのビットをシフトします。そのため、符号付きの数をシフトすると、符号が変わってしまう可能性があります。
まとめ
論理シフトは、コンピュータの演算処理において重要な役割を果たす操作です。左論理シフトは2倍、右論理シフトは2分の1になることを覚えておくと、理解しやすくなります。
参考資料
- 論理シフトとは? わかりやすく解説 Weblio辞書: https://www.weblio.jp/content/%E8%AB%96%E7%90%86%E3%82%B7%E3%83%95%E3%83%88
- 論理シフト: コンピュータサイエンスでは、論理シフトは、オペランドのすべてのビットをシフトするビット単位の演算です。 2つの基本バリアントは、論理左シフトと論理右シフトです。これは、左に1シフトしたり、右にnシフトしたりするなど、特定の値をシフトするビット位置の数によってさらに変調されます。: https://en.wikipedia.org/wiki/Logical_shift