論理シフト
論理シフトとは、符号なしの2進数のビットパターンを右、あるいは、左へずらすことである。
論理シフトは、ビットパターンを右へシフトした場合、右端のビットが切り捨てられ、左端の空いた部分に「0」を挿入する。例えば、2進数の「00010100」(10進数で20)について、右へ2ビットシフトした場合は「00000101」(10進数で5)になる。一方、左へシフトした場合は、左端の2ビット分が切り捨てられ、右端の空いた部分に「0」を挿入するので「01010000」(10進数で80)になる。
論理シフトをシフト演算子で表す場合、右へのシフトは「>>」、左へのシフトは「<<」を用いる。ビットパターンをxとし、シフトする数をnとした場合、「x=x>>n」、「x=<<n」のように表すことができる。
情報処理: | ニューロコンピュータ ラップアラウンド 例示字形 論理シフト ストリーム 算術シフト セマンティックWeb |
論理シフト
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/30 05:01 UTC 版)
論理シフトでは、右シフトのときも空いたビットをゼロにする。他は算術シフトと同様である。したがって、論理シフトは符号無しの二進数を扱うのに適していて、算術シフトは2の補数表現の符号付き二進数を扱うのに適している。
※この「論理シフト」の解説は、「ビット演算」の解説の一部です。
「論理シフト」を含む「ビット演算」の記事については、「ビット演算」の概要を参照ください。
- 論理シフトのページへのリンク