public class Operators {
public static void main(String[] args) {
int a = 12;
System.out.println("Bitwise AND:"+(12&12));
System.out.println("Bitwise inclusive OR:"+(12|12));
System.out.println("Bitwise exclusive OR:"+(12^12));
}
}
OUTPUT:
Bitwise AND:12
Bitwise inclusive OR:12
Bitwise exclusive OR:0
私は最初の2つは理解していますが、3番目は理解していません。
XORは、各ビットが異なるかどうかを示します。
1 XOR 1 = 0
1 XOR 0 = 1
0 XOR 1 = 1
0 XOR 0 = 0
言い換えれば、「両方ではなくどちらか」
0011 XOR 0101 = 0110
BITWISE INCLUSIVE OR(|)は通常の操作を意味しますまたは操作、
BITWISEE ExCLUSIVE OR(^)はxor演算を意味します
3つ目はXOR演算(排他的論理和)
ORは排他的である必要があります:類似はFalse(0)であり、非類似はTrue(1)です。
したがって、バイナリの12は1100になります
したがって、ビット単位でXORここで実行します:
1 1 0 0
1 1 0 0
---------
0 0 0 0
---------
すべての列の桁数は同じで、両方が1であるか、両方が0であるXORは、両方が異なる必要があることを示しています。したがって、すべてゼロです。
排他的論理和(XOR
)は次のように定義されます。
0 ^ 0 = 0
1 ^ 0 = 1
0 ^ 1 = 1
1 ^ 1 = 0
つまり、2つの値が同じ場合は0
であり、異なる場合は1
です。
したがって、完全に等しい2つのビットパターンが与えられると、各ビットは両方の位置に0
を持つか、両方の位置に1
を持つため、各XORされたビットは0
と評価されます。