Les machines traitent et mémorisent l’information au moyen de circuits logiques binaires : leurs entrées et sorties se caractérisent exclusivement par deux états : l’état logique bas et l’état logique haut.
Ceci s’explique par la technologie employée : les microprocesseurs sont constitués d’une multitude de composants électroniques que l’on appelle des transistors et qui ne peuvent prendre que deux états, bloqué ou saturé, et se comportent comme des interrupteurs. Ce sont des circuits logiques, le plus souvent à base de transistors, qui réalisent toutes les opérations dans les processeurs des machines
Source : https://fr.wikibooks.org/wiki/Fonctionnement_d%27un_ordinateur/Les_transistors_et_portes_logiques
Une variable booléenne ne peut prendre que deux valeurs, notées 0 et 1.
Ces variables peuvent servir à constituer une information binaire (oui/non, vrai/faux, égal/différent, marche/arrêt, allumé/éteint , …) ou à décrire l’état physique d’un composant d’un système (alimentation d’un composant, action sur un bouton, …)
exemples : une lampe, résistance, un relais, un contacteur, sont à l’état 0 lorsqu’ils ne sont pas alimentés. Le circuit est alors ouvert.
La valeur booléenne est donnée par l’état logique (haut ou bas) de la grandeur physique qui la porte : de l’électricité.
Exemple : dans le cas de l’utilisation de circuits intégrés en logique T.T.L. (Transistor-Transistor Logic), l’état logique HAUT correspond à une tension « proche » de 5V et l’état logique BAS à une tension « proche » de 0V.
Tension | État logique | Valeur booléenne |
5V | HAUT | 1 |
indéterminé | ||
0V | BAS | 0 |
Il ne faut pas confondre :
Le bit est l’unité des informations logiques (bit est l’abréviation de binary digit).
Les transistors ne peuvent prendre que deux états : bloqué ou saturé et se comportent comme des interrupteurs que l’on appellera contacts. On distingue deux types de contacts :
au repos (état BAS) |
actionné (état HAUT) |
|
Contact à fermetureContact qui est ouvert au repos (ou normalement ouvert) et qui se ferme lorsqu’il est actionné. |
||
Contact à ouvertureContact qui est fermé au repos et qui s’ouvre lorsqu’il est actionné. |
Un contact est à l’état 0 en l’absence d’action physique sur celui-ci, et à l’état 1 s’il est actionné.
Source : https://fr.wikipedia.org/wiki/Algèbre_de_Boole_(logique)
Les calculs sur les variables booléennes sont réalisés grâce à l’algèbre de Boole qui comporte 3 opérateurs élémentaires :
Opérateur | Équation logique | Symbole logique | Table de vérité | |||||||||||||||
NON (NOT) |
|
|
||||||||||||||||
ET (AND) |
|
|
||||||||||||||||
OU (OR) |
|
|
A partir de ces trois opérateurs élémentaires, on peut également définir les opérateurs suivants :
Opérateur | Équation logique | Symbole logique | Table de vérité | |||||||||||||||
NON-ET (NAND) |
|
|
||||||||||||||||
NON-OU (NOR) |
|
|
||||||||||||||||
OU exclusif (XOR) |
|
|
Une expression logique contenant un nombre fini de variables booléennes
(
|
|
… |
|
|
---|---|---|---|---|
0 | 0 | … | 0 | |
0 | 0 | … | 1 | |
|
|
|
|
|
1 | 1 | … | 1 |
On peut utiliser une table de vérité pour décomposer les calculs algébriques, en procédant par étapes :
Exemples :
|
|
|
|
---|---|---|---|
0 | 0 | 1 | 1 |
0 | 1 | 0 | 0 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 1 |
compléter la table de vérité ci-dessous:
|
|
|
|
|
|
---|---|---|---|---|---|
0 | 0 | 0 | |||
0 | 0 | 1 | |||
0 | 1 | 0 | |||
0 | 1 | 1 | |||
1 | 0 | 0 | |||
1 | 0 | 1 | |||
1 | 1 | 0 | |||
1 | 1 | 1 |
On peut aussi utiliser une table de vérité pour vérifier si deux expressions logiques sont équivalentes :
Python | C/C++ | |
Valeurs booléennes |
True False |
true false |
Opérateurs booléens |
||
NON | not a | !a |
ET | a and b | a&&b |
OU | a or b | a||b |
XOR | a^b | a!=b |
Comparaison Tous les types peuvent être comparés, une comparaison renvoie toujours un booléen. |
||
égalité | == | |
différence | != | |
inférieur ou égal | <= | |
strictement inférieur | < | |
supérieur ou égal | >= | |
strictement supérieur | > | |