Première · Représentation des données

Binaire, décimal et hexadécimal : changer de base

Le nombre treize peut s’écrire 13, 1101 ou D selon la base choisie. La quantité reste la même ; seule sa représentation change. Comprendre cette idée permet de lire les données d’une machine sans confondre un nombre et son écriture.

SofienAvec SofienIngénieur et enseignant en informatique
Dans ce chapitre

Un cap pour ce chapitre

Ce que vous saurez faire

  • Convertir un entier entre bases 2 10 et 16
  • Justifier une conversion par les poids de position
  • Relier un chiffre hexadécimal à quatre bits

Les notions nécessaires sont introduites dans cette ressource.

La position donne le poids du chiffre

En base dix, 347 signifie 3 × 100 + 4 × 10 + 7 × 1. Les poids sont les puissances de dix. En base deux, chaque position porte une puissance de deux, en commençant par 1 à droite : 1, 2, 4, 8, 16, etc. Ainsi 1101 en base deux représente 1 × 8 + 1 × 4 + 0 × 2 + 1 × 1, soit 13 en décimal. La base impose aussi les chiffres autorisés : seulement 0 et 1 en binaire, de 0 à 9 en décimal.

Plus généralement, une base entière b supérieure ou égale à 2 utilise b chiffres et des poids 1, b, b², b³, etc. En base trois, les chiffres autorisés sont 0, 1 et 2 : 102₃ vaut 1 × 9 + 0 × 3 + 2 = 11 en décimal. Les méthodes se généralisent en divisant par la base choisie ; les bases 2, 10 et 16 restent les principales travaillées ici.

Un zéro intérieur doit être conservé : il indique qu’un poids n’est pas utilisé. Dans mille un en binaire, les deux zéros empêchent le dernier un de prendre le poids deux ou quatre. Supprimer des zéros à gauche ne change pas la valeur, mais supprimer ceux du milieu la change généralement.

Passer du décimal à une autre base

Pour convertir un entier positif en base deux, on peut chercher les puissances de deux qui le composent. Pour 26, on prend 16, puis 8, puis 2 : les coefficients des poids 16, 8, 4, 2 et 1 sont 1, 1, 0, 1 et 0. On obtient 11010. Une autre méthode effectue des divisions entières successives par deux et lit les restes dans l’ordre inverse. L’inversion est essentielle : le premier reste correspond au poids le plus faible, donc au chiffre situé le plus à droite.

Pour zéro, l’algorithme de divisions peut ne produire aucun reste si la boucle exige un nombre strictement positif. Il faut prévoir explicitement l’écriture zéro. Pour les autres entiers, chaque quotient diminue jusqu’à zéro, ce qui explique la terminaison des divisions successives.

L’hexadécimal abrège les longues suites de bits

En base seize, les chiffres supplémentaires A, B, C, D, E et F représentent les valeurs 10 à 15. Par exemple 2F vaut 2 × 16 + 15, soit 47. Puisque 16 vaut 2 puissance 4, chaque chiffre hexadécimal correspond exactement à quatre bits. On peut donc regrouper une écriture binaire par paquets de quatre en partant de la droite. Des zéros ajoutés à gauche complètent le premier groupe sans modifier la valeur. Cette correspondance explique l’usage fréquent de l’hexadécimal pour représenter des octets.

Un groupe hexadécimal interne doit garder quatre bits lors de la conversion inverse. Ainsi A3 devient 1010 0011, et non 1010 11. Sans les deux zéros du second groupe, les poids changeraient. Le remplissage concerne chaque chiffre, pas seulement la largeur finale.

Vérifier sans mélanger les écritures

Une réponse de conversion doit indiquer la base pour rester interprétable : 10 signifie dix en base dix, mais deux en base deux. On peut employer des indices ou annoncer la base dans la phrase. Python reconnaît les préfixes 0b pour le binaire et 0x pour l’hexadécimal ; bin et hex produisent des chaînes représentant un entier. Ces outils sont pratiques pour vérifier un calcul, mais une justification scolaire doit montrer les poids ou les divisions. Reconvertir le résultat vers le décimal constitue une vérification indépendante particulièrement simple.

