C++のXOR演算子の演算規則は何ですか?

C++のXOR演算子(^)の計算ルールは次のとおりです。

  1. もし2つのオペランドが整数型であれば、ビットごとの排他的論理和演算が行われる。つまり、2つのオペランドのそれぞれの対応するバイナリビットが排他的論理和演算される。対応するバイナリビットが同じ場合、結果は0となり、対応するバイナリビットが異なる場合は結果は1となる。
  2. もし2つのオペランドが両方ともブール型である場合、論理的な排他的論理和演算が行われ、つまり、2つのオペランドのうち1つだけが真の場合に結果は真となり、それ以外の場合は偽となります。
  3. もし1つのオペランドが整数型であり、もう1つのオペランドがブール型である場合、ブール型は整数型に変換され、ビットごとの排他的論理和演算が行われます。
  4. もし一つのオペランドがポインタ型であり、もう一つのオペランドが整数型であれば、整数型はポインタ型に変換されてからビットごとの排他的論理和演算が行われます。

C++では、排他的論理和演算子は短絡評価されません。つまり、前のオペランドが真であるかどうかに関係なく、後のオペランドが常に計算されます。

bannerAds