Syntax: NOT Ausdruck
Typ: Operator
Kategorie: logische Operatoren
NOT vertauscht die Bits im Quellausdruck; aus 1 wird 0 und aus 0 wird 1. NOT wird in Bedingungen eingesetzt, um eine Aussage ins Gegenteil zu verkehren.
NOT kann mithilfe von OPERATOR überladen werden.
Beispiel 1: NOT in einer IF-THEN-Bedingung:
IF (a = 1) AND NOT (b = 7) THEN
PRINT "a = 1 aber b <> 7."
ELSE
PRINT "Moeglich sind..."
PRINT "a <> 1 aber b = 7"
PRINT "a <> 1 und b <> 7"
PRINT "a = 1 aber b = 7"
END IF
Beispiel 2: Logische Inversion einer Zahl mit NOT
DIM AS UBYTE zahl = 100
PRINT zahl, BIN(zahl, 8)
PRINT "---", "--------"
PRINT (NOT zahl) AND 255, BIN(NOT zahl, 8)
GETKEY
Ausgabe:
100 01100100
--- --------
155 10011011
Anmerkung: Das AND 255 bewirkt hier, dass die Zahl wie ein UBYTE behandelt wird; ohne diesen Operator würde FreeBASIC den Ausdruck 'NOT zahl' zu einem INTEGER konvertieren, was das Beispiel weniger anschaulich gestalten würde.
Hinweis: NOT ist keine Funktion. Die Verwendung der Form
Not(Variable)
kann zu Problemen führen. Ein kleines dazu Beispiel:
NOT(0) + 1
wird behandelt wie
NOT ((0) + 1)
obwohl man diese Interpretation erwarten würde:
(NOT 0) + 1
Unterschiede zu QB: keine
Siehe auch:
AND (Operator), OR (Operator), XOR (Operator), IMP, EQV, Bit Operatoren / Manipulationen