右シフト 【right shift】

概要

右シフト(right shift)とは、ビットを指定した数だけ移動させるビットシフト(bit shift)操作のうち、ビットを下位側へ移動させるもの。ビットの上位側を左、下位側を右に記す記法が浸透しているためこのように呼ばれる。

ビットを指定した桁数だけ右に移動する操作を意味する。全体を一律に移動する「論理シフト」(logical shift)の場合、右側に溢れたは消滅し、左側の空いたビットには「0」が補充される。例えば、「00111000」を右に2ビットシフトすると「00001110」となる。

ビットを(正の)整数とみなしたとき、右に1ビットシフトするごとにが1/2になる。先の例で「00111000」は十進数で「56」、2ビット右シフトした「00001110」は「14」であり、ちょうど1/4になっている。これを利用して、整数の計算処理の一部にシフト命令を取り入れることがある。

一方、コンピュータでは負の整数を表したいときに最上位ビットで正負の符号を表す(「0」なら0または正、「1」なら負)場合があるが、これを考慮したビットシフト操作を「算術シフト」(arithmetic shift)という。算術右シフトでは、右端側のビットが溢れて消滅するのは論理シフトと同じだが、左端からは符号ビットと同じが補充される。これにより、負の数の計算においても、右に1ビットシフトするごとにが1/2になるという関係が維持される。

プログラミング言語の中には右シフトを表す演算子を用意しているものがある。C言語やその記法を受け継ぐ多くの言語では「>>」が右シフト演算子となっており、「x=>>2;」と記述すると「xを右に2ビットシフトする」という意味になる。これとは逆に、ビットを左(上位側)に移動するシフト操作は「左シフト」(left shift)という。

(2022.12.14更新)

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

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