EQV

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » E » EQV

Syntax A: Ergebnis = Ausdruck1 EQV Ausdruck2
Syntax B: Ausdruck1 EQV= Ausdruck2
Typ: Operator
Kategorie: Operatoren

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

Ausdruck1 = Ausdruck1 EQV Ausdruck2

EQV (EQuivalent Value) vergleicht zwei Werte Bit für Bit und setzt im Ergebnis nur dann ein Bit, wenn die entsprechenden Bits in beiden Ausdrücken gleichwertig waren. EQV wird in Bedingungen eingesetzt, wenn beide Aussagen denselben Status haben müssen, also entweder beide wahr oder beide falsch sein müssen.

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

IF (a = 1) EQV (b = 7) THEN
PRINT "beides erfüllt oder beides nicht erfüllt."
ELSE
PRINT "Entweder a <> 1 aber b = 7 oder a = 1 aber b <> 7."
END IF

Beispiel 2: Verknüpfung zweier Zahlen mit EQV:

DIM AS INTEGER z1, z2

z1 =  6
z2 = 10

PRINT z1, BIN(z1, 4)
PRINT z2, BIN(z2, 4)
PRINT "---", "----"
PRINT (z1 EQV z2) AND 15, BIN( (z1 EQV z2) AND 15, 4)
SLEEP

Ausgabe:

  6           0110
 10           1010
---           ----
  3           0011

Anmerkung dazu: Die angewandten AND 15 bewirken, dass nur die letzten vier Bits angezeigt werden. Der Grund dafür ist, dass INTEGER-Variablen aus 32bit bestehen. Die übrigen 28 Bits werden selbstverständlich auch mit EQV verglichen. Würden diese in dieses Beispiel mit einbezogen, dann würde das Beispiel einen Teil seiner Anschaulichkeit verlieren.

Beispiel 3: EQV als kombinierter Operator

DIM AS UBYTE a

a  = &b00110011
PRINT BIN(a, 8)
a EQV= &b01010101
PRINT "01010101"
PRINT "--------"

PRINT BIN(a, 8)
SLEEP

Ausgabe:

00110011
01010101
--------
10011001

Unterschiede zu QB:
Kombinierte Operatoren sind neu in FreeBASIC.

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