ビット演算子 【?:】 bitwise operator
ビット演算(bitwise operation)はコンピュータ上で多用される演算の一種で、対象データをビット列(2進数の0と1の羅列)とみなして操作を行う。大きく分けて、ビット列の左右の移動(シフト)や回転(ローテート)を行うものと、ビット単位の論理演算を行うものがある。
このうち、多くの高水準プログラミング言語に用意されているのはシフト演算子とビット論理演算子である。演算子の種類や記法は言語によって異なるが、C言語の演算子の体系を引き継いでいる言語(C++言語やC#、Java、JavaScriptなど)では多くが共通している。
これらの言語では右シフト演算子が「>>」、左シフト演算子が「<<」である。「x<<2」は「xの値を左に2ビットシフト」を意味する。複合代入演算子を用いて「x<<=2」のように記述することも多い。言語によっては「<<」「>>」が算術シフト(符号ビットは不動)、「<<<」「>>>」が論理シフト(全ビットを移動)となっている。
また、ビット単位の論理演算を行う演算子としては、ビット否定(NOT)が「~」、ビット論理和(OR)が「|」、ビット論理積(AND)が「&」、ビット排他的論理和(XOR)が「^」となっている。ちなみに、条件式や真偽値に用いる論理演算子は否定が「!」、論理和が「||」、論理積が「&&」である。
(2022.8.22更新)