💻 NSI1rePremièreSans inscription

Représentation des données — Binaire, hexadécimal

Programme en vigueur — arrêtés du 17 janvier 2019, applicable en Première depuis la rentrée 2019. Voir le texte

Binaire : base 2, conversions décimal↔binaire, représentation signée (complément à 2). Hexadécimal : base 16, conversions. Codage des caractères : ASCII, UTF-8. Représentation des flottants (norme IEEE 754).

La règle d'or

Un nombre décimal aussi simple que 0,1 n'a pas d'écriture finie en base 2 : un flottant n'en stocke qu'une approximation.

L'erreur que tout le monde fait

Tester l'égalité de deux nombres flottants avec un opérateur d'égalité stricte, et s'étonner que la somme de 0,1 et 0,2 ne vaille pas 0,3.

La machine ne stocke pas les valeurs décimales écrites dans le programme, mais le flottant le plus proche représentable sur un nombre fini de bits. Les écarts d'arrondi se cumulent à chaque opération, si bien que deux calculs mathématiquement identiques donnent des représentations différentes.

Comparer deux flottants en testant si la valeur absolue de leur différence est inférieure à un seuil choisi.

Notions à maîtriser

  • binaire
  • hexadécimal
  • complément à 2
  • ASCII
  • UTF-8
  • flottant
  • IEEE 754
1

Réviser

Fiche de révision

Binaire & Hexadécimal : les bases à maîtriser

Représentation des données : Binaire et Hexadécimal 1. Le système binaire (base 2) Le binaire utilise 2 chiffres : 0 et 1. Chaque chiffre est appelé bit (binary digit). Un group

Lire la fiche

Additionnez 0,1 et 0,2 dans n'importe quel langage : le résultat n'est pas 0,3. Ce n'est ni un bug ni une imprécision de la machine, c'est une conséquence directe de la base 2. Comprendre pourquoi évite l'une des erreurs les plus tenaces de la programmation débutante.

1Compter en base 2

Définition

Binaire — Le binaire est la numération en base 2 : chaque chiffre, appelé bit, vaut 0 ou 1, et chaque position vaut une puissance de 2 croissante de droite à gauche. Un octet est un groupe de 8 bits. Convertir du binaire vers le décimal consiste à additionner les puissances de 2 correspondant aux bits à 1.

Exemple

Combien de valeurs différentes un octet peut-il représenter ?

  1. Chaque bit prend 2 valeurs, et les 8 bits sont indépendants.
  2. Le nombre de combinaisons est donc le produit :
  3. Soit 256 valeurs — de 0 à 255 pour des entiers non signés.

256 valeurs

Définition

Hexadécimal — L'hexadécimal est la base 16, qui emploie les chiffres 0 à 9 puis les lettres A à F pour 10 à 15. Son intérêt est pratique : un chiffre hexadécimal correspond exactement à quatre bits, et un octet s'écrit donc avec deux chiffres. C'est pourquoi on l'emploie pour les couleurs, les adresses mémoire et les octets bruts — il abrège le binaire sans en trahir la structure.

2Les entiers négatifs

Règle

La représentation en complément à 2 permet de coder les entiers négatifs sans signe séparé. Le bit de poids fort vaut alors une puissance négative : sur 8 bits, il vaut −128, et les sept autres gardent leurs valeurs positives. L'intérêt est décisif : l'addition fonctionne sans cas particulier, le même circuit additionne des nombres positifs et négatifs. Sur 8 bits, on représente ainsi les entiers de −128 à 127.

Cette plage explique les débordements : ajouter 1 à la plus grande valeur représentable ne donne pas la valeur suivante mais la plus petite, le compteur repartant à l'autre extrémité. Un programme qui ne vérifie pas ses bornes produit alors un résultat parfaitement déterministe et parfaitement faux — c'est l'origine de nombreux incidents célèbres.

3Coder les caractères

Propriété

La table ASCII associe un code à chaque caractère de l'alphabet latin non accentué, sur 7 bits, soit 128 caractères. Elle ne suffit évidemment pas aux autres écritures. UTF-8 résout le problème par un codage de longueur variable : les caractères ASCII y gardent leur code sur un octet — ce qui assure la compatibilité —, et les autres en occupent deux, trois ou quatre. Un texte accentué occupe donc plus d'octets que de caractères.

