Difference between revisions of "Operators/de"

From Free Pascal wiki
Jump to navigationJump to search
m (Fixed syntax highlighting)
(8 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
{{Operators}}
 
{{Operators}}
 +
<br>
 +
Zurück zu den [[Pascal basics/de|Pascal Grundlagen]].<br>
 
<br>
 
<br>
 
__TOC__
 
__TOC__
Line 11: Line 13:
 
Die Standardeinstellung für den Compiler ist {$T-}.<br>
 
Die Standardeinstellung für den Compiler ist {$T-}.<br>
 
<br>
 
<br>
 +
==Zuweisungsoperator==
 +
Der Zuweisungsoperator, weist einem Datenfeld einen Wert zu.<br>
 +
<syntaxhighlight lang="pascal">
 +
a := b;
 +
</syntaxhighlight>
  
 
==Relationale Operatoren==
 
==Relationale Operatoren==
Line 81: Line 88:
 
- legt als Vorzeichen fest, dass der Wert negativ ist<br>
 
- legt als Vorzeichen fest, dass der Wert negativ ist<br>
 
Beispiele:
 
Beispiele:
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
   a := +7;
 
   a := +7;
 
   b := -3;
 
   b := -3;
Line 123: Line 130:
 
<br>
 
<br>
 
Beispiele:
 
Beispiele:
<syntaxhighlight>
+
<syntaxhighlight lang="pascal">
 
A shr 1  // Entspricht Ganzzahl DIV 2 (nur dass es schneller geht)
 
A shr 1  // Entspricht Ganzzahl DIV 2 (nur dass es schneller geht)
 
         // (nur für ganzzahlige Datenfelder, das Ergebnis ist ganzzahlig abgerundet)
 
         // (nur für ganzzahlige Datenfelder, das Ergebnis ist ganzzahlig abgerundet)
Line 285: Line 292:
 
<br>
 
<br>
 
<br>
 
<br>
--[[User:Olaf|Olaf]] 07:49, 31 October 2012 (UTC)
+
--[[User:Olaf|Olaf]] 08:30, 4 November 2012 (UTC)
[[Category:Pascal]]{{AutoCategory}}
+
[[Category:FreePascal/de]]{{AutoCategory}}

Revision as of 11:55, 16 January 2020

Deutsch (de) English (en)
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.

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.
= 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 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

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 Element zum Set hinzufügen
exclude Ein Element im Set löschen
in Sieht nach, ob sich ein Element im Set befindet


Klassenoperatoren

is prüft, ob das Objekt von einer bestimmte Klasse ist
as führt eine bedingte Typumwandlung (bedingtes Typecasting) durch


Zeiger-Operatoren

Operator Operation Operandtyp Ergebnistyp Beispiel
+ Zeigeraddition Zeichenzeiger, Integer Zeichenzeiger P + I
- Zeigersubtraktion Zeichenzeiger, Integer Zeichenzeiger P - Q
^ Zeiger-Dereferenzierung Zeiger Basistyp von Zeiger P^
= Gleich Zeiger Boolean P = Q
<> Ungleich Zeiger Boolean P <> Q

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 08:30, 4 November 2012 (UTC)