IMP

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » I » IMP

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

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

Ausdruck1 = Ausdruck1 IMP Ausdruck2

IMP ist ein bitweiser Operator, der dieselbe Funktion hat wie

(NOT a) OR b.

Er wird benutzt, um logische Folgerungen auszuwerten; das Ergebnisbit wird nur dann nicht gesetzt, wenn das zweite Operanden-Bit nicht gesetzt ist, während das Erste gesetzt ist.

IMP kann mithilfe von OPERATOR überladen werden.

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

IF (a = 1) IMP (b = 7) THEN
PRINT "Moeglich sind:"
PRINT "a = 1 und b = 7"
PRINT "a <> 1 aber b = 7"
PRINT "a <> 1 und b <> 7"
ELSE
PRINT "a = 1 aber b <> 7."
END IF

Beispiel 2: Verknüpfung zweier Zahlen mit IMP:

DIM AS INTEGER z1, z2

z1 = 6
z2 = 10

PRINT z1, BIN(z1, 4)
PRINT z2, BIN(z2, 4)
PRINT "---", "----"
PRINT (z1 IMP z2) AND 15, BIN( (z1 IMP z2) AND 15, 4)
GETKEY

Ausgabe:

  6           0110
 10           1010
---           ----
 11           1011

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 IMP verglichen. Würden diese in dieses Beispiel miteinbezogen, würde das Beispiel einen Teil seiner Anschaulichkeit verlieren.

Beispiel 3: IMP als kombinierter Operator

DIM AS UBYTE a

a = &B00110011
PRINT BIN(a, 8)
a IMP= &B01010101
PRINT "01010101"
PRINT "--------"

PRINT BIN(a, 8)
GETKEY

Ausgabe:

00110011
01010101
--------
11011101

Unterschiede zu QB:
Kombinierte Operatoren sind neu in FreeBASIC.

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