dbLounge
Operatoren
Grundsätzlich kann man zwischen vier Arten von Operatoren unterscheiden:




1. Arithmetische Operatoren:

Arithmetische Operatoren dienen zum Rechnen mit Zahlen. In Darkbasic stehen die Operatoren + (Addition), - (Division), * (Multiplikation) und / (Division) zu Verfügung.
Zusätzlich existiert auch der Operator MOD, der den Restbetrag einer ganzzahligen Division zurückgibt. Beispiel: 12 MOD 5 ergibt 2.
Der Operator + kann auch zum Zusammenfügen von Zeichenketten verwendet werden.




2. Vergleichs-Operatoren:

Vergleichsoperationen führen wie der Name schon sagt einen Vergleich zwischen zwei Zahlenwerten (bzw. die beiden ersten auch Zeichenketten) durch. Es existieren die Operatoren = für gleich, <> für ungleich, >= für größer oder gleich, > für tatsächlich größer, <= für kleiner oder gleich und < für tatsächlich kleiner.
Wenn die angegebene Bedingung zutrifft, ergibt der Vergleich true, ansonsten false.




3. Booleische Operatoren:

Booleische Operatoren verknüpfen mehrere Wahr/Falsch-Vergleiche miteinander. In Darkbasic stehen die booleischen Operatoren AND, OR und XOR zur Verfügung.
Ein mit AND verknüpfter Ausdruck ergibt nur dann true, wenn alle der verknüpften Bedingungen wahr sind.
OR gibt true zurück, wenn mindestesn eine der Bedingungen wahr ist. Bei XOR handelt es sich um einen entweder-oder-Vergleich, es wird nur true zurückgegeben, wenn genau eine der beiden Bedingungen wahr ist.
Das Ergebnis jeder dieser Operationen ist ein booleischer Ausdruck.




4. Bitweise Operatoren:

Schließlich gibt es in Darkbasic noch sechs bitweise Operatoren. Diese vergleichen im Unterschied zu den boleeischen Operatoren nicht nur zwei Bedingungen, sondern führen eine Aktion auf jedes Bit der verglichenen Ganzzahlen-Werte (also auf binärer Ebene) aus:



<< verschiebt alle Bits um die angegebene Anzahl von Stellen nach links. Das/die linke(n) Bit(s) gehen dabei verloren.
Bsp.: %000101 << 2 ergibt %010100



>> verschiebt alle Bits um die angegebene Anzahl von Stellen nach rechts. Das/die rechte(n) Bit(s) gehen dabei verloren.
Bsp.: %010100 >> 2 ergibt %000101



&& führt ein bitweises AND aus, d.h. nur Bits die bei beiden Werten gesetzt sind, bleiben auch im Ergebnis gesetzt.
Bsp.: %1010 && %1001 ergibt %1000



|| führt ein bitweises OR aus, d.h. wenn ein Bit in einem der beiden Werte gesetzt ist, bleiben es auch im Ergebnis gesetzt.
Bsp.: %1010 || %1001 ergibt %1011



~~ führt ein bitweises XOR aus, d.h. nur Bits die nur in jeweils einem der beiden Werte gesetzt sind, bleiben auch im Ergebnis gesetzt.
Bsp.: %1010 ~~ %1001 ergibt %0011



.. führt ein bitweises NOT aus, d.h. die Bits des ersten Operanten werden invertiert, also aus wahr wird falsch und umgekehrt, wobei der 2. Operant keinen Zweck hat.
Bsp.: %1010 .. %1001 ergibt %0101







Anwendung:

Die Operatoren der Gruppen 1 und 4 werden zum Bearbeiten von konkreten Zahlenwerten benutzt. Das Ergebnis kann aber durchaus als Bedingung aufgefasst werden, der Zahlenwert 0 wird dabei als false aufgefasst, alle Zahlenwerte ungleich 0 als true.
Die Operatoren der Gruppen 2 und 3 dienen dem Vergleich von Bedingungen/Booleischen Werten bzw. Zahlenwerten.
Jeder Vergleich ergibt für sich jeweils wieder einen Booleischen Wert.
In Vergleichen können alle Operatoren beliebig miteinander kombiniert und die Reihenfolge ihrer Ausführung durch Klammersetzung bestimmt werden.

Zum Einsatz kommen Vergleiche z.B. in IF-Abfragen oder in Abbruchbedingungen von Schleifen (z.B. WHILE).