NOT

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » N » NOT

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