|
ビット演算子の排他的 OR は、2 つのオペランド間でビットごとの排他的論理和演算を実行します。
ビット演算排他的 OR は、2 つのビットを比較し、両方のビットの値が 0 または 1 の場合は、値 0 を結果に代入します。そうでない場合は、対応する結果のビットに 1 をセットします。排他的 OR 演算子は、オペランドとして数値のみを取ります。
式 ^ 式
式は INTEGER データ型を含んでいる任意の有効な式です。ビット演算のためにバイナリ数値へ変換されます。
異なる INTEGER データ型のオペランドを伴うビット演算排他的 OR では、2 つのオペランドのうち、サイズの小さなデータ型の引数が大きなデータ型へ変換されるか、または大きい方の次に大きなデータ型へ変換されます。たとえば、smallint と integer の間で排他的 OR 演算を実行する場合、smallint 式は integer へ変換されます。
ビット演算排他的 OR にかかわるオペランドが符号付きの場合、結果の値も符号付きになります。
次の SQL クエリは、2 つの数値リテラルで排他的 OR を実行します。
結果は 4 です。
12(shortint とします)のバイナリ表現は 0000 0000 0000 1100 で、8 のバイナリ表現は 0000 0000 0000 1000 です。これらの数値で排他的 OR 演算を実行すると、値 4 になります。
0000 0000 0000 1100 ^ 0000 0000 0000 1000
= 0000 0000 0000 0100 (4)
メモ
キャレット記号(^)は、ユーザー定義名の一部として使用できません。
|