Freigeben über


Xor-Operator (Visual Basic)

Führt einen logischen Ausschluss für zwei Boolean Ausdrücke oder einen bitweisen Ausschluss für zwei numerische Ausdrücke aus.

Syntax

result = expression1 Xor expression2  

Bestandteile

result
Erforderlich. Eine Boolean beliebige oder numerische Variable. Für den booleschen Vergleich result ist der logische Ausschluss (exklusive logische Disjunktion) von zwei Boolean Werten angegeben. Bei bitweisen Vorgängen handelt es sich um einen numerischen Wert, result der den bitweisen Ausschluss (exklusive bitweise Disjunktion) von zwei numerischen Bitmustern darstellt.

expression1
Erforderlich. Beliebiger Boolean oder numerischer Ausdruck.

expression2
Erforderlich. Beliebiger Boolean oder numerischer Ausdruck.

Bemerkungen

Für den booleschen Vergleich ist dies nur dann der Wert, result wenn genau einer von expression1 diesen expression2 ausgewertet wirdTrue.True Dies ist, wenn und nur, wenn expression1 und expression2 als gegensätzige Boolean Werte ausgewertet wird. In der folgenden Tabelle wird veranschaulicht, wie result ermittelt wird.

Wenn expression1 Und expression2 ist Der Wert von result ist
True True False
True False True
False True True
False False False

Hinweis

Im booleschen Vergleich wertet der Xor Operator immer beide Ausdrücke aus, die Prozeduraufrufe umfassen können. Es gibt kein Kurzschluss-Gegenstück zu Xor, da das Ergebnis immer von beiden Operanden abhängt. Informationen zu logischen Kurzschlussoperatoren finden Sie unter "AndAlso Operator " und "OrElse Operator".

Bei bitweisen Vorgängen führt der Xor Operator einen bitweisen Vergleich von identisch positionierten Bits in zwei numerischen Ausdrücken durch und legt das entsprechende Bit result entsprechend der folgenden Tabelle fest.

Wenn Bit in expression1 ist Und bit in expression2 ist Das Bit in result ist
1 1 0
1 0 1
0 1 1
0 0 0

Hinweis

Da die logischen und bitweisen Operatoren eine niedrigere Priorität haben als andere arithmetische und relationale Operatoren, sollten alle bitweisen Vorgänge in Klammern eingeschlossen werden, um eine genaue Ausführung sicherzustellen.

Beispielsweise ist 5 Xor 3 6. Um zu sehen, warum dies der Fall ist, konvertieren Sie 5 und 3 in ihre binären Darstellungen, 101 und 011. Verwenden Sie dann die vorherige Tabelle, um zu bestimmen, dass 101 Xor 011 110 ist, bei dem es sich um die binäre Darstellung der Dezimalzahl 6 handelt.

Datentypen

Wenn die Operanden aus einem Boolean Ausdruck und einem numerischen Ausdruck bestehen, konvertiert Visual Basic den Boolean Ausdruck in einen numerischen Wert (–1 für und 0 für TrueFalse) und führt einen bitweisen Vorgang aus.

Für einen Boolean Vergleich lautet Booleander Datentyp des Ergebnisses . Für einen bitweisen Vergleich ist der Ergebnisdatentyp ein numerischer Typ, der für die Datentypen von expression1 und expression2. Weitere Informationen finden Sie in der Tabelle "Relationale und Bitweise Vergleiche" in den Datentypen der Operatorergebnisse.

Überladen

Der Xor Operator kann überladen werden, was bedeutet, dass eine Klasse oder Struktur ihr Verhalten neu definieren kann, wenn ein Operand den Typ dieser Klasse oder Struktur aufweist. Wenn Ihr Code diesen Operator für eine solche Klasse oder Struktur verwendet, stellen Sie sicher, dass Sie das neu definierte Verhalten verstehen. Weitere Informationen finden Sie unter Operatorprozeduren.

Beispiel 1

Im folgenden Beispiel wird der Xor Operator verwendet, um logische Ausschlüsse (exklusive logische Disjunktion) für zwei Ausdrücke auszuführen. Das Ergebnis ist ein Boolean Wert, der angibt, ob genau einer der Ausdrücke ist True.

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b Xor b > c
secondCheck = b > a Xor b > c
thirdCheck = b > a Xor c > b

Im vorherigen Beispiel werden Ergebnisse von False, Truebzw False. . .

Beispiel 2

Im folgenden Beispiel wird der Xor Operator verwendet, um logische Ausschlüsse (exklusive logische Disjunktion) für die einzelnen Bits von zwei numerischen Ausdrücken auszuführen. Das Bit im Ergebnismuster wird festgelegt, wenn genau eines der entsprechenden Bits in den Operanden auf 1 festgelegt ist.

Dim a As Integer = 10 ' 1010 in binary
Dim b As Integer = 8  ' 1000 in binary
Dim c As Integer = 6  ' 0110 in binary
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (a Xor b)  '  2, 0010 in binary
secondPattern = (a Xor c) ' 12, 1100 in binary
thirdPattern = (b Xor c)  ' 14, 1110 in binary

Im vorherigen Beispiel werden Ergebnisse von 2, 12 bzw. 14 erzeugt.

Siehe auch