Operators/de
│
Deutsch (de) │
English (en) │
Die FreePascal Operatoren
Adressoperator
Der Adressoperator @ gibt die Anfangsadresse einer Variablen, einer Prozedur oder einer Funktion zurück.
Ist der Compilerswitch {$T-} dann ist der Rückgabewerte ein untypisierter Pointer.
Ist der Compilerswitch {$T+} dann ist der Rückgabewerte ein typisierter Pointer.
Die Standardeinstellung für den Compiler ist {$T-}.
Relationale Operatoren
Folgende Operationen sind möglich:
- Ganzzahlige- und Fliesskommadatenfelder können auf beiden Seiten des Operators gemischt verwendet werden.
- Short-, Ansi- und Widestringdatenfelder können auf beiden Seiten des Operators gemischt verwendet werden.
= gleich
<> ungleich
< kleiner als
> grösser als
<= kleiner gleich
>= grösser gleich
in Prüft, ob das Element in einem Set des gleichen Datentyps vorkommt.
Binäre arithmetische Operatoren
+ Addition
- Subtraktion
* Multiplikation
/ Division
div Ganzzahldivision (Berechnet den ganzzahligen Wert davon, wie oft eine Ganzzahl in einer anderen Ganzzahl vorhanden ist.)
mod Modulodivision (Berechnet den ganzzahligen Rest einer Division zweier Ganzzahlen.)
Unäre arithmetische Operatoren
+ legt als Vorzeichen fest, dass der Wert positiv ist
- legt als Vorzeichen fest, dass der Wert negativ ist
Beispiele:
a := +7;
b := -3;
Logische Operatoren
not Bitweise unäre negation
and Bitweises und
or Bitweises oder
xor Bitweises exclusives oder
shl Bitweises Shift (verschieben) nach links
shr Bitweises Shift (verschieben) nach rechts
<< Bitweises Shift (verschieben) nach links (Entspricht dem Operator shl)
>> Bitweises Shift (verschieben) nach rechts (Entspricht dem Operator shr)
Beispiele:
A shr 1 // Entspricht Ganzzahl DIV 2 nur das es schneller geht
// (nur für ganzzahlige Datenfelder, das Ergebnis ist ganzzahlig abgerundet)
Not 1 // Entspricht -2
Not 0 // Entspricht -1
Not -1 // Entspricht 0
B shl 2 // Entspricht Ganzzahl * 4 nur das es schneller geht
// (nur für ganzzahlige Datenfelder, das Ergebnis ist ganzzahlig)
1 or 2 // Entspricht 3
3 xor 1 // Entspricht 2
Wahrheits Operatoren
not | logische negation (unary) |
and | logisches und |
or | logisches oder |
xor | logisches xor |
String Operatoren
+ Stringaddition (fügt zwei Strings zusammen)
Set Operatoren
+ | Vereinigungsmenge) |
- | Differenzmenge |
* | Schnittmenge |
>< | Symmetrische Differenz |
<= | Enthält |
include | Ein Elememt zum Set hinzufügen |
exclude | Ein Element im Set löschen |
in | Sieht nach, ob sich ein Element im Set befindet |
Klassen Operatoren
is | prüft, ob das Objekt von einer bestimmte Klasse ist |
as | führt eine bedingte Typumwandlung (bedingtes Typecasting) durch |
Die Priorität der Operatoren
Für die Abarbeitung der Operatoren gibt es eine starre Reihenfolge.
Operator | Priorität | Kategorie |
Not, @ | erste (höchste) | Unäre Operatoren |
* / div mod and shl shr as << >> | zweite | Multiplizierende Operatoren |
+ - or xor | dritte | Addierende Operatoren |
< <> < > <= >= in is | vierte (niedrigste) | Relationale Operatoren |
--Olaf 17:09, 11 October 2012 (UTC)