Quand la barrière du parking s'ouvre
À la sortie du parking d'un supermarché, la barrière s'ouvre si le ticket est payé et qu'une voiture est devant. L'agent peut aussi l'ouvrir avec son bouton, à tout moment.
Une règle comme celle-ci est construite avec de toutes petites pièces qui répondent oui ou non. Le processeur de ton téléphone en contient des milliards.
À la fin de cette leçon
Remarque
Je peux calculer la sortie d'un circuit logique.
Mots clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Porte logique | une petite pièce qui change des bits d'entrée en un bit de sortie | |
| Entrée | un bit qui arrive dans une porte | |
| Sortie | le bit que la porte rend | |
| Table de vérité | un tableau de toutes les entrées possibles et de leur sortie | |
| Expression booléenne | un circuit écrit avec ET, OU et NON | A ET B |
| Demi-additionneur | un circuit qui additionne deux bits |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Trois portes de base
Un 1 veut dire oui, ou allumé. Un 0 veut dire non, ou éteint.
Une porte ET donne 1 seulement si ses deux entrées valent 1. Une porte OU donne 1 si au moins une entrée vaut 1. Une porte NON a une seule entrée et l'inverse. Une porte NON-ET est un ET suivi d'un NON. Une porte NON-OU est un OU suivi d'un NON.
Table de vérité de ET et de OU
| A | B | A ET B | A OU B |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Avant de commencer
Remarque
Appuie sur Start the lab dans la barre en haut et attends que la machine soit prête. Chaque bouton Run tape sa commande dans le terminal, l'une après l'autre.
Python et le shell ont des portes
En Python et dans le shell, & veut dire ET, | veut dire OU et ^ veut dire OU exclusif, qu'on écrit aussi XOR. Le OU exclusif donne 1 quand les deux entrées sont différentes.
Avec deux entiers, chaque opérateur applique sa porte à chaque paire de bits, place par place.
OU sur chaque paire de bits
python3 -c "print(0 | 0, 0 | 1, 1 | 0, 1 | 1)"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Trois portes sur 6 et 3
echo $(( 6 & 3 )) $(( 6 | 3 )) $(( 6 ^ 3 ))Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Exemple : des portes sur 6 et 3
| Bits | Décimal | |
|---|---|---|
| 6 | 110 | 6 |
| 3 | 011 | 3 |
| 6 ET 3 | 010 | 2 |
| 6 OU 3 | 111 | 7 |
| 6 OU exclusif 3 | 101 | 5 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Lire un circuit comme une expression
On peut relier des portes : la sortie de l'une devient l'entrée de la suivante. On écrit alors le circuit en expression booléenne : Q = (A OU B) ET (NON C).
Calcule-la comme une opération. Fais d'abord les parenthèses, puis la porte qui les relie. Avec trois entrées, la table de vérité a huit lignes.
Exemple : sa table de vérité
| A | B | C | A OU B | NON C | Q |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 | 0 |
| 0 | 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 | 1 |
| 0 | 1 | 1 | 1 | 0 | 0 |
| 1 | 0 | 0 | 1 | 1 | 1 |
| 1 | 0 | 1 | 1 | 0 | 0 |
| 1 | 1 | 0 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 | 0 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Deux portes additionnent deux bits
En binaire, 1 + 1 donne 10 : on pose 0 et on retient 1. Un demi-additionneur fait ce calcul avec deux portes.
Le bit de somme vaut A OU exclusif B. Le bit de retenue vaut A ET B. Des chaînes d'additionneurs comme celui-ci permettent au processeur d'additionner de grands nombres.
La somme et la retenue de 1 + 0
python3 -c "print(1 ^ 0, 1 & 0)"Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Une erreur fréquente
Attention
Beaucoup pensent que OU veut dire l'un ou l'autre, mais pas les deux, comme « fromage ou dessert » au restaurant. En logique, OU donne aussi 1 quand les deux entrées valent 1. La porte pour « l'un mais pas les deux » est le OU exclusif.
Pour aller plus loin : la barrière du parking
Reprends la barrière du début. T vaut 1 si le ticket est payé, V si une voiture est devant, et G si l'agent appuie sur son bouton.
Écris l'expression booléenne de la barrière avec T, V et G. Fais ensuite sa table de vérité de huit lignes. Dans combien de lignes la barrière s'ouvre-t-elle ?