Moins cinq degrés dans la mémoire
Il fait moins 5 degrés ce matin. Ton compte est à moins 12 euros.
Sur le papier, on met un signe moins devant. Mais la mémoire de l'ordinateur ne connaît que des 0 et des 1. Il n'y a pas de case pour le signe moins.
Comment range-t-elle alors un nombre négatif ? C'est le sujet de cette leçon.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Nombre négatif | Un nombre plus petit que zéro. | -5 |
| Nombre positif | Un nombre plus grand que zéro, ou zéro. | 5 |
| Signe | Ce qui dit si un nombre est positif ou négatif. | Le signe moins |
| Bit de gauche | Le premier bit à gauche d'un octet. Il porte le signe. | Dans 10000000, c'est le 1 |
| Complément à deux | La méthode des ordinateurs pour ranger les nombres négatifs. | -5 devient 11111011 |
| Inverser | Changer chaque 0 en 1 et chaque 1 en 0. | 0101 devient 1010 |
| Nombre signé | Un nombre qui peut être positif ou négatif. | De -128 à 127 sur un octet |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Une idée simple
Un octet a 256 valeurs. On a le choix : on les utilise toutes pour des nombres de 0 à 255. Ou bien on en garde la moitié pour les nombres négatifs.
La seconde idée est celle des ordinateurs. La moitié des octets, ceux qui commencent par 1, sont des nombres négatifs.
À toi : lire un octet signé
# 11111011 lu comme un nombre ordinaire fait 251.
print(0b11111011)
# En nombre signé, la place de gauche vaut moins 128.
# 251 - 256 donne la valeur signée.
print(0b11111011 - 256)
# Essaie 0b11111111, puis 0b10000000.
La place de gauche vaut moins 128
Tu connais les places d'un octet : 128, 64, 32, 16, 8, 4, 2, 1.
En nombre signé, une seule place change. La place de gauche vaut moins 128 au lieu de 128. Les autres ne bougent pas.
Un 1 veut dire : je prends cette place. Prendre moins 128 fait descendre le total.
Exemple travaillé : 11111011
| Ligne | Gauche | 64 | 32 | 16 | 8 | 4 | 2 | 1 | Total |
|---|---|---|---|---|---|---|---|---|---|
| Valeur de la place | -128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | - |
| Bits de 11111011 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | - |
| Ce qu'on garde | -128 | 64 | 32 | 16 | 8 | 0 | 2 | 1 | -5 |
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.
Écrire un nombre négatif
Pour écrire moins 5 sur un octet :
- Écris 5 en binaire sur huit bits.
- Inverse tous les bits.
- Ajoute 1.
Tu as appris à ajouter en binaire dans la leçon « Additionner en binaire ».
Exemple travaillé : écrire -5
| Étape | Résultat |
|---|---|
| 5 en binaire sur 8 bits | 00000101 |
| On inverse chaque bit | 11111010 |
| On ajoute 1 | 11111011 |
| On vérifie : -128 + 64 + 32 + 16 + 8 + 2 + 1 | -5 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.