Huit lampes, un seul nombre
Imagine une rangée de huit lampes. Chacune est allumée ou éteinte. Cela fait 256 combinaisons possibles.
Un seul octet suffit pour les ranger toutes : un bit par lampe. Un 1 veut dire allumée, un 0 veut dire éteinte.
Comment allumer une lampe sans toucher aux autres ? Avec les opérations sur les bits.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Bit allumé | Un bit qui vaut 1. | Dans 0100, un seul bit est allumé |
| Position | La place d'un bit. On compte depuis la droite, en partant de 0. | Dans 1000, le 1 est à la position 3 |
| Opération bit à bit | Un calcul qui traite chaque colonne de bits séparément. | 1100 ET 1010 |
| Masque | Un nombre fait pour viser un ou plusieurs bits. | 00000100 vise le bit 2 |
| OU exclusif | Vrai si les deux bits sont différents. Faux s'ils sont pareils. | 1 et 0 donne 1 |
| Décalage | Pousser tous les bits de quelques places, à gauche ou à droite. | 101 devient 1010 |
| ET, OU, NON | Les liens de la leçon « Vrai ou faux : les booléens ». Ici, 1 est vrai et 0 est faux. | 1 ET 1 donne 1 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Le même calcul, colonne par colonne
Tu connais ET, OU et NON pour du vrai et du faux. Un bit est un petit booléen : 1 est vrai, 0 est faux.
Pour deux nombres binaires, on applique le calcul sur chaque colonne. Il n'y a pas de retenue, contrairement à l'addition.
En Python, & est le ET, | est le OU, ^ est le OU exclusif.
À toi : trois opérations
a = 0b1100 # douze
b = 0b1010 # dix
# & est le ET bit à bit, | le OU bit à bit, ^ le OU exclusif.
print(format(a & b, "04b"))
print(format(a | b, "04b"))
print(format(a ^ b, "04b"))
# Change a et b, puis devine les trois résultats avant de lancer.
Exemple travaillé : 1100 ET 1010
| Ligne | Rang 3 | Rang 2 | Rang 1 | Rang 0 |
|---|---|---|---|---|
| a = 1100 (douze) | 1 | 1 | 0 | 0 |
| b = 1010 (dix) | 1 | 0 | 1 | 0 |
| a ET b = 1000 (huit) | 1 | 0 | 0 | 0 |
| a OU b = 1110 (quatorze) | 1 | 1 | 1 | 0 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Exemple travaillé : les trois liens sur un bit
| Bit a | Bit b | a ET b | a OU b | a OU exclusif b |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Contrôle rapide
À toi de jouer
Contrôle rapide
3 questionsTes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.
Le OU exclusif
Le OU exclusif est vrai quand les deux bits sont différents. C'est le « fromage ou dessert » de la cantine : l'un ou l'autre, jamais les deux.
Il a une belle propriété. Si tu l'appliques deux fois avec le même nombre, tu retrouves ton nombre de départ.
Exemple travaillé : 1100 OU exclusif 1010
| Ligne | Rang 3 | Rang 2 | Rang 1 | Rang 0 |
|---|---|---|---|---|
| a = 1100 | 1 | 1 | 0 | 0 |
| b = 1010 | 1 | 0 | 1 | 0 |
| Différents ? | non | oui | oui | non |
| Résultat = 0110 (six) | 0 | 1 | 1 | 0 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.