nombre = 26
print(bin(nombre))
print(hex(nombre))
print(int("11010", 2))

Une base fait partie de la donnée lorsqu’on reçoit une chaîne. Le texte "10" ne suffit pas à savoir si le nombre vaut deux, dix ou seize. Les préfixes et les annotations de base servent à lever cette ambiguïté dans les programmes comme dans les copies.

Une conversion entière avec ses deux vérifications

Pour convertir 83 en binaire par divisions, on obtient les couples quotient-reste suivants : 41 et 1 ; 20 et 1 ; 10 et 0 ; 5 et 0 ; 2 et 1 ; 1 et 0 ; 0 et 1. Les restes lus du dernier au premier donnent 1010011. La somme des poids actifs vaut 64 + 16 + 2 + 1, soit 83.

En complétant à gauche, on obtient 0101 0011, donc 53 en hexadécimal. La vérification 5 * 16 + 3 redonne aussi 83. Les deux chemins permettent de détecter une inversion des restes ou un mauvais regroupement des bits.

Anticiper les changements de largeur

Les entiers de zéro à quinze tiennent sur quatre bits. Quinze s’écrit 1111, puis seize s’écrit 10000 : augmenter d’une unité peut donc changer plusieurs positions et demander une nouvelle case. En hexadécimal, le passage correspondant va de F à 10.

Plus généralement, une nouvelle position apparaît à chaque puissance de la base. Trente et un tient sur cinq bits, trente-deux en demande six. Pour prévoir la largeur, cherchez la puissance immédiatement supérieure à la valeur. La taille de son écriture décimale ne permet pas de déduire directement sa taille binaire.

À vous de faire varier les choses

Un nombre, trois écritures

Faites varier l’entier. Repérez les poids actifs et essayez de prédire le prochain changement de chiffre hexadécimal.

Lire le résultat de l’expérience initiale

58 en décimal = 00111010 en binaire = 3A en hexadécimal

Les zéros à gauche fixent ici une présentation sur huit bits sans changer la valeur.

PoidsBitContribution
12800
6400
32132
16116
818
400
212
100

Les bits actifs indiquent les poids à additionner. Le regroupement par quatre donne directement les chiffres hexadécimaux.

De la compréhension à l’autonomie

À vous de résoudre

Cherchez d’abord par vous-même. Vérifiez les résultats demandés, utilisez les indices si nécessaire, puis comparez votre méthode à la correction.

Exercice 1 · S’entraîner#

Lire les poids

Convertissez 101101 en base deux vers le décimal, en écrivant les contributions des bits à 1.

Indice 1

Le bit le plus à gauche porte ici le poids 32.

Indice 2

Les poids de droite à gauche sont 1, 2, 4, 8, 16 et 32.

Comprendre la correction

Les bits à 1 correspondent à 32, 8, 4 et 1. Leur somme vaut 45. Les positions de poids 16 et 2 apportent zéro. Écrire toutes les positions évite de décaler les poids lorsque deux bits identiques se suivent ; on obtient bien 101101₂ = 45₁₀.

Exercice 2 · S’entraîner#

Construire l’écriture

Écrivez 58 en binaire, puis vérifiez la réponse par une somme de puissances de deux.

Indice 1

La plus grande puissance de deux inférieure ou égale à 58 est 32.

Indice 2

Après 32, il reste 26 à représenter.

Comprendre la correction

On décompose 58 = 32 + 16 + 8 + 2. Pour les poids 32, 16, 8, 4, 2 et 1, les bits sont donc 1, 1, 1, 0, 1, 0. L’écriture est 111010. La somme des contributions retrouve 58 et confirme que le zéro du poids 4 n’a pas été oublié.

Exercice 3 · S’entraîner#

Changer rapidement entre deux et seize

Convertissez 11100101 en hexadécimal, puis retrouvez sa valeur décimale.

Indice 1

Séparez deux groupes de quatre bits depuis la droite.

Indice 2

1110 correspond à 14 et 0101 à 5.

Comprendre la correction

Les groupes 1110 et 0101 donnent E et 5 : l’écriture est E5 en hexadécimal. En décimal, E5 vaut 14 × 16 + 5 = 229. On retrouve aussi 128 + 64 + 32 + 4 + 1 = 229 à partir du binaire. Les deux chemins se vérifient mutuellement.

Exercice 4 · S’entraîner#

Diagnostiquer une écriture impossible

Un élève écrit 1021 comme nombre binaire et affirme que 10 vaut toujours dix. Expliquez les deux erreurs.

Indice 1

Une base fixe l’ensemble des chiffres autorisés.

Indice 2

La valeur du chiffre 1 dépend aussi de sa position.

Comprendre la correction

1021 n’est pas une écriture binaire valide, car le chiffre 2 n’existe pas en base deux. L’écriture 10 vaut la base elle-même : deux en binaire, dix en décimal et seize en hexadécimal. Il faut donc annoncer la base avant de donner un sens numérique à cette suite de caractères.

Exercice 5 · Approfondir et relier#

Deux routes vers le même nombre

Convertissez 93 en binaire par décomposition, puis en hexadécimal par groupes de quatre. Reconvertissez l’hexadécimal en décimal et expliquez le rôle des zéros ajoutés à gauche.

Indice 1

93 contient les poids 64, 16, 8, 4 et 1.

Indice 2

Chaque chiffre hexadécimal représente quatre bits.

Comprendre la correction

On obtient 1011101, puis 0101 1101 en complétant le groupe gauche. Cela donne 5D. La reconstruction est cinq fois seize plus treize, soit 93. Le zéro ajouté à gauche ne contribue pas à la valeur ; il sert uniquement à présenter des groupes de largeur identique.

Exercice 6 · Approfondir et relier#

Une erreur de regroupement

Un élève transforme B2 en 1011 10, puis annonce 46. Expliquez pourquoi son dernier calcul peut être juste alors que la conversion est fausse. Corrigez le motif et retrouvez le décimal.

Indice 1

Le chiffre deux doit fournir quatre bits.

Indice 2

Ne supprimez pas les zéros au début du second groupe.

Comprendre la correction

Le motif erroné 101110 représente bien 46. Mais B2 doit devenir 1011 0010 : les deux bits de poids faible appartiennent à un groupe de quatre. La valeur correcte est onze fois seize plus deux, soit 178. Vérifier seulement le calcul final ne suffisait pas ; il fallait contrôler la représentation intermédiaire.

Exercice 7 · Approfondir et relier#

Un compteur au changement de base

Un compteur passe de 63 à 64. Donnez les écritures binaires et hexadécimales avant et après. Combien de bits sont nécessaires dans chaque cas ? Expliquez pourquoi les deux nombres utilisent pourtant deux chiffres en hexadécimal.

Indice 1

63 vaut un de moins que 64, une puissance de deux.

Indice 2

En base seize, comparez trois fois seize plus quinze à quatre fois seize.

Comprendre la correction

63 s’écrit 111111 et 3F ; 64 s’écrit 1000000 et 40. La largeur binaire passe de six à sept bits. Les deux valeurs restent comprises entre seize et 255, intervalle représentable avec deux chiffres hexadécimaux. Un changement de largeur dépend donc de la base.

Les erreurs qui méritent un détour

Lire les restes dans l’ordre des divisions
Le premier reste est le chiffre de poids faible. Il apparaît donc à droite dans l’écriture finale.
Grouper les bits depuis la gauche
Pour l’hexadécimal, partez de la droite et complétez éventuellement à gauche par des zéros.

La fiche à garder

L’essentiel à retenir

  • La valeur est une somme de chiffres multipliés par leurs poids.
  • Changer de base change l’écriture, pas la quantité.
  • Quatre bits correspondent à un chiffre hexadécimal.

Cette notion au bac

Retrouvez ces idées dans un sujet complet, avec des indices, une correction expliquée et des ateliers.

Le prochain pas

Retrouver le catalogue de Première

Ce chapitre s’appuie sur le programme officiel de Première (PDF, nouvel onglet). Les explications et exercices sont proposés pour l’apprentissage.