D'où une conséquence pratique constante : la longueur en caractères d'une chaîne et sa taille en octets ne coïncident pas. Compter l'un pour l'autre produit des chaînes tronquées au milieu d'un caractère, et c'est l'origine des caractères illisibles qu'on voit encore apparaître dans certains logiciels.

4Les nombres à virgule

Règle

Un flottant est codé selon la norme IEEE 754 : un signe, un exposant et une mantisse, sur un nombre fini de bits. Or un nombre décimal aussi simple que 0,1 n'a pas d'écriture finie en base 2, exactement comme un tiers n'en a pas en base 10. Le flottant n'en stocke donc qu'une approximation, et les erreurs s'accumulent au fil des calculs.

Piège

Tester l'égalité de deux nombres flottants avec un opérateur d'égalité stricte, et s'étonner que la somme de 0,1 et 0,2 ne vaille pas 0,3.

Pourquoi — Aucun des trois nombres n'est stocké exactement : l'égalité porte donc sur des approximations, et rien ne garantit que deux chemins de calcul différents aboutissent au même arrondi. Le test échoue alors sans qu'aucune erreur de programmation n'ait été commise. La solution est de comparer à une tolérance près : vérifier que l'écart absolu est inférieur à un seuil choisi.

Le réflexe — Sur des flottants, comparer un écart à un seuil, jamais deux valeurs.

Convertir un nombre entre bases

  1. Identifier la base de départ et la base d'arrivée avant toute chose.
  2. Vers le décimal : additionner chaque chiffre multiplié par la puissance de la base correspondant à sa position.1011 en base 2 vaut 11 en décimal.
  3. Depuis le décimal : diviser successivement par la base et lire les restes de bas en haut.
  4. Entre binaire et hexadécimal : regrouper les bits par quatre, aucune division n'est nécessaire.
  5. Vérifier l'ordre de grandeur : un octet ne dépasse pas 255 en non signé.
  • ▢Ai-je vérifié la base de départ avant de convertir ?
  • ▢Mes puissances de 2 sont-elles comptées de droite à gauche à partir de 0 ?
  • ▢Pour passer du binaire à l'hexadécimal, ai-je regroupé par quatre bits ?
  • ▢En complément à 2, ai-je donné au bit de poids fort une valeur négative ?
  • ▢Ai-je distingué longueur en caractères et taille en octets en UTF-8 ?
  • ▢Ai-je comparé mes flottants à une tolérance près ?

L'essentiel en 11 points

  • ·Binaire : base 2, chaque position vaut une puissance de 2.
  • ·Un octet = 8 bits = 256 valeurs, de 0 à 255 en non signé.
  • ·Hexadécimal : base 16 ; un chiffre = quatre bits, un octet = deux chiffres.
  • ·Entre binaire et hexadécimal, regrouper par quatre — pas de division.
  • ·Complément à 2 : le bit de poids fort vaut −2ⁿ⁻¹, plage −128 à 127 sur 8 bits.
  • ·Avantage : l'addition fonctionne sans cas particulier.
  • ·Un débordement est déterministe : le défaut est dans le programme.
  • ·ASCII : 7 bits, 128 caractères. UTF-8 : longueur variable, compatible ASCII.
  • ·Longueur en caractères ≠ taille en octets.
  • ·IEEE 754 : un flottant stocke une approximation.
  • ·Comparer des flottants par un écart à un seuil, jamais par égalité stricte.
2

Imprimer

Fiche PDF — Représentation des données — Binaire, hexadécimal

Gratuit · sans compte

Trois documents à imprimer, 6 pages en tout : le cours, les exercices avec la place pour écrire, et le corrigé détaillé avec son barème.

Au sommaire du cours

  1. 1. Compter en base 2
  2. 2. Les entiers négatifs
  3. 3. Coder les caractères
  4. 4. Les nombres à virgule

Conforme au programme officiel · version 2026.1.

3

Exercices corrigés

1

Conversions. Détailler le calcul.

Connaître
  1. a.Convertir 1011 en base 2 vers le décimal.
  2. b.Convertir 1A en hexadécimal vers le décimal.
  3. c.Combien de valeurs un octet représente-t-il ? Quelle plage en non signé ?
  4. d.Convertir FF en hexadécimal vers le décimal.
  5. e.Pourquoi un chiffre hexadécimal vaut-il exactement quatre bits ?
›Voir le corrigé
  1. a. On additionne les puissances de 2 des bits à 1 :
  2. Soit 11.
  3. b. Le A vaut 10 :
  4. Soit 26.
  5. c. 256 valeurs, de 0 à 255 en non signé.
  6. d. Chaque F vaut 15 :
  7. Soit 255, la plus grande valeur d'un octet.
  8. e. Parce que quatre bits représentent 16 combinaisons, exactement le nombre de chiffres de la base 16.
2

Complément à 2 sur 8 bits. Raisonner.

Raisonner
  1. a.Quelle plage d'entiers peut-on représenter ? Justifier par un calcul.
  2. b.Quelle valeur le bit de poids fort représente-t-il ?
  3. c.Quel est l'intérêt de ce codage pour le processeur ?
  4. d.Que se passe-t-il si l'on ajoute 1 à la valeur 127 ?
  5. e.Pourquoi ce résultat n'est-il pas un dysfonctionnement ?
›Voir le corrigé
  1. a. De −128 à 127. Le total reste 256 valeurs :
  2. Les 256 combinaisons sont réparties entre négatifs, zéro et positifs.
  3. b. −128 : en complément à 2, le bit de poids fort porte une puissance négative.
  4. c. L'addition fonctionne sans cas particulier : le même circuit additionne des nombres positifs et négatifs, sans traiter le signe à part.
  5. d. On obtient −128 : le compteur repart à l'autre extrémité de la plage. C'est un débordement.
  6. e. Parce que le résultat est parfaitement déterministe : il découle de la représentation choisie et du nombre de bits disponibles. Le défaut est dans le programme qui n'a pas vérifié ses bornes, pas dans la machine.
3

Codage des caractères. Répondre et justifier.

Appliquer
  1. a.Sur combien de bits repose ASCII ? Combien de caractères code-t-elle ?
  2. b.Comment UTF-8 assure-t-il la compatibilité avec ASCII ?
  3. c.Un texte de 10 caractères dont 3 accentués occupe-t-il 10 octets ?
  4. d.Quelle erreur produit le fait de tronquer une chaîne à un nombre d'octets ?
›Voir le corrigé
  1. a. Sur 7 bits, soit 128 caractères.
  2. b. Les caractères ASCII y conservent leur code, sur un seul octet. Un fichier purement ASCII est donc déjà de l'UTF-8 valide.
  3. c. Non. Les caractères accentués occupent deux octets en UTF-8, soit 13 octets au total.
  4. d. On peut couper au milieu d'un caractère codé sur plusieurs octets. La séquence obtenue n'est plus décodable, ce qui produit les caractères illisibles qu'on voit apparaître dans certains logiciels.
4

Les flottants. Analyser.

Analyser
  1. a.Pourquoi 0,1 n'a-t-il pas d'écriture finie en base 2 ?
  2. b.Que stocke alors un flottant selon la norme IEEE 754 ?
  3. c.Pourquoi la somme de 0,1 et 0,2 ne teste-t-elle pas égale à 0,3 ?
  4. d.Comment comparer correctement deux flottants ?
  5. e.Dans quel type d'application ce problème devient-il critique ?
›Voir le corrigé
  1. a. Pour la même raison qu'un tiers n'en a pas en base 10 : l'écriture d'une fraction n'est finie que si son dénominateur se décompose avec les facteurs premiers de la base. Dix vaut 2 × 5, et le facteur 5 ne se retrouve pas en base 2.
  2. b. Une approximation : un signe, un exposant et une mantisse sur un nombre fini de bits. La valeur stockée est la plus proche représentable, pas la valeur exacte.
  3. c. Parce qu'aucun des trois nombres n'est stocké exactement. L'égalité porte sur des approximations, et deux chemins de calcul différents n'aboutissent pas nécessairement au même arrondi.
  4. d. En comparant l'écart absolu à un seuil choisi : vérifier que la différence est inférieure à une tolérance, jamais tester l'égalité stricte.
  5. e. Partout où les erreurs s'accumulent ou où le résultat est comparé à un seuil : calculs financiers répétés, simulations sur de nombreuses itérations, conditions d'arrêt d'un algorithme numérique. Une erreur d'arrondi négligeable une fois ne l'est plus après un million d'opérations.

Ce qui rapporte des points, ce qui en coûte

  • Convertir entre bases avec le détail4 ptsPerdu si : Compter les puissances de gauche à droite
  • Regrouper par quatre bits pour l'hexadécimal3 ptsPerdu si : Passer par le décimal inutilement
  • Expliquer le complément à 2 et sa plage4 ptsPerdu si : Traiter le bit de signe comme une valeur positive
  • Distinguer caractères et octets en UTF-84 ptsPerdu si : Compter un octet par caractère
  • Expliquer l'approximation des flottants5 ptsPerdu si : Attribuer l'écart à un bug de la machine
4

La méthode

Convertir un nombre entre bases

  1. 1

    Identifier la base de départ et la base d'arrivée avant d'écrire quoi que ce soit.

  2. 2

    Passer par la base dix comme pivot lorsque ni l'une ni l'autre n'est une puissance de deux.

  3. 3

    Regrouper les bits par paquets de quatre pour passer directement du binaire à l'hexadécimal.

    Quatre bits codent exactement un chiffre hexadécimal, ce qui évite tout calcul.

  4. 4

    Vérifier le résultat en recomposant la valeur décimale à partir des poids de chaque chiffre.

  5. 5

    Contrôler le nombre de bits disponibles, qui fixe la plus grande valeur représentable.

5

Se tester

NSIPremière
Question 1
Dans un jeu vidéo, le personnage principal possède une barre de vie codée sur 16 bits en complément à 2. Sa vie actuelle est −128-128. Quelle est la valeur hexadécimale de ce code ?

Aucun compte requis — réponds, la correction s'affiche aussitôt.

Signaler une erreur

Se tester en conditions de contrôle

1 contrôle sur ce chapitre, chacun avec sa durée, son barème sur vingt et un corrigé qui explique chaque réponse.

Garder ta progression ?

Tes réponses sont déjà comptées dans ce navigateur. Un compte gratuit les conserve d'un appareil à l'autre et débloque le suivi de tes points faibles.

Questions fréquentes

Représentation des données — Binaire, hexadécimal : c'est en quelle classe ?

Ce chapitre est au programme de NSI au lycée, en classe de Première, année du Bac de français. Il est défini par le Bulletin Officiel de l'Éducation nationale, le texte de référence qui fixe ce qui doit être enseigné dans chaque matière.

Que faut-il savoir sur Représentation des données — Binaire, hexadécimal ?

Binaire : base 2, conversions décimal↔binaire, représentation signée (complément à 2). Hexadécimal : base 16, conversions. Codage des caractères : ASCII, UTF-8. Représentation des flottants (norme IEEE 754). Les notions à maîtriser sont : binaire, hexadécimal, complément à 2, ASCII, UTF-8, flottant.

Où télécharger la fiche PDF de Représentation des données — Binaire, hexadécimal ?

Sur cette page, dans le bloc « Imprimer » : 3 documents à télécharger — le cours, les exercices et le corrigé — soit 6 pages au format A4, prêtes à imprimer. Le téléchargement est gratuit, immédiat, et ne demande ni compte ni adresse e-mail.

Le corrigé de Représentation des données — Binaire, hexadécimal est-il fourni ?

Oui, et c'est un document à part : chaque exercice y est repris étape par étape, avec le barème détaillé en fin de fiche — ce qui est attendu, combien de points, et ce qui fait perdre le point. Un parent qui ne se souvient plus du programme peut corriger une copie avec.

Représentation des données — Binaire, hexadécimal peut-il tomber au Bac de français ?

Ce chapitre fait partie du programme officiel de Première, il entre donc dans le périmètre du Bac de français. Le sujet exact varie chaque année et aucun chapitre n'est garanti, mais l'ensemble du programme de l'année est susceptible d'être évalué : mieux vaut ne pas parier sur des impasses.

Comment réviser Représentation des données — Binaire, hexadécimal efficacement ?

Commence par lire la fiche de révision pour remettre la règle en place, puis enchaîne immédiatement sur le quiz de cette page. Répondre juste après avoir lu ne suffit pas : reviens sur le chapitre deux ou trois jours plus tard. C'est l'espacement des révisions, plus que leur durée, qui fait tenir une notion en mémoire. Une session de quinze minutes répétée vaut mieux qu'une heure unique.

Faut-il un compte pour s'entraîner sur Représentation des données — Binaire, hexadécimal ?

Non. Les quiz, les corrections détaillées et les fiches de révision sont accessibles sans créer de compte et sans donner d'adresse e-mail. Le compte gratuit sert uniquement à conserver la progression d'un appareil à l'autre.

Notions voisines

Les chapitres qui traitent des mêmes notions, ici ou dans une autre année.