Gli operatori logici nel linguaggio C
A cosa servono?
Gli operatori logici permettono di svolgere le espressioni nel calcolo booleano. Ad esempio, consentono al programma di eseguire un'istruzione o un'altra, a seconda che si verifichi una particolare circostanza.
Quali sono gli operatori logici nel linguaggio C?
Nel linguaggio C gli operatori logici sono l'AND o prodotto logico ( && ), l'OR o addizione logica ( || ) e la negazione ( ! ). Sono utilizzati per costruire le espressioni booleane.
L'operatore di negazione ( NOT )
Nel linguaggio C l'operatore logico della negazione è rappresentato dal simbolo del punto interrogativo ( ! ) seguito dal nome della variabile ( es. !a ). L'operatore consente di effettuare l'operazione booleana di negazione.
!a
L'operatore NOT può essere utilizzato per modificare il valore di una variabile. Se la variabile è assegnata a un valore numerico diverso da zero, l'operatore di negazione la trasforma in zero, e viceversa.
Nel linguaggio C questa operazione equivale al passaggio dal valore booleano true ( vero ) a false ( false ), e viceversa.
L'operatore NOT può essere utilizzato anche nelle espressioni logiche delle strutture condizionate ( es. IF ).
Esempio 1
a=0;
a=!a;
Ad esempio, nel precedente codice la variabile A viene inizialmente associata a zero ( A=0 ). Nella seconda istruzione l'operatore di negazione la trasforma in uno ( A=1 ).
Esempio 2
a=0;
if (!a) b=5;
In quest'altro esempio si può vedere l'utilizzo della negazione in una struttura condizionata. La variabile A viene inizialmente associata al valore zero (A=0). Nella seconda riga l'istruzione IF verifica se l'espressione !a è vera. Poiché A è uguale a zero la sua negazione !A è uguale a 1, quindi è vera e l'istruzione IF può procedere con l'assegnazione del valore 5 alla variabile B.
L'operatore del prodotto logico ( AND )
Nel linguaggio C l'operatore del prodotto logico è rappresentato dal doppio simbolo &&. Questo operatore consente di svolgere l'operazione booleana del prodotto logico, ossia restituisce un valore positivo ( true ) quando entrambi gli operandi sono diversi da zero, e viceversa.
a&&b
Quando almeno uno dei due operandi è uguale a zero ( false ) anche l'operatore AND è uguale a zero ( false ), indipendentemente dal valore dell'altro.
L'operatore AND è utilizzato nelle espressioni booleane.
Esempio
a=1;
b=1;
if (a&&b) c=1;
Nel codice precedente viene assegnato il valore uno alle variabili A e B. Nell'ultima riga l'istruzione IF utilizza l'operatore && per verificare se entrambe le variabili sono vere ( A&&B ). Essendo entrambe vere, l'istruzione procede l'esecuzione assegnando il valore uno alla variabile C.
L'operatore della somma logica ( OR )
Nel linguaggio C l'operatore dell'addizione logica è rappresentato dal doppio simbolo ||. La somma logica è utilizzata nelle espressioni booleane per verificare se almeno uno degli operandi è vero.
a||b
Quando almeno uno dei due operandi è diverso da zero ( true ), l'operatore OR è uguale a uno ( true ). Viceversa, se tutti gli operandi sono uguali a zero ( false ) anche l'operatore OR è uguale a zero ( false ).
Esempio
a=1;
b=0;
if (a||b) c=5;
Nel codice precedente viene assegnato il valore uno alla variabile A e zero alla variabile B. Nell'ultima riga l'istruzione IF effettua la somma logica delle due variabili A||B. In questo caso la somma logica è uguale a 1, in quanto almeno uno dei due operandi è diverso da zero (A=1). L'istruzione IF può, quindi, procedere con l'assegnazione del valore cinque alla variabile C.