Unterschied zwischen Bitweises Inklusives oder und exklusiv-oder-in 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
Ich verstehe die ersten beiden, aber nicht der Dritte.
Du musst angemeldet sein, um einen Kommentar abzugeben.
XOR erzählt, ob jedes bit ist Verschieden.
1 XOR 1 = 0
1 XOR 0 = 1
0 XOR 1 = 1
0 XOR 0 = 0
In anderen Worten "aber nicht beides"
0011 XOR 0101 = 0110
BITWEISE ODER-Verknüpfung (|) bedeutet normale oder Betrieb ,
BITWISEE Exklusive ODER (^) bedeutet xor Betrieb
Dritte ist eine XOR-operation (Xclusive-ODER)
Es sagt, ODER es sollte ausschließlich:
wo ähnlich wird False(0)
und unähnlich wird True(1).
Also 12 in Binär wäre 1100
Also führen Sie bitweise XOR-hier:
Jede Spalte hat die gleiche Ziffer, entweder beide 1 oder beide 0 sind die
XOR sagt, die beiden sollten unterschiedlich sein. Daher werden alle Nullen
Exklusiv-oder (
XOR
) ist definiert als:Ist, ist es
0
wenn zwei Werte identisch sind,1
wenn Sie unterschiedlich sind.So, mit den zwei bit-Muster, die sind genau gleich, jeder XORed bit wird ausgewertet
0
, da jedes bit entweder1
in beiden Positionen, oder0
in beiden Positionen.als die Operatoren, die Sie verwendet, sind bitweise Operatoren, also die Operanden werden konvertiert
zu bits und dann operator wirkt auf Sie.
hier 12 -> 1100 in binary digits (bits)
sind, und die Vorgänge von &(UND), |(ODER) und ^(Exklusiv-ODER-oder XOR) die Betreiber sind wie folgt:
Ein B & | ^
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0
so, wenn Sie Sie ausführen 12^12:
A=1100
B=1100
A B ^
1 1 0
1 1 0
0 0 0
0 0 0
und 0000 -> 0 in dezimal-system
folglich sind Sie immer 12^12=0 in Ihrer Dritten Antwort