Systèmes de numération : exercices corrigés pas à pas
Aussi appelé : binaire · hexadécimal · changement de base
Exercices gratuits sur Systèmes de numération avec schémas, indices et corrigés complets. De nouvelles valeurs à chaque fois, à trois niveaux : du binaire et de l'hexa au décimal, complément à deux, bits, plages et mémoire.
Exercice gratuitFacile
Positionnez les bits pour que le registre de 8 bits contienne 0x99. Quelle est la valeur N du motif en décimal ?
0x99
Cliquez sur un bit pour le faire passer de 0 à 1 et inversement. La case affiche votre motif sous forme de nombre non signé, et vous pouvez aussi le saisir. Réponse exacte : un nombre entier, sans arrondi.
diviser par la base, lire les restes de bas en haut
Hexa ↔ binaire
un chiffre hexa = 4 bits
Complément à deux
inverser les bits et ajouter 1
Apprendre Systèmes de numération depuis zéro
1Ce qu’est un système de numération
Dans la vie courante, vous comptez en décimal, base 10. Il a dix chiffres, de 0 à 9, et chaque rang vaut dix fois le rang à sa droite.
Dans 352, le 3 vaut 300, le 5 vaut 50 et le 2 vaut 2. Les rangs valent 1, 10, 100 en partant de la droite.
352 = 3 · 100 + 5 · 10 + 2 · 1
Un ordinateur stocke tout sous forme d’interrupteurs allumés ou éteints. Il compte donc en binaire, base 2, avec seulement les chiffres 0 et 1.
Un chiffre binaire est un bit. Un groupe de 8 bits est un octet.
La règle est la même dans toutes les bases : chaque chiffre vaut sa valeur multipliée par une puissance de la base.
Auto-évaluation Dans le nombre décimal 4721, que vaut le 7 ?
7000
700
70
7
Réponse: 700. En comptant depuis la droite, les rangs valent 1, 10, 100 et 1000. Le 7 est au troisième rang, il vaut donc 7 · 100 = 700.
2Binaire et hexadécimal
En binaire, les rangs valent 1, 2, 4, 8, 16, et ainsi de suite, en partant de la droite. Chaque rang vaut deux fois le rang à sa droite.
Pour un nombre de 8 bits, les rangs valent 128, 64, 32, 16, 8, 4, 2 et 1.
Pour lire un nombre binaire, additionnez les valeurs des rangs de chaque bit égal à 1. Pour 0011 0010, cela donne 32 + 16 + 2 = 50.
Les longues suites de bits sont difficiles à lire. Les programmeurs les écrivent souvent plutôt en hexadécimal (hex), base 16.
L’hexadécimal demande 16 chiffres. Il utilise de 0 à 9, puis les lettres A = 10, B = 11, C = 12, D = 13, E = 14 et F = 15.
Les rangs hexadécimaux valent 1, 16, 256 et 4096, en partant de la droite. Un nombre hexadécimal s’écrit souvent avec 0x devant, par exemple 0x2F.
Un chiffre hexadécimal correspond exactement à 4 bits, donc 0011 0010 est 0x32 : 0011 est 3 et 0010 est 2.
Auto-évaluation Que vaut 0x1A en décimal ?
110
11
161
26
Réponse: 26. A = 10. Les rangs sont 16 et 1, donc 1 · 16 + 10 · 1 = 26. Écrire les chiffres côte à côte (110) ou les additionner (11) ignore les valeurs des rangs. 161 utilise les rangs dans le mauvais ordre.
3Nombres négatifs : le complément à deux
Un octet dont tous les rangs sont positifs stocke de 0 à 255. On dit qu’il est non signé.
Pour stocker des nombres négatifs, les ordinateurs utilisent le complément à deux. Le seul changement est que le bit le plus à gauche vaut −128 au lieu de +128.
Ainsi 1000 0011 vaut −128 + 2 + 1 = −125. Le bit le plus à gauche s’appelle le bit de signe : quand il vaut 1, le nombre est négatif.
Un nombre en complément à deux sur 8 bits va de −128 (1000 0000) à +127 (0111 1111).
Pour écrire un nombre négatif −x, partez de +x en binaire, inversez chaque bit (0 devient 1, 1 devient 0) et ajoutez 1.
Exemple pour −5 : 5 s’écrit 0000 0101. Inversé, cela donne 1111 1010. En ajoutant 1, on obtient 1111 1011.
Le même motif lu comme non signé a la valeur 256 − x. Pour −5, cela fait 251, et 1111 1011 vaut bien 128 + 64 + 32 + 16 + 8 + 2 + 1 = 251.
Auto-évaluation Le motif de 8 bits 1111 1111 stocke un nombre en complément à deux. Quelle est sa valeur ?
255
−127
−128
−1
Réponse: −1. −128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = −1. 255 est la lecture non signée. −127 vient du fait de traiter le premier bit comme un signe moins devant 111 1111.
4La méthode pas à pas
Du binaire ou de l’hexadécimal au décimal :
Écrivez la valeur du rang sous chaque chiffre : puissances de 2 pour le binaire, puissances de 16 pour l’hexadécimal, en commençant par 1 à droite.
En hexadécimal, remplacez chaque lettre par sa valeur : A = 10 jusqu’à F = 15.
Multipliez chaque chiffre par la valeur de son rang et additionnez le tout.
Complément à deux :
Pour lire un motif, donnez au bit le plus à gauche la valeur −128 (sur 8 bits) et additionnez les valeurs des rangs de tous les bits à 1.
Pour écrire −x, écrivez +x sur 8 bits, inversez chaque bit et ajoutez 1.
La valeur non signée de ce motif est 256 − x. Servez-vous-en pour vérifier vos bits.
Bits, plages de valeurs et mémoire :
n bits donnent 2ⁿ motifs différents.
Non signés, ils stockent de 0 à 2ⁿ − 1. En complément à deux, ils stockent de −2ⁿ⁻¹ à 2ⁿ⁻¹ − 1.
Pour donner à k éléments leur propre code, trouvez le plus petit b tel que 2b ≥ k.
Pour la mémoire, multipliez le nombre d’éléments par le nombre de bits par élément, puis divisez par 8 pour obtenir des octets et par 1024 pour obtenir des KiB.
M = largeur × hauteur × bits par pixel / 8 / 1024 (KiB)
5Un exemple détaillé
Suivez chaque étape. Essayez de deviner la suivante avant de l’ouvrir.
Exemple détaillé
Le motif de 8 bits 1011 0110 stocke un entier signé en complément à deux. Quelle est sa valeur N en décimal ?
1
Écrivez les valeurs des rangs
En complément à deux, le rang le plus à gauche vaut −128. Les autres rangs valent 64, 32, 16, 8, 4, 2 et 1.
2
Regardez le bit de signe
Le bit le plus à gauche vaut 1, donc le nombre est négatif.
3
Additionnez les bits à 1
Les bits à 1 sont aux rangs −128, 32, 16, 4 et 2.
N = −128 + 32 + 16 + 4 + 2 = −74
4
Vérifiez avec la valeur non signée
Lu comme non signé, le motif vaut 128 + 32 + 16 + 4 + 2 = 182.
Pour un nombre négatif, la valeur non signée est 256 − x, donc x = 256 − 182 = 74. On retrouve N = −74.
5
Vérifiez en inversant
Inversez 1011 0110 pour obtenir 0100 1001, puis ajoutez 1 pour obtenir 0100 1010.
0100 1010 vaut 64 + 8 + 2 = 74. Le motif d’origine vaut donc −74.
Réponse
N = −74
6Erreurs fréquentes
Oublier d’ajouter 1 après avoir inversé les bits. Vous obtenez un résultat trop bas de un.
Lire un motif en complément à deux comme non signé, par exemple 1111 1111 comme 255 au lieu de −1.
Traiter le bit de signe comme un signe moins devant les autres bits. En complément à deux, il vaut −128.
Donner les rangs dans le mauvais ordre. Le rang qui vaut 1 est toujours à droite.
Utiliser A = 11 en hexadécimal. Les lettres commencent à A = 10.
Mélanger bits et octets dans les questions de mémoire. Divisez le nombre de bits par 8.
Auto-évaluation Quel est −5 sous forme de motif en complément à deux sur 8 bits ?
0000 0101
1000 0101
1111 1010
1111 1011
Réponse: 1111 1011. 5 s’écrit 0000 0101. Inverser donne 1111 1010, et ajouter 1 donne 1111 1011. 1111 1010 oublie d’ajouter 1, et 1000 0101 met un signe moins devant 5.
7À quoi ressemblent les questions d’examen
Facile : du binaire et de l’hexadécimal au décimal. Convertissez un nombre binaire de 8 bits ou un nombre hexadécimal à 3 chiffres en décimal.
Moyen : complément à deux. Lisez la valeur d’un motif signé de 8 bits, ou écrivez un nombre négatif sous forme de motif et donnez sa valeur non signée.
Difficile : bits, plages de valeurs et mémoire. La plus grande ou la plus négative valeur qui tient sur n bits, le nombre de bits nécessaires pour k codes, ou la mémoire occupée par une image.
Exemple de question difficile : une image de 256 × 256 avec 24 bits par pixel occupe 256 · 256 · 24 / 8 / 1024 = 192 KiB.
Auto-évaluation Quel est le plus petit nombre de bits qui donne à 375 éléments leur propre code ?
188
512
8
9
Réponse: 9. 2⁸ = 256 donne trop peu de codes, 2⁹ = 512 suffit, donc 9 bits. 512 est le nombre de codes, pas le nombre de bits.
Convertis le nombre hexadécimal 0x2BE en décimal. Trouve N.
0x2BEA = 10 … F = 15
Calculer N
Afficher les indices
En hexadécimal, les positions valent 1, 16, 256, 4096 en partant de la droite.
Remplace les lettres par leur valeur (A = 10 … F = 15), multiplie par le poids et additionne.
2 = 2, B = 11, E = 14.
Afficher la réponse et la solution pas à pas
Systèmes de numération positionnels : chaque chiffre vaut sa valeur multipliée par une puissance de la base. En binaire les positions valent 1, 2, 4, 8, 16, … ; en hexadécimal 1, 16, 256, …, avec A–F pour 10–15. En complément à deux sur 8 bits, le bit de gauche vaut −128 au lieu de +128 : c'est ainsi qu'on stocke les nombres négatifs.
Multiplier chaque chiffre par son poids
2·256 + 11·16 + 14·1 = 702
Réponse
0x2BE = 702
Exemple 2Moyen
Positionnez les bits pour qu’ils représentent −45 en complément à deux sur 8 bits. Lu comme un nombre non signé, quelle est la valeur U du motif ?
N = −458 bit
Calculer U
Afficher les indices
Écrivez 45 en binaire, inversez chaque bit, puis ajoutez 1.
45 = 0010 1101₂.
En tant que nombre non signé, le motif vaut 256 + N.
Afficher la réponse et la solution pas à pas
Positionner les bits : chaque bit vaut une puissance de deux (128, 64, …, 1). Un chiffre hexadécimal correspond exactement à quatre bits, et en complément à deux sur 8 bits, le bit le plus à gauche vaut −128. Les opérations bit à bit s’appliquent séparément à chaque position de bit.
Inverser et ajouter un
45 = 0010 1101
inversé: 1101 0010
+1 → 1101 0011
Le lire en non signé
1101 0011₂ = 256 − 45 = 211
Réponse
U = 211
Exemple 3Difficile
Positionnez les bits sur le résultat sur 8 bits de 0111 0001 >> 3. Quelle est la valeur R du résultat en décimal ?
0111 0001>> 3
Calculer R
Afficher les indices
Un décalage à droite de 3 déplace chaque bit de 3 positions vers la droite ; les bits qui sortent à l’extrémité droite sont perdus et des zéros entrent à gauche.
Travaillez une position de bit à la fois, de gauche à droite.
Les quatre premiers bits du résultat sont 0000.
Afficher la réponse et la solution pas à pas
Positionner les bits : chaque bit vaut une puissance de deux (128, 64, …, 1). Un chiffre hexadécimal correspond exactement à quatre bits, et en complément à deux sur 8 bits, le bit le plus à gauche vaut −128. Les opérations bit à bit s’appliquent séparément à chaque position de bit.
Bit par bit
Un décalage à droite de 3 déplace chaque bit de 3 positions vers la droite ; les bits qui sortent à l’extrémité droite sont perdus et des zéros entrent à gauche.
0111 0001 >> 3
= 0000 1110
Valeur du résultat
0000 1110₂ = 14
Réponse
R = 14
Questions et réponses
Systèmes de numération : de quoi s’agit-il ?
Dans la vie courante, vous comptez en décimal, base 10. Il a dix chiffres, de 0 à 9, et chaque rang vaut dix fois le rang à sa droite.
Dans 352, le 3 vaut 300, le 5 vaut 50 et le 2 vaut 2. Les rangs valent 1, 10, 100 en partant de la droite.
Systèmes de numération : comment résoudre les exercices étape par étape ?
Systèmes de numération positionnels : chaque chiffre vaut sa valeur multipliée par une puissance de la base. En binaire les positions valent 1, 2, 4, 8, 16, … ; en hexadécimal 1, 16, 256, …, avec A–F pour 10–15. En complément à deux sur 8 bits, le bit de gauche vaut −128 au lieu de +128 : c'est ainsi qu'on stocke les nombres négatifs.
Systèmes de numération : que couvrent les exercices ?
Facile: du binaire et de l'hexa au décimal
Moyen: complément à deux
Difficile: bits, plages et mémoire
Chaque exercice a de nouvelles valeurs : vous apprenez la méthode, pas une réponse. Bloqué ? Ouvrez d’abord un petit indice, et l’explication complète seulement si vous en avez besoin.
Comment fonctionne l’entraînement
Chaque exercice a de nouvelles valeurs : vous apprenez la méthode, pas une réponse.
Bloqué ? Ouvrez d’abord un petit indice, et l’explication complète seulement si vous en avez besoin.
Votre progression, vos erreurs et vos exercices enregistrés sont conservés pour que vous puissiez réviser avant l’examen.