XOR (Operator)

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » X » XOR (Operator)

Syntax A: Ergebnis = Ausdruck1 XOR Ausdruck2
Syntax A: Ausdruck1 XOR= Ausdruck2
Typ: Operator
Kategorie: Operatoren

XOR kann als einfacher (Syntax A) und kombinierter (Syntax B) Operator eingesetzt werden. Syntax B ist eine Kurzform von

Ausdruck1 = Ausdruck1 XOR Ausdruck2

XOR steht für exklusives OR, bzw. "entweder das eine oder das andere". Ähnlich wie OR setzt es im Ergebnis das Bit, wenn eines der beiden Bits in Ausdruck1 und Ausdruck2 gesetzt ist; wenn jedoch beide gesetzt sind, wird das Bit im Ergebnis nicht gesetzt. Ebenso wird es nicht gesetzt, wenn beide Bits in den Ausdrücken nicht gesetzt sind.

XOR wird in Bedingungen verwendet, wenn eine Aussage erfüllt sein muss, jedoch nicht beide erfüllt sein dürfen.

XOR kann mithilfe von OPERATOR überladen werden.

Beispiel 1: XOR in einer IF-THEN-Bedingung:

IF (a = 1) XOR (b = 7) THEN
  PRINT "Entweder a = 1 oder b = 7, aber nicht beides zugleich."
ELSE
  PRINT "a <> 1 und b <> 7 oder a = 1 und b = 7."
END IF

Beispiel 2: Kontravalenz zweier Zahlen mit XOR:

DIM AS INTEGER z1, z2

z1 = 6
z2 = 10

PRINT z1, BIN(z1, 4)
PRINT z2, BIN(z2, 4)
PRINT "---", "----"
PRINT z1 XOR z2, BIN(z1 XOR z2, 4)
SLEEP

Ausgabe:

  6           0110
 10           1010
---           ----
 12           1100

Beispiel 3: XOR als kombinierter Operator

DIM AS INTEGER Checkboxen

' simuliere Anklicken von Checkbox Nr 5:

Checkboxen XOR= (1 SHL 5)

Wie Sie sehen, kann XOR benutzt werden, um ein einzelnes Bit oder mehrere Bits bequem zu invertieren. Der Ausdruck (1 SHL 5) entspricht &b100000. Ein XOR mit 0 bewirkt, dass der Status des Bits erhalten bleibt; ein XOR mit 1 löscht ein gesetztes Bit und setzt eines, das zuvor nicht gesetzt war.

Unterschiede zu QB:
Kombinierte Operatoren sind neu in FreeBASIC.

Siehe auch:
XOR (Methode), AND (Operator), NOT, OR (Operator), IMP, EQV, Bit Operatoren / Manipulationen