Pascal - Operatoren
Ein Operator ist ein Symbol, das den Compiler anweist, bestimmte mathematische oder logische Manipulationen durchzuführen. Pascal erlaubt die folgenden Arten von Operatoren:
- Rechenzeichen
- Vergleichsoperatoren
- boolesche Operatoren
- Bitoperatoren
- Operatoren festlegen
- String-Operatoren
Lassen Sie uns die arithmetischen, relationalen, booleschen und Bitoperatoren einzeln diskutieren. Wir werden die Set-Operatoren und String-Operationen später diskutieren.
Rechenzeichen
Die folgende Tabelle zeigt alle von Pascal unterstützten arithmetischen Operatoren. Variable annehmenA hält 10 und variabel B hält 20, dann -
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
+ | Fügt zwei Operanden hinzu | A + B ergibt 30 |
- - | Subtrahiert den zweiten Operanden vom ersten | A - B ergibt -10 |
* * | Multipliziert beide Operanden | A * B ergibt 200 |
/. | Teilt den Zähler durch den Nenner | B / A ergibt 2 |
%. | Modul Operator und Rest nach einer ganzzahligen Division | B% A ergibt 0 |
Vergleichsoperatoren
Die folgende Tabelle zeigt alle von Pascal unterstützten Vergleichsoperatoren. Variable annehmenA hält 10 und variabel B hält 20, dann -
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
= | Überprüft, ob die Werte von zwei Operanden gleich sind oder nicht. Wenn ja, wird die Bedingung wahr. | (A = B) ist nicht wahr. |
<> | Überprüft, ob die Werte von zwei Operanden gleich sind oder nicht. Wenn die Werte nicht gleich sind, wird die Bedingung wahr. | (A B) ist wahr. |
> | Überprüft, ob der Wert des linken Operanden größer als der Wert des rechten Operanden ist. Wenn ja, wird die Bedingung wahr. | (A> B) ist nicht wahr. |
< | Überprüft, ob der Wert des linken Operanden kleiner als der Wert des rechten Operanden ist. Wenn ja, wird die Bedingung wahr. | (A <B) ist wahr. |
> = | Überprüft, ob der Wert des linken Operanden größer oder gleich dem Wert des rechten Operanden ist. Wenn ja, wird die Bedingung wahr. | (A> = B) ist nicht wahr. |
<= | Überprüft, ob der Wert des linken Operanden kleiner oder gleich dem Wert des rechten Operanden ist. Wenn ja, wird die Bedingung wahr. | (A <= B) ist wahr. |
Boolesche Operatoren
Die folgende Tabelle zeigt alle Booleschen Operatoren, die von der Pascal-Sprache unterstützt werden. Alle diese Operatoren arbeiten mit booleschen Operanden und erzeugen boolesche Ergebnisse. Variable annehmenA gilt wahr und variabel B gilt dann falsch -
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
und | Wird als boolescher AND-Operator bezeichnet. Wenn beide Operanden wahr sind, wird die Bedingung wahr. | (A und B) ist falsch. |
und dann | Es ähnelt dem AND-Operator, garantiert jedoch die Reihenfolge, in der der Compiler den logischen Ausdruck auswertet. Links nach rechts und die rechten Operanden werden nur bei Bedarf ausgewertet. | (A und dann B) ist falsch. |
oder | Wird als boolescher ODER-Operator bezeichnet. Wenn einer der beiden Operanden wahr ist, wird die Bedingung wahr. | (A oder B) ist wahr. |
oder aber | Es ähnelt dem Booleschen ODER, garantiert jedoch die Reihenfolge, in der der Compiler den logischen Ausdruck auswertet. Links nach rechts und die rechten Operanden werden nur bei Bedarf ausgewertet. | (A oder B) ist wahr. |
nicht | Wird als boolescher NOT-Operator bezeichnet. Wird verwendet, um den logischen Status seines Operanden umzukehren. Wenn eine Bedingung wahr ist, macht der Operator Logical NOT sie falsch. | nicht (A und B) ist wahr. |
Bitoperatoren
Bitweise Operatoren arbeiten an Bits und führen eine bitweise Operation durch. Alle diese Operatoren arbeiten mit ganzzahligen Operanden und erzeugen ganzzahlige Ergebnisse. Die Wahrheitstabelle für bitweise und (&), bitweise oder (|) und bitweise nicht (~) lautet wie folgt:
p | q | p & q | p | q | ~ p | ~ q |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 | 1 | 0 |
1 | 1 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 0 | 1 |
Angenommen, A = 60; und B = 13; jetzt im Binärformat werden sie wie folgt sein -
A = 0011 1100
B = 0000 1101
-----------------
A & B = 0000 1100
A ^ B = 0011 0001
~ A = 1100 0011
Die von Pascal unterstützten bitweisen Operatoren sind in der folgenden Tabelle aufgeführt. Angenommen, Variable A hält 60 und Variable B hält 13, dann:
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
& | Der binäre UND-Operator kopiert ein Bit in das Ergebnis, wenn es in beiden Operanden vorhanden ist. | (A & B) ergibt 12, was 0000 1100 ist |
| | Der binäre ODER-Operator kopiert ein Bit, wenn es in einem der Operanden vorhanden ist. | (A | B) ergibt 61, was 0011 1101 ist |
! | Der binäre ODER-Operator kopiert ein Bit, wenn es in einem der Operanden vorhanden ist. Es ist dasselbe wie | Operator. | (A! B) ergibt 61, was 0011 1101 ist |
~ | Der Komplementoperator für binäre Einsen ist unär und bewirkt das Umdrehen von Bits. | (~ A) ergibt -61, was aufgrund einer vorzeichenbehafteten Binärzahl 1100 0011 in 2er-Komplementform ist. |
<< | Binärer Linksschaltoperator. Der Wert der linken Operanden wird um die Anzahl der vom rechten Operanden angegebenen Bits nach links verschoben. | Ein << 2 ergibt 240, was 1111 0000 ist |
>> | Binärer Rechtsschieber. Der Wert der linken Operanden wird um die vom rechten Operanden angegebene Anzahl von Bits nach rechts verschoben. | Eine >> 2 ergibt 15, was 0000 1111 ist |
Bitte beachten Sie, dass sich verschiedene Implementierungen von Pascal in bitweisen Operatoren unterscheiden. Free Pascal, der hier verwendete Compiler, unterstützt jedoch die folgenden bitweisen Operatoren:
Betreiber | Operationen |
---|---|
nicht | Bitweise NICHT |
und | Bitweises UND |
oder | Bitweises ODER |
xor | Bitweises exklusives ODER |
shl | Bitweise nach links verschieben |
shr | Bitweise nach rechts verschieben |
<< | Bitweise nach links verschieben |
>> | Bitweise nach rechts verschieben |
Vorrang der Operatoren in Pascal
Die Operatorrangfolge bestimmt die Gruppierung von Begriffen in einem Ausdruck. Dies wirkt sich darauf aus, wie ein Ausdruck ausgewertet wird. Bestimmte Operatoren haben eine höhere Priorität als andere. Beispielsweise hat der Multiplikationsoperator eine höhere Priorität als der Additionsoperator.
Zum Beispiel x = 7 + 3 * 2; Hier wird x 13 zugewiesen, nicht 20, da der Operator * eine höhere Priorität als + hat. Daher wird er zuerst mit 3 * 2 multipliziert und dann zu 7 addiert.
Hier werden Operatoren mit der höchsten Priorität oben in der Tabelle angezeigt, Operatoren mit der niedrigsten Priorität unten. Innerhalb eines Ausdrucks werden zuerst Operatoren mit höherer Priorität ausgewertet.
Beispiele anzeigen
Operator | Vorrang |
---|---|
~ nicht | Höchste |
*, /, div, mod und, & | |
|,!, +, - oder | |
=, <>, <, <=,>,> =, in | |
oder sonst und dann | Am niedrigsten |