C++でのビット演算子の動作規則は何ですか?
C++で使用されるビット演算子は整数型データのバイナリビットを操作するために使用されます。以下はC++でよく使用されるビット演算子とその演算規則です。
- ビットごとのAND演算(&):2つの数値の各バイナリビットにAND演算を適用し、両方の操作数に対応するビットが両方が1の場合、その結果の対応するビットも1となります。それ以外の場合は0となります。
- ビット単位の論理和(|):2つの数値のそれぞれの2進数ビットに対して論理和演算を行い、対応するビットが少なくとも1つが1の場合、結果の対応するビットも1となります。それ以外の場合は0となります。
- ビット単位の排他的論理和(^):2つの数のそれぞれのビットごとに排他的論理和を行い、操作数の対応するビットが同じ場合は結果が0となり、異なる場合は1となります。
- ビット反転(~):数値の各バイナリビットに対して反転操作を行い、1を0に、0を1に変えます。
- 左シフト(<<):指定されたビット数だけ、ある数のすべての2進数ビットを左に移動させ、下位ビットには0を埋める。
- 右シフト(>>):指定された数のすべてのバイナリビットを右に指定したビット数移動させ、最上位ビットを符号ビットで埋めます(符号付き数の場合は符号ビットで埋められ、符号なし数の場合は0で埋められます)。
これらのビット演算子は、効率的なビット操作に使用でき、ビットマスク、ビットクリア、ビット設定などの操作によく使われます。