論理シフト 【logical shift】

概要

論理シフト(logical shift)とは、ビットを指定した数だけ右または左にずらすビットシフト(bit shift)操作のうち、正負の符号ビットの存在を考慮しないもの。全ビット一律に移動させる。

ビットシフト操作はビットを右または左に指定の数だけ移動する操作だが、論理シフトでは最上位ビットも他の残りのビットと区別せず、ビット列全体を左右に移動させる。移動する方向と反対側に新たに現れるビットには「0」を補充する。

コンピュータでは負の数を表現したい場合に、最上位ビットと正負の符号を表す符号ビットとして、0または正なら「0」、負なら「1」とする規則を用いることが多いが、論理シフトは符号ビットを特別視せず移動してしまうため、符号付き整数の算術的な演算に用いることはできない。

例えば、「10011100」を右に2ビットシフトすると「00100111」となる。これらのビット符号付き整数とみなした場合、「10011100」は十進数で「-25」だが、「00111001」は「57」となる。正の数を右に2ビットシフトすると4で割るのと同じ効果があるが、負の数では算術計算は成り立たない。

一方、最上位ビットを固定して変化させず、残りのビットを左右に移動させる処理をビットシフト操作を「算術シフト」(arithmetic shift)という。左にシフトする場合は右端に「0」を補充するが、右にシフトする場合は左端に符号ビット(負なら「1」)を補充する。これにより、負の数をシフトしたときも1ビット移動するごとに2倍あるいは1/2倍となることが保証される。

(2022.12.14更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる