Sign in Join
Wiki copytemporary

Revision 1 of 2, by Slawek on 5-2-2021. The page as it is now.

Operators/de


Zurück zu den Pascal Grundlagen.


=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ückgabewert ein untypisierter Pointer.
Ist der Compilerswitch {$T+}, dann ist der Rückgabewert ein typisierter Pointer.
Die Standardeinstellung für den Compiler ist {$T-}.

==Zuweisungsoperator== Der Zuweisungsoperator, weist einem Datenfeld einen Wert zu.\

pascal
a := b;

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.

<table>

<tr>

<td>

=

</td>

<td>

gleich

</td>

</tr>

<tr>

<td>

<>

</td>

<td>

ungleich

</td>

</tr>

<tr>

<td>

<

</td>

<td>

kleiner als

</td>

</tr>

<tr>

<td>

>

</td>

<td>

grösser als

</td>

</tr>

<tr>

<td>

<=

</td>

<td>

kleiner gleich

</td>

</tr>

<tr>

<td>

>=

</td>

<td>

grösser gleich

</td>

</tr>

<tr>

<td>

in

</td>

<td>

Prüft, ob das Element in einem Set des gleichen Datentyps vorkommt.

</td>

</tr>

</table>

\

Binäre arithmetische Operatoren

<table>

<tr>

<td>

+

</td>

<td>

Addition

</td>

</tr>

<tr>

<td>

-

</td>

<td>

Subtraktion

</td>

</tr>

<tr>

<td>

*

</td>

<td>

Multiplikation

</td>

</tr>

<tr>

<td>

/

</td>

<td>

Division

</td>

</tr>

<tr>

<td>

div

</td>

<td>

Ganzzahldivision (Berechnet den ganzzahligen Wert davon, wie oft eine Ganzzahl in einer anderen Ganzzahl vorhanden ist.)

</td>

</tr>

<tr>

<td>

mod

</td>

<td>

Modulodivision (Berechnet den ganzzahligen Rest einer Division zweier Ganzzahlen.)

</td>

</tr>

</table>

\

Unäre arithmetische Operatoren

+ legt als Vorzeichen fest, dass der Wert positiv ist
- legt als Vorzeichen fest, dass der Wert negativ ist
Beispiele:

pascal
  a := +7;
  b := -3;


==Logische Operatoren==

<table>

<tr>

<td>

not

</td>

<td>

Bitweise unäre Negation

</td>

</tr>

<tr>

<td>

and

</td>

<td>

Bitweises und

</td>

</tr>

<tr>

<td>

or

</td>

<td>

Bitweises oder

</td>

</tr>

<tr>

<td>

xor

</td>

<td>

Bitweises exclusives oder

</td>

</tr>

<tr>

<td>

shl

</td>

<td>

Bitweises Shift (verschieben) nach links

</td>

</tr>

<tr>

<td>

shr

</td>

<td>

Bitweises Shift (verschieben) nach rechts

</td>

</tr>

<tr>

<td>

<<

</td>

<td>

Bitweises Shift (verschieben) nach links (Entspricht dem Operator shl)

</td>

</tr>

<tr>

<td>

>>

</td>

<td>

Bitweises Shift (verschieben) nach rechts (Entspricht dem Operator shr)

</td>

</tr>

</table>


Beispiele:

pascal
A shr 1  // Entspricht Ganzzahl DIV 2 (nur dass 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 dass es schneller geht)
         // (nur für ganzzahlige Datenfelder, das Ergebnis ist ganzzahlig)
1 or 2   // Entspricht 3
3 xor 1  // Entspricht 2

\

Wahrheitsoperatoren

<table>

<tr>

<td>

not

</td>

<td>

logische Negation (unary)

</td>

</tr>

<tr>

<td>

and

</td>

<td>

logisches und

</td>

</tr>

<tr>

<td>

or

</td>

<td>

logisches oder

</td>

</tr>

<tr>

<td>

xor

</td>

<td>

logisches xor

</td>

</tr>

</table>

\

String-Operatoren

+ Stringaddition (fügt zwei Strings zusammen)

==Set Operatoren==

<table>

<tr>

<td>

+

</td>

<td>

Vereinigungsmenge

</td>

</tr>

<tr>

<td>

-

</td>

<td>

Differenzmenge

</td>

</tr>

<tr>

<td>

*

</td>

<td>

Schnittmenge

</td>

</tr>

<tr>

<td>

><

</td>

<td>

Symmetrische Differenz

</td>

</tr>

<tr>

<td>

<=

</td>

<td>

Enthält

</td>

</tr>

<tr>

<td>

include

</td>

<td>

Ein Element zum Set hinzufügen

</td>

</tr>

<tr>

<td>

exclude

</td>

<td>

Ein Element im Set löschen

</td>

</tr>

<tr>

<td>

in

</td>

<td>

Sieht nach, ob sich ein Element im Set befindet

</td>

</tr>

</table>

\

Klassenoperatoren

<table>

<tr>

<td>

is

</td>

<td>

prüft, ob das Objekt von einer bestimmte Klasse ist

</td>

</tr>

<tr>

<td>

as

</td>

<td>

führt eine bedingte Typumwandlung (bedingtes Typecasting) durch

</td>

</table>


==Zeiger-Operatoren==

<table>

<tr>

<td>

Operator

</td>

<td>

Operation

</td>

<td>

Operandtyp

</td>

<td>

Ergebnistyp

</td>

<td>

Beispiel

</td>

</tr>

<tr>

<td>

+

</td>

<td>

Zeigeraddition

</td>

<td>

Zeichenzeiger, Integer

</td>

<td>

Zeichenzeiger

</td>

<td>

P + I

</td>

</tr>

<tr>

<td>

-

</td>

<td>

Zeigersubtraktion

</td>

<td>

Zeichenzeiger, Integer

</td>

<td>

Zeichenzeiger

</td>

<td>

P - Q

</td>

</tr>

<tr>

<td>

^

</td>

<td>

Zeiger-Dereferenzierung

</td>

<td>

Zeiger

</td>

<td>

Basistyp von Zeiger

</td>

<td>

P^

</td>

</tr>

<tr>

<td>

=

</td>

<td>

Gleich

</td>

<td>

Zeiger

</td>

<td>

Boolean

</td>

<td>

P = Q

</td>

</tr>

<tr>

<td>

<>

</td>

<td>

Ungleich

</td>

<td>

Zeiger

</td>

<td>

Boolean

</td>

<td>

P <> Q

</td>

</tr>

</table>

Die Priorität der Operatoren

Für die Abarbeitung der Operatoren gibt es eine starre Reihenfolge.\

<table>

<tr>

<td>

Operator

</td>

<td>

Priorität

</td>

<td>

Kategorie

</td>

</tr>

<tr>

<td>

Not, @

</td>

<td>

erste (höchste)

</td>

<td>

Unäre Operatoren

</td>

</tr>

<tr>

<td>

</td>

<td>

zweite

</td>

<td>

Multiplizierende Operatoren

</td>

</tr>

<tr>

<td>

+ - or xor

</td>

<td>

dritte

</td>

<td>

Addierende Operatoren

</td>

</tr>

<tr>

<td>

< <> < > <= >= in is

</td>

<td>

vierte (niedrigste)

</td>

<td>

Relationale Operatoren

</td>

</tr>

</table>



--Olaf 08:30, 4 November 2012 (UTC)


From the Free Pascal wiki, page "Operators/de", as it stood on 2021-05-02 after a change by Slawek, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.