Logische Operatoren & Bitoperatoren
AND
Dieser Operator wird verwendet um einen logischen Vergleich von zwei Ausdrücken vorzunehmen. Es wird immer eine bitweise Verknüpfung der zwei Ausdrücke durchgeführt.
Ergebnis = Ausdruck1 AND Ausdruck2
Beispiel
Dieses Beispiel verknüpft verschiedene Zahlen bitweise „UND“:
dim x as integer x = 9 and 3
OR
Dieser Operator wird verwendet um einen logischen ODER-Vergleich von zwei Ausdrücken durchzuführen. Es wird immer eine bitweise Verknüpfung der zwei Ausdrücke durchgeführt.
Ergebnis = Ausdruck1 OR Ausdruck2
Beispiel
Dieses Beispiel verknüpft verschiedene Zahlen bitweise „OR“:
dim x as integer x = 9 or 3
XOR
Dieser Operator wird verwendet um einen logischen Exklusiv-ODER-Vergleich von zwei Ausdrücken durchzuführen. Es wird immer eine bitweise Verknüpfung der zwei Ausdrücke durchgeführt.
Ergebnis = Ausdruck1 XOR Ausdruck2
Beispiel
Dieses Beispiel verknüpft verschiedene Zahlen bitweise „Exklusiv-ODER“:
dim x as integer x = 9 xor 3
NOT
Dieser Operator wird verwendet um einen logische Negation eines Ausdrucks durchzuführen, wenn er in Bedingungen verwendet wird.
In sonstigen Ausdrücken, z.Bsp. bei der Zuweisung oder als Parameter erzeugt er das Einer-Komplement des Ausdrucks.
Ergebnis = NOT Ausdruck
Beispiel
Dieses Beispiel führt eine bitweise Negation durch:
dim x as integer x = not 33 ' Einer-Komplement von 33
<<
Dieser Operator wird verwendet um einen Wert um x Bits nach links zu schieben (Shift-Left). Der Parameter rechts vom Operator ist die Anzahl Bits um die verschoben wird. Die Anzahl Bits kann auch ein Ausdruck oder eine Variable sein. Achtung bei vorzeichenbehafteten Werten! Diese Operation verschiebt alle Bits. Für vorzeichenbehaftete Werte die arithmetische Bit-Schiebefunktion asl() verwenden.
Ergebnis = wert << anzahlBits
Beispiel
' im Ausdruck a = 0b10000001 var = a << 3 ' verschiebt den Wert &b10000001 um 3 bits nach links zu &b00001000 ' im Assembler asm ldi R16,(1 << 3) endasm
>>
Dieser Operator wird verwendet um einen Wert um x Bits nach rechts zu schieben (Shift-Right). Der Parameter rechts vom Operator ist die Anzahl Bits um die verschoben wird. Die Anzahl Bits kann auch ein Ausdruck oder eine Variable sein. Achtung bei vorzeichenbehafteten Werten! Diese Operation verschiebt alle Bits. Für vorzeichenbehaftete Werte die arithmetische Bit-Schiebefunktion asr() verwenden.
Ergebnis = wert >> anzahlBits
Beispiel
' im Ausdruck a = 0b10001000 var = a >> 3 ' verschiebt den Wert &b10001000 um 3 bits nach rechts zu &b00010001 ' im Assembler asm ldi R16,(0b10000000 >> 3) endasm
<<<
Dieser Operator wird verwendet um einen Wert um x Bits nach links zu rotieren (Rotate-Left). Der Parameter rechts vom Operator ist die Anzahl Bits um die verschoben wird. Die Anzahl Bits kann auch ein Ausdruck oder eine Variable sein.Achtung bei vorzeichenbehafteten Werten! Diese Operation rotiert alle Bits. Bei vorzeichenbehafteten, negativen Werten geht das Vorzeichen verloren.
Ergebnis = wert <<< anzahlBits
Hinweis: Operator nicht im Präprozessor verfügbar.
Beispiel
' im Ausdruck a = 0b10000001 var = a <<< 1 ' rotiert den Wert &b10000001 um 1 bit nach links zu &b00000011
>>>
Dieser Operator wird verwendet um einen Wert um x Bits nach rechts zu rotieren (Rotate-Right). Der Parameter rechts vom Operator ist die Anzahl Bits um die rotiert wird. Die Anzahl Bits kann auch ein Ausdruck oder eine Variable sein. Achtung bei vorzeichenbehafteten Werten! Diese Operation rotiert alle Bits. Bei vorzeichenbehafteten, negativen Werten geht das Vorzeichen verloren.
Ergebnis = wert >>> anzahlBits
Hinweis: Operator nicht im Präprozessor verfügbar.
Beispiel
' im Ausdruck a = 0b00000011 var = a >>> 1 ' rotiert den Wert &b00000011 um 1 bit nach rechts zu &b10000001