Operators/de

From Free Pascal wiki
Jump to navigationJump to search

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:

  1. Ganzzahlige- und Fliesskommadatenfelder können auf beiden Seiten des Operators gemischt verwendet werden.
  2. 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ührte 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)