05a Les booléens
Table des matières
1. L’algèbre de Boole
⚓︎
L'algèbre de Boole est une branche des mathématiques qui traite des opérations logiques. Elle a été développée par George Boole et est largement utilisée en informatique et en électronique numérique.
✅ L’algèbre de Boole repose sur l’ensemble B = {0, 1} où :
-
0représente FAUX (état bas). -
1représente VRAI (état haut).
On y retrouve trois opérations fondamentales :
1.1. ET
⚓︎
Définition : a ET b est VRAI si et seulement si a ET b sont tous deux VRAIS.
✅ Différentes notations :
-
a ⋅ b -
a ∧ b -
a & boua && b(langages C, Java, PHP…) -
a AND b(Python, Pascal…)
1.2. OU
⚓︎
Définition : a OU b est VRAI si et seulement si a ou b (ou les deux) sont VRAIS.
✅ Différentes notations :
-
a + b -
a ∨ b -
a OR b(Python, Pascal…)
1.3. NON
⚓︎
Définition : NON a est VRAI si et seulement si a est FAUX.
✅ Différentes notations :
-
¬a -
!a(C, Java…) -
NOT a(Pascal, ASM…)
Le contraire de « a » est VRAI si et seulement si a est FAUX
2. Les fonctions logiques et tables de vérité
⚓︎
L'algèbre de Boole est à la base des circuits logiques utilisés dans les ordinateurs.
💡 Un transistor fonctionne comme un interrupteur :
-
1: le courant passe (état haut). -
0: le courant ne passe pas (état bas).
🔹 Types de circuits logiques :
-
Circuits combinatoires : la sortie dépend uniquement des entrées.
-
Circuits séquentiels : la sortie dépend des entrées et de l’historique des états précédents.
2.1. La porte NON (NOT)
⚓︎
Entrée (E) |
Sortie (S) |
|---|---|
| 0 | 1 |
| 1 | 0 |
✅ La sortie est l'inverse de l'entrée.
Activité 1
def NOT(a):
return not a
print(NOT(1)) # Affiche 0
print(NOT(0)) # Affiche 1
Python
La porte NON est symbolisée par le schéma suivant :
| Symbole | Autre symbole | Opération |
|---|---|---|
![]() |
![]() |
![]() |
2.2. La porte OU (OR)
⚓︎
E1 |
E2 |
S (Sortie) |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
✅ La sortie est 1 si au moins une des entrées est 1.
Activité 2
def OR(a, b):
return a or b
print(OR(0, 1)) # Affiche 1
print(OR(0, 0)) # Affiche 0
Python
La porte OU est symbolisée par le schéma suivant :
| Symbole | Autre symbole | Opération |
|---|---|---|
![]() |
![]() |
E1 + E2 |
2.3. La porte ET (AND)
⚓︎
E1 |
E2 |
S (Sortie) |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
✅ La sortie est 1 uniquement si les deux entrées sont 1.
Activité 3
def AND(a, b):
return a and b
print(AND(1, 1)) # Affiche 1
print(AND(1, 0)) # Affiche 0
Python
La porte ET est symbolisée par le schéma suivant :
| Symbole | Autre symbole | Opération |
|---|---|---|
![]() |
![]() |
E1 . E2 |
2.4. La porte OU EXCLUSIF (XOR)
⚓︎
E1 |
E2 |
S (Sortie) |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
✅ La sortie est 1 uniquement si les entrées sont différentes.
Activité 4
def XOR(a, b):
return a ^ b
print(XOR(1, 1)) # Affiche 0
print(XOR(1, 0)) # Affiche 1
Python
La porte XOR est symbolisée par le schéma suivant :
| Symbole | Autre symbole | Opération |
|---|---|---|
![]() |
![]() |
![]() |
2.5. La porte NON ET (NAND)
⚓︎
Table de vérité
| E1 | E2 | S |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
| Symbole | Opération |
|---|---|
![]() |
![]() |
2.6. La porte NON OU (NOR)
⚓︎
Table de vérité
| E1 | E2 | S |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |
| Symbole | Opération |
|---|---|
![]() |
![]() |
Activité n°5 : Complétons les tables de vérité
Écrire les tables de vérité des expressions suivantes :
- A ⋅ B̅
- A + B ⋅ C
- A ⋅ B + (C ⊕ D)
Solution
Table de vérité pour A ⋅ B̅ :
| A | B | B̅ | A ⋅ B̅ |
|---|---|---|---|
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 0 |
Table de vérité pour A + B ⋅ C :
| A | B | C | B ⋅ C | A + (B ⋅ C) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 0 |
| 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 | 1 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 |
Table de vérité pour A ⋅ B + (C ⊕ D) :
| A | B | C | D | C ⊕ D | A ⋅ B | A ⋅ B + (C ⊕ D) |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 1 | 1 | 0 | 1 |
| 0 | 0 | 1 | 0 | 1 | 0 | 1 |
| 0 | 0 | 1 | 1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 | 0 | 1 |
| 0 | 1 | 1 | 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 | 1 | 0 | 1 |
| 1 | 0 | 1 | 1 | 0 | 0 | 0 |
| 1 | 1 | 0 | 0 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 0 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 | 1 | 1 |
Activité n°6 : Compléter le tableau de vérité
Voici un exemple de fonction booléenne : La fonction multiplexeur, notée mux.
La formule est donnée par : \(mux(x,y,z) = (\text{not}(x) \wedge y) \vee (x \wedge z)\)
Compléter le tableau suivant :
| x | y | z | not(x) | not(x) and y | x and z | mux(x,y,z) |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | ||||
| 0 | 0 | 1 | ||||
| 0 | 1 | 0 | ||||
| 0 | 1 | 1 | ||||
| 1 | 0 | 0 | ||||
| 1 | 0 | 1 | ||||
| 1 | 1 | 0 | ||||
| 1 | 1 | 1 |
Solution
Table complétée :
| x | y | z | not(x) | not(x) and y | x and z | mux(x,y,z) |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 0 | 0 | 1 | 1 |
2 Montrer que (x and y) = not (not(x) or not(y))
Solution
Solution : C'est la loi de De Morgan. On peut démontrer cette équivalence en construisant la table de vérité.
3 Montrer que (x or y) = not (not(x) and not(y))
Solution
Solution : Encore une loi de De Morgan, qui se vérifie par la table de vérité.
4 Trouver l’expression de la fonction ssi(x,y) à l’aide des opérateurs booléens
Solution
Solution :
La fonction ssi(x,y) (si et seulement si) est définie par :
\(ssi(x,y) = (x \wedge y) \vee (\neg x \wedge \neg y)\)
Table de vérité de ssi(x,y) :
| x | y | ssi(x,y) |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
3. Quelques propriétés
⚓︎
3.1. Associativité
⚓︎
Certaines parenthèses peuvent être omises :
-
(a + b) + c = a + (b + c) = a + b + c -
(a ⋅ b) ⋅ c = a ⋅ (b ⋅ c) = a ⋅ b ⋅ c
3.2. Commutativité
⚓︎
L'ordre des opérandes n'a pas d'importance :
-
a + b = b + a -
a ⋅ b = b ⋅ a
3.3. Distributivité
⚓︎
On peut distribuer les opérations comme en algèbre classique :
a ⋅ (b + c) = (a ⋅ b) + (a ⋅ c)
🚨 Attention : La distributivité de ET sur OU ne fonctionne pas comme en arithmétique.
3.4. Lois de Morgan
2⚓︎

Le complément d’une somme logique (non arithmétique) est égal au produit logique (non arithmétique) des termes complémentés. Loi de Morgan
Le complément d’un produit logique (non arithmétique) est égal à la somme logique (non arithmétique) des termes complémentés.

✅ Les lois de De Morgan permettent de transformer une opération en son opposée.
Activité 7
def de_morgan_1(a, b):
return not (a or b) == (not a and not b)
def de_morgan_2(a, b):
return not (a and b) == (not a or not b)
print(de_morgan_1(1, 0)) # Affiche True
print(de_morgan_2(1, 1)) # Affiche True
Python
4. Exercices
⚓︎
=> CAPYTALE Le code vous sera donné par votre enseignant
Exercice n°1 ★
On considère le circuit logique suivant.

- Réaliser le circuit.
- Donner l’expression booléenne de S en fonction des variables A et B.
- Compléter la table de vérité ci-dessous.

4 Par quel circuit comprenant seulement deux portes peut-on remplacer le circuit étudié ?
Exercice n°2 ★ :
On considère le circuit logique ci-dessous

1 Donner l’expression booléenne de S en fonction des variables A, B et C.
2 Compléter la table de vérité ci-dessous

3 En déduire une formule pour S qui ne dépend que des variables A et B.
Exercice n°3 ★ :
On considère les circuits logiques ci-dessous



1 Donner les expressions booléennes de U et V en fonction des variables A, B et C.
2 Compléter les tables de vérité ci-dessous.

3 Les expressions booléennes U et V sont-elles équivalentes ?
Exercice n°4 ★ (circuit MUX-2) :
On considère le circuit logique suivant.

- Donner l’expression de Out en fonction de E1 et E2.
- Compléter le tableau de vérité de ce circuit.
Le circuit étudié est appelé multiplexeur à 2 entrées. Selon la valeur de la commande (C), il permet de reproduire en sortie (Out) :
- le signal E1 si C est à 0.
- le signal E2 si C est à 1.
Exercice n°5 circuit MUX-4
On considère un multiplexeur à 4 entrées, dont le circuit est représenté ci- dessous.

-
Par analyse du circuit, déterminer l’expression booléenne de Out en fonction des entrées E1, E2, E3, E4 et des commandes C0 et C1.
-
Quelles sont les valeurs des commandes C0 et C1 qui permettent de sélectionner en sortie (Out) :
-
l’entrée E1 ?
- l’entrée E2 ?
- l’entrée E3 ?
- l’entrée E4 ?
Exercice n °6 ★★ (Half adder)
Le circuit étudié, appelé demi-additionneur, permet d’additionner deux bits A et B. Il comporte deux sorties C et S qui représentent deux expressions booléennes.

1 Donner les expressions booléennes de C et S en fonction de A et B.
2 Compléter la table de vérité de C et S.
3 Quel est le rôle des sorties C et S dans la fonction du circuit ?
Le choix de la lettre C vient du fait qu’en anglais, « retenue» se dit «carry».
Exercice n°7 ★★ (Full adder)
Le circuit étudié dans cet exercice permet d’additionner deux bits en tenant compte d’une retenue Cin.

Réaliser ce circuit et compléter la table de vérité ci-dessous.

Exercice n°8 ★★
Soit le circuit ci-dessous :

- Écrivez l'équation de ce circuit.
- Établissez la table de vérité de ce circuit.
Exercice n°9 ★★★ :
Un pont peut supporter 10 tonnes au maximum. La route menant au pont est strictement interdite aux véhicules de plus de 10 tonnes. À chaque extrémité du pont se trouve une barrière et une bascule pour mesurer le poids (a ou b) des véhicules.

Si un seul véhicule attend devant le pont, la barrière devant lui (A ou B) s'ouvre (étape initiale). Sinon :
- Si a + b ≤ 10 tonnes, les barrières A et B s'ouvrent.
- Si a + b > 10 tonnes, seule la barrière correspondant au véhicule le plus léger s'ouvre.
L'autre véhicule attend que le premier ait franchi le pont, puis le protocole d'ouverture des barrières recommence à l'étape initiale.
- Si a = b, la barrière A s'ouvre en priorité.
Indication : a et b n'étant pas des variables binaires, il convient de créer deux variables binaires x et y et de reformuler l'énoncé du problème.
Aide : on posera x= a + b <= 10 et y = a > b
- Écrivez la table de vérité pour l'ouverture des barrières A et B.
- Donnez les équations logiques pour l'ouverture des barrières A puis pour l’ouverture de la barrière B.
- Dessinez le circuit logique déterminant l'ouverture des barrières.













