web-dev-qa-db-ja.com

ビット単位の包括的論理和と排他的論理和の違いjava

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番目は理解していません。

8
PSR

XORは、各ビットが異なるかどうかを示します。

1 XOR 1 = 0
1 XOR 0 = 1
0 XOR 1 = 1
0 XOR 0 = 0

言い換えれば、「両方ではなくどちらか」

0011 XOR 0101 = 0110

18
Mel Nicholson

BITWISE INCLUSIVE OR(|)は通常の操作を意味しますまたは操作、

BITWISEE ExCLUSIVE OR(^)はxor演算を意味します

6

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は、両方が異なる必要があることを示しています。したがって、すべてゼロです。

3
Lokesh

排他的論理和(XOR)は次のように定義されます。

0 ^ 0 = 0
1 ^ 0 = 1
0 ^ 1 = 1
1 ^ 1 = 0

つまり、2つの値が同じ場合は0であり、異なる場合は1です。

したがって、完全に等しい2つのビットパターンが与えられると、各ビットは両方の位置に0を持つか、両方の位置に1を持つため、各XORされたビットは0と評価されます。

1
Yuushi