Pascal - Operatori
Un operatore è un simbolo che dice al compilatore di eseguire specifiche manipolazioni matematiche o logiche. Pascal consente i seguenti tipi di operatori:
- Operatori aritmetici
- Operatori relazionali
- Operatori booleani
- Operatori di bit
- Impostare gli operatori
- Operatori di stringa
Parliamo uno per uno degli operatori aritmetici, relazionali, booleani e bit. Discuteremo più avanti gli operatori sugli insiemi e le operazioni sulle stringhe.
Operatori aritmetici
La tabella seguente mostra tutti gli operatori aritmetici supportati da Pascal. Assumi variabileA detiene 10 e variabile B detiene 20, quindi -
Operatore | Descrizione | Esempio |
---|---|---|
+ | Aggiunge due operandi | A + B darà 30 |
- | Sottrae il secondo operando dal primo | A - B darà -10 |
* | Moltiplica entrambi gli operandi | A * B darà 200 |
/ | Divide il numeratore per denominatore | B / A darà 2 |
% | Operatore modulo e resto di dopo una divisione intera | B% A darà 0 |
Operatori relazionali
La tabella seguente mostra tutti gli operatori relazionali supportati da Pascal. Assumi variabileA detiene 10 e variabile B detiene 20, quindi -
Operatore | Descrizione | Esempio |
---|---|---|
= | Controlla se i valori di due operandi sono uguali o meno, in caso affermativo, la condizione diventa vera. | (A = B) non è vero. |
<> | Controlla se i valori di due operandi sono uguali o meno, se i valori non sono uguali, la condizione diventa vera. | (A <> B) è vero. |
> | Controlla se il valore dell'operando sinistro è maggiore del valore dell'operando destro, se sì, la condizione diventa vera. | (A> B) non è vero. |
< | Controlla se il valore dell'operando sinistro è inferiore al valore dell'operando destro, in caso affermativo, la condizione diventa vera. | (A <B) è vero. |
> = | Controlla se il valore dell'operando sinistro è maggiore o uguale al valore dell'operando destro, in caso affermativo, la condizione diventa vera. | (A> = B) non è vero. |
<= | Controlla se il valore dell'operando sinistro è minore o uguale al valore dell'operando destro, in caso affermativo, la condizione diventa vera. | (A <= B) è vero. |
Operatori booleani
La tabella seguente mostra tutti gli operatori booleani supportati dal linguaggio Pascal. Tutti questi operatori lavorano su operandi booleani e producono risultati booleani. Assumi variabileA è vero e variabile B è falso, quindi -
Operatore | Descrizione | Esempio |
---|---|---|
e | Chiamato operatore AND booleano. Se entrambi gli operandi sono veri, la condizione diventa vera. | (A e B) è falso. |
e poi | È simile all'operatore AND, tuttavia garantisce l'ordine in cui il compilatore valuta l'espressione logica. Gli operandi da sinistra a destra e destra vengono valutati solo quando necessario. | (A e poi B) è falso. |
o | Chiamato operatore OR booleano. Se uno dei due operandi è vero, la condizione diventa vera. | (A o B) è vero. |
o altro | È simile a Boolean OR, tuttavia garantisce l'ordine in cui il compilatore valuta l'espressione logica. Gli operandi da sinistra a destra e destra vengono valutati solo quando necessario. | (A oppure B) è vero. |
non | Chiamato operatore booleano NOT. Utilizzato per invertire lo stato logico del suo operando. Se una condizione è vera, l'operatore NOT logico la renderà falsa. | non (A e B) è vero. |
Operatori di bit
Gli operatori bit per bit lavorano sui bit ed eseguono operazioni bit per bit. Tutti questi operatori lavorano su operandi interi e producono risultati interi. La tabella di verità per bit a bit e (&), bit a bit o (|) e bit a bit non (~) sono i seguenti:
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 |
Assumiamo se A = 60; e B = 13; ora in formato binario saranno i seguenti -
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A ^ B = 0011 0001
~ A = 1100 0011
Gli operatori bit per bit supportati da Pascal sono elencati nella tabella seguente. Supponiamo che la variabile A contenga 60 e la variabile B ne contenga 13, quindi:
Operatore | Descrizione | Esempio |
---|---|---|
& | L'operatore AND binario copia un po 'nel risultato se esiste in entrambi gli operandi. | (A e B) darà 12, che è 0000 1100 |
| | L'operatore OR binario copia un bit se esiste in uno degli operandi. | (A | B) darà 61, che è 0011 1101 |
! | L'operatore OR binario copia un bit se esiste in uno degli operandi. È uguale a | operatore. | (A! B) darà 61, che è 0011 1101 |
~ | Binary Ones Complement Operator è unario e ha l'effetto di "ribaltare" i bit. | (~ A) darà -61, che è 1100 0011 in forma di complemento a 2 a causa di un numero binario con segno. |
<< | Operatore binario di spostamento sinistro. Il valore dell'operando sinistro viene spostato a sinistra del numero di bit specificato dall'operando destro. | Un << 2 darà 240, che è 1111 0000 |
>> | Operatore binario di spostamento a destra. Il valore dell'operando sinistro viene spostato a destra del numero di bit specificato dall'operando destro. | Un >> 2 darà 15, che è 0000 1111 |
Si noti che le diverse implementazioni di Pascal differiscono per gli operatori bit per bit. Free Pascal, il compilatore che abbiamo usato qui, tuttavia, supporta i seguenti operatori bit per bit:
Operatori | Operazioni |
---|---|
non | Bitwise NON |
e | Bitwise AND |
o | OR bit per bit |
xor | OR esclusivo bit per bit |
shl | Spostamento bit per bit a sinistra |
shr | Spostamento bit per bit a destra |
<< | Spostamento bit per bit a sinistra |
>> | Spostamento bit per bit a destra |
Precedenza degli operatori in Pascal
La precedenza degli operatori determina il raggruppamento dei termini in un'espressione. Ciò influisce sul modo in cui viene valutata un'espressione. Alcuni operatori hanno la precedenza maggiore di altri; ad esempio, l'operatore di moltiplicazione ha una precedenza maggiore dell'operatore di addizione.
Ad esempio x = 7 + 3 * 2; qui, x è assegnato 13, non 20 perché l'operatore * ha una precedenza maggiore di +, quindi viene prima moltiplicato per 3 * 2 e poi somma in 7.
Qui, gli operatori con la precedenza più alta vengono visualizzati nella parte superiore della tabella, quelli con la priorità più bassa in fondo. All'interno di un'espressione, verranno valutati per primi gli operatori con precedenza più alta.
Operatore | Precedenza |
---|---|
~, non, | Più alta |
*, /, div, mod e, & | |
|,!, +, -, o, | |
=, <>, <, <=,>,> =, in | |
oppure, e poi | Il più basso |