Gli operatori logici
Un operatore logico è una parola che connette due espressioni numeriche o booleane e genera un valore. A seconda del tipo di operandi connessi, li definiamo operatori condizionali quando eseguiamo operazioni su tipi booleani, mentre li chiamiamo operatori logici quando operiamo su numeri interi. Sono disponibili tre operatori binari e un operatore unario.
- AND - Congiunzione condizionale o logica (operatore binario);
- OR - Disgiunzione condizionale o logica (operatore binario);
- XOR - Disgiunzione esclusiva condizionale o logica (operatore binario);
- NOT - Negazione condizionale o logica (operatore unario).
Gli operatori condizionali o logici binari hanno bisogno di comparare due operandi, mentre l'operatore unario opera su un solo operando. Gli operatori condizionali operano su operandi di tipo booleano. Invece gli operatori logici operano solo su numeri interi, quindi, in caso di numeri in virgola mobile, i numeri sottoposti a un operatore logico vengono automaticamente convertiti in numeri interi senza segno. I numeri interi utilizzano sempre 64 bit. Per comprendere gli operatori logici è necessario approfondire l'algebra booleana e il sistema numerico binario.
L'operatore AND esegue una congiunzione logica, restituendo come risultato TRUE se entrambi gli operandi valgono VERO, altrimenti FALSE. Dato che è un operatore binario, e i singoli bit di ogni operando hanno due valori, le combinazioni possibili sono quattro.
- TRUE AND TRUE = TRUE
- FALSE AND FALSE = FALSE
- FALSE AND TRUE = FALSE
- TRUE AND FALSE = FALSE
Per esempio:
- C = 40 AND 8
Alla variabile C viene assegnato il valore risultante 8, poiché il 3° bit nel numero 40 è a TRUE. Vedere il sistema numerico binario.
L'operatore OR esegue una disgiunzione logica, restituendo come risultato TRUE se uno degli operandi vale TRUE, altrimenti FALSE se entrambi gli operandi sono FALSE. Dato che è un operatore binario, e i singoli bit di ogni operando hanno due valori, le combinazioni possibili sono quattro.
- TRUE OR TRUE = TRUE
- FALSE OR FALSE = FALSE
- FALSE OR TRUE = TRUE
- TRUE OR FALSE = TRUE
Per esempio:
- C = 32 OR 8
Alla variabile C viene assegnato il valore risultante 40, poiché la somma dei bit dei due operandi restituisce il valore 40. Vedere il sistema numerico binario.
- C = 40 OR 9
Alla variabile C viene assegnato il valore 41. Questo dimostra che la disgiunzione logica OR non è sovrapponibile a una somma aritmetica.
L'operatore XOR esegue una disgiunzione esclusiva, restituendo come risultato TRUE solo se gli operandi sono diversi tra di loro. Dato che è un operatore binario, e i singoli bit di ogni operando hanno due valori, le combinazioni possibili sono quattro.
- TRUE XOR TRUE = FALSE
- FALSE XOR FALSE = FALSE
- FALSE XOR TRUE = TRUE
- TRUE XOR FALSE = TRUE
Per esempio
- C = 40 XOR 8
Alla variabile C viene assegnato il valore risultante 32, poiché la disgiunzione esclusiva dei bit dei due operandi restituisce il valore 32. Vedere il sistema numerico binario.
- C = 40 XOR 63
Alla variabile C viene assegnato il valore 23, risultato della disgiunzione esclusiva dei bit di 40 e 63.
L'operatore NOT è usato per eseguire la negazione logica, restituendo come risultato il valore opposto a quello in entrata. Questo è un operatore unario, significa che ha bisogno solo di un operando per essere applicato. Se una espressione ritorna TRUE, allora "NOT espressione" ritorna valore FALSE, e viceversa. Applicando questo operatore a variabili numeriche, i numeri con segno saranno automaticamente convertiti in numeri senza segno.