Variabile booleana
In informatica, una variabile booleana, o semplicemente booleano, è un tipo di dato che assume valori "booleani", ovvero soltanto due possibili valori che rappresentano il valore di verità in un'algebra di Boole. Tipicamente i due possibili valori sono indicati come "vero" o "falso" (in inglese "true" o "false") oppure come 1 o 0.
Una funzione di variabili booleane è chiamata funzione booleana; in un'accezione più generale, una variabile booleana può essere a sua volta funzione di variabili booleane.
Il nome deriva da George Boole.
DefinizioniModifica
In alcuni linguaggi, come il C, non esistono variabili di questo tipo in quanto nelle espressioni logiche si assume che falso corrisponda a 0 e vero a qualsiasi valore diverso da 0. Formalmente si indica il valore vero con -1 essendo esso il complemento a uno di 0 (falso), quindi la negazione bit a bit di una variabile. In un elaboratore che segue lo schema dell'Architettura di von Neumann nessuna variabile può essere di un solo bit. Nel processore 8086 il falso e il vero vengono rispettivamente rappresentati:
- 0000 0000 (0)
- 1111 1111 (1)
OperazioniModifica
1 operandoModifica
L'unica operazione possibile con i valori booleani è la negazione (detto anche complemento) che molto spesso è indicata con NOT, ! o ~.
Si definisce:
- not falso = vero
- not vero = falso
2 operandiModifica
Esistono varie operazioni, le principali sono: EQV, AND, OR, XOR. Tutte queste funzioni hanno 2 operandi (booleani) in ingresso e producono un output booleano.
Nella maggior parte dei linguaggi vengono indicati anche con i simboli:
EQV
==
AND
&&
OR
||
XOR
^
Nei linguaggiModifica
Nei linguaggi di programmazione più recenti (es: C++, Java) è possibile dichiarare variabili di tipo booleano, anche se, nessuna di esse occupa veramente un bit nella memoria (non è possibile allocare un singolo bit). Il compilatore si occupa di accorpare più variabili booleane per ottimizzare lo "spreco" di 7 bit. Ad esempio in C++:
bool A = true; bool B = false; bool C = A;
Quando questo codice verrà compilato, molto probabilmente, il compilatore allocherà una variabile di tipo intero e il primo bit lo utilizzerà per A, il secondo per B e il terzo per C, "perdendo" i restanti 4 bit.