Referenz - 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.
Nur wenn beide Operanden vom Typ BOOLEAN sind, wird ein BOOLEAN zurückgegeben.
EQV kann mithilfe von OPERATOR überladen werden.
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, je nach Compilerversion, aus 32 bzw. 64 Bit bestehen. Die übrigen 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
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|