Aller au contenu
FUTUR BTS FuturBTS
MATH · chapitre 1 Chapitre offert

Compter en binaire et en hexadécimal

Ce que tu sauras faire : Écrire un entier ou un nombre à virgule en base 10, 2 et 16, passer d'une base à l'autre sans erreur, et lire les nombres que tu rencontres en informatique (octets, adresses, couleurs, codes).

1 h 30 de cours 10 exercices corrigés 10 questions de quiz

1. Pourquoi compter en binaire

Un ordinateur ne connaît que deux états : le courant passe ou ne passe pas. Pour l’informaticien, savoir écrire les nombres avec deux chiffres, puis avec seize, est aussi indispensable que savoir lire une adresse IP. Ce chapitre t’apprend les règles d’écriture et les conversions ; le calcul lui-même est au chapitre MATH-02.

ALucas découvre les nombres de l’informatique

Lucas Ferrandi prépare son BTS SIO option SISR en alternance chez Vellacor Services Numériques, une entreprise de services du numérique installée à Niort. Son tuteur, Julien Maréchal, lui confie sa première tâche de la semaine : vérifier la configuration d’une borne Wi-Fi qui vient d’arriver pour Kervanet Hôtels & Résidences, le principal client de Vellacor.

Sur l’écran d’administration de la borne, Lucas voit défiler des nombres de toutes sortes :

  • une adresse IPv4 : 10.20.99.1 ;
  • une adresse physique (adresse MAC) : 00-00-5E-00-53-2A ;
  • un numéro de réseau virtuel (VLAN) : 99 ;
  • une couleur pour le portail d’accueil des clients de l’hôtel : #1D5C7A.

Julien lui explique : « Ces quatre nombres sont écrits de trois façons différentes. L’adresse IPv4 est en décimal, mais la machine la stocke en binaire. L’adresse MAC et la couleur sont en hexadécimal. Si tu sais passer d’une écriture à l’autre, tu comprends ce que fait l’appareil ; sinon, tu recopies sans comprendre. »

Pendant ce temps, Sarah Cherif, alternante de l’option SLAM, débogue l’application KerMaint. Son outil de développement lui affiche le contenu de la mémoire sous la forme 4B 65 72 4D 61 69 6E 74. C’est encore de l’hexadécimal : tu sauras le lire à la fin du chapitre.

BLe bit et l’octet

Définition

Le bit

Un bit (de l’anglais binary digit, « chiffre binaire ») est la plus petite unité d’information. Il ne peut prendre que deux valeurs, notées 0 et 1.

Ces deux valeurs traduisent deux états physiques : tension basse ou haute dans un circuit, absence ou présence d’une charge dans une mémoire, creux ou bosse sur un disque optique.

Définition

L'octet

Un octet est un groupe de 8 bits. C’est l’unité de base de la mémoire et des fichiers : une adresse IPv4 occupe 4 octets, une adresse MAC 6 octets.

En anglais, l’octet se dit byte (symbole B, à ne pas confondre avec le bit, symbole b ou bit). Un débit de « 100 Mbit/s » n’est donc pas un débit de « 100 Mo/s » : il est huit fois plus petit.

CCe que tu vas apprendre

Le parcours du chapitre
Partie La question Ce que tu sauras faire
2 Comment écrit-on un nombre ? décomposer un nombre en base 10 et comprendre la notion de base
3 Comment compter avec 0 et 1 ? passer du binaire au décimal et du décimal au binaire
4 Pourquoi seize chiffres ? passer de l’hexadécimal au décimal et au binaire, et inversement
5 Et les nombres à virgule ? convertir un nombre à virgule entre les bases 10, 2 et 16 et écrire un nombre négatif
6 À quoi cela sert-il ? lire une adresse, une couleur, un caractère, une taille de fichier
À retenir

Ce que le programme te demande

Le programme de mathématiques de ton BTS (module « Arithmétique ») demande de savoir écrire les entiers et les réels en base 10, 2 et 16 et de passer d’une base à une autre. Les nombres négatifs s’écrivent simplement avec le signe moins, quelle que soit la base. Les opérations (additions, multiplications par une puissance de deux), les arrondis et les masques de réseau sont traités au chapitre MATH-02.

2. Comprendre l’écriture en base dix

Tu écris en base 10 depuis l’école primaire sans y penser. Pour comprendre le binaire, il faut d’abord regarder de près ce que tu fais quand tu écris « 2026 » : tout le chapitre repose sur cette idée de valeur selon la position.

AUn chiffre vaut selon sa place

Dans le nombre 2026, le chiffre 2 apparaît deux fois, mais il ne vaut pas la même chose : le premier vaut 2 000, le second vaut 20. C’est la position du chiffre qui donne sa valeur. On parle de numération de position.

Le nombre 2026 rangé selon la position de ses chiffres
Position (en partant de la droite, à partir de 0) 3 2 1 0
Poids de la position 103 = 1 000 102 = 100 101 = 10 100 = 1
Chiffre 2 0 2 6
Valeur du chiffre 2 000 0 20 6

On obtient donc : 2026 = 2 × 103 + 0 × 102 + 2 × 101 + 6 × 100 = 2 000 + 0 + 20 + 6.

Définition

Le poids d'une position

Dans une numération de position, chaque position a un poids : c’est la puissance de la base qui correspond à cette position. La position la plus à droite (position 0) a le poids 1 ; chaque position vers la gauche a un poids multiplié par la base.

Rappelle-toi que tout nombre non nul élevé à la puissance 0 vaut 1 : 100 = 1, 20 = 1, 160 = 1. C’est pour cela que la position 0 est celle des unités, quelle que soit la base.

BLa notion de base

Pourquoi dix ? Parce que nous avons dix doigts, et que nous utilisons dix chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Quand on arrive à 9 et qu’on ajoute 1, on n’a plus de chiffre : on remet la position à 0 et on ajoute 1 à la position de gauche (9 → 10, 99 → 100). C’est la retenue, et c’est exactement ce que fait le compteur kilométrique d’une voiture.

Rien n’oblige à utiliser dix chiffres. On peut construire la même mécanique avec n’importe quel nombre entier b supérieur ou égal à 2.

Définition

L'écriture d'un entier en base b

Soit b un entier supérieur ou égal à 2. Écrire un entier naturel N en base b, c’est l’écrire sous la forme :

N = an × bn + an−1 × bn−1 + … + a1 × b1 + a0 × b0

où chaque chiffre ai est un entier compris entre 0 et b − 1, et où le premier chiffre an est non nul. On note alors N = (an an−1 … a1 a0)b, ou plus simplement an … a0 avec la base en indice.

La base b utilise exactement b chiffres : de 0 à b − 1. En base 10, de 0 à 9 ; en base 2, de 0 à 1 ; en base 16, de 0 à 15 (il faudra inventer des symboles pour 10 à 15 : partie 4).

À retenir

Propriété — unicité de l'écriture

Tout entier naturel non nul s’écrit d’une seule façon en base b (avec un premier chiffre non nul). Deux écritures différentes dans la même base désignent donc deux nombres différents.

Cette propriété est ce qui rend les conversions possibles : quand tu convertis 44 en binaire, il n’y a qu’une seule bonne réponse.

CNoter la base sans ambiguïté

« 10 » vaut dix en base 10, deux en base 2 et seize en base 16. Dès que plusieurs bases se côtoient, il faut toujours indiquer la base.

Les notations de la base que tu rencontreras
Notation Où on la trouve Exemple (le nombre quarante-sept)
base en indice mathématiques, sujets d’examen 1011112 ; 2F16 ; 4710
préfixe 0b langages de programmation (Python, C, Java…) 0b101111
préfixe 0x langages de programmation, documentation technique 0x2F
suffixe h documentation de matériel 2Fh
dièse # couleurs du web (CSS, HTML) #2F2F2F (trois octets)
Piège

Écrire « 10110 » sans base dans une copie. Le correcteur ne peut pas savoir si tu parles de dix mille cent dix ou de vingt-deux. Une base oubliée, c’est souvent un point perdu ; une base fausse, c’est une réponse fausse.

3. Compter en base deux

Le binaire n’utilise que 0 et 1 : c’est la langue de la machine. Tu vas apprendre à le lire (binaire vers décimal) et à l’écrire (décimal vers binaire), puis à prévoir combien de bits il faut pour coder une information.

ALes puissances de deux

En base 2, les poids des positions sont les puissances de 2. Les connaître par cœur jusqu’à 210 te fera gagner un temps considérable.

Les puissances de 2 à connaître
n 0 1 2 3 4 5 6 7 8 9 10
2n 1 2 4 8 16 32 64 128 256 512 1 024

Chaque puissance est le double de la précédente. Si tu oublies 29, pars de 28 = 256 et double : 512.

Retiens trois repères : 28 = 256 (le nombre de valeurs d’un octet), 210 = 1 024 (presque mille) et 216 = 65 536. Avec eux, tu retrouves tout le reste en doublant ou en divisant par deux.

BCompter en binaire

On compte en binaire comme sur un compteur qui n’aurait que les chiffres 0 et 1 : dès qu’une position dépasse 1, elle revient à 0 et provoque une retenue à gauche.

Les seize premiers entiers en base 10, en base 2 (sur 4 bits) et en base 16
Base 10 Base 2 Base 16 Base 10 Base 2 Base 16
0 0000 0 8 1000 8
1 0001 1 9 1001 9
2 0010 2 10 1010 A
3 0011 3 11 1011 B
4 0100 4 12 1100 C
5 0101 5 13 1101 D
6 0110 6 14 1110 E
7 0111 7 15 1111 F

Les 0 placés à gauche ne changent pas la valeur : 01012 = 1012 = 5. On les écrit souvent pour obtenir un nombre fixe de bits (4 bits, 8 bits), comme le fait la machine.

À retenir

Propriété — pair ou impair

Un nombre écrit en binaire est pair si son dernier chiffre (à droite) est 0, et impair si c’est 1. En effet, tous les poids sauf le dernier (20 = 1) sont pairs.

CDu binaire vers le décimal

Pour lire un nombre binaire, on additionne les poids des positions où se trouve un 1. Les positions à 0 ne comptent pas.

Méthode

Convertir un nombre binaire en décimal

  1. Numérote les positions de droite à gauche, en partant de 0.
  2. Écris au-dessus de chaque chiffre le poids de sa position : 1, 2, 4, 8, 16…
  3. Additionne les poids des positions qui portent un 1.
  4. Contrôle : le résultat est pair si le dernier bit est 0, impair s’il est 1 ; il est inférieur à 2n si le nombre a n chiffres.
Lire un octet : la somme des poids
Lire l’octet 11010110 (base 2) Position Poids Chiffre Valeur 7 128 1 128 6 64 1 64 5 32 0 – 4 16 1 16 3 8 0 – 2 4 1 4 1 2 1 2 0 1 0 – 128 + 64 + 16 + 4 + 2 = 214
Chaque position a un poids, puissance de 2. On additionne les poids des positions qui portent un 1 : 11010110 en base 2 vaut 214 en base 10.
Exemple

Exemple résolu — l'octet 11010110

Sarah lit l’octet 110101102 dans un fichier de KerMaint. Que vaut-il en décimal ?

Position 7 6 5 4 3 2 1 0
Poids 128 64 32 16 8 4 2 1
Chiffre 1 1 0 1 0 1 1 0

110101102 = 128 + 64 + 16 + 4 + 2 = 214.

Contrôle : le dernier bit est 0, donc le nombre est pair (214 l’est) ; il a 8 chiffres, donc il est inférieur à 28 = 256.

Exemple — un nombre plus court. 1011112 = 32 + 8 + 4 + 2 + 1 = 47. (Le chiffre de poids 16 vaut 0 : on ne l’ajoute pas.)

DDu décimal vers le binaire par divisions

Pour écrire un entier décimal en binaire, la méthode la plus sûre consiste à diviser par 2 autant de fois que nécessaire. Chaque division donne un reste, 0 ou 1 : ces restes sont les chiffres binaires, du dernier au premier.

Pourquoi cela marche-t-il ? Quand tu divises N par 2, le reste te dit si N est pair ou impair : c’est le chiffre des unités binaires. Le quotient, lui, est le nombre que l’on obtient en « effaçant » ce dernier chiffre. En recommençant sur le quotient, on obtient le chiffre suivant, et ainsi de suite.

Méthode

Convertir un entier décimal en binaire (divisions successives)

  1. Divise le nombre par 2 : note le quotient et le reste (0 ou 1).
  2. Recommence avec le quotient, jusqu’à obtenir un quotient égal à 0.
  3. Lis les restes du dernier au premier (de bas en haut) : c’est l’écriture binaire.
  4. Contrôle en reconvertissant le résultat en décimal (somme des poids).
Les divisions successives par 2
Écrire 44 en base 2 : diviser par 2 jusqu’à un quotient nul division quotient reste 44 ÷ 2 22 0 22 ÷ 2 11 0 11 ÷ 2 5 1 5 ÷ 2 2 1 2 ÷ 2 1 0 1 ÷ 2 0 1 lire les restes de bas en haut (le 1er reste est le chiffre de droite) 44 = 101100 (base 2)
On divise 44 par 2 jusqu'à obtenir un quotient nul. Les restes, lus de bas en haut, donnent l'écriture binaire : 44 = 101100 en base 2.
Exemple

Exemple résolu — 44 en binaire

Le site Kervanet Phare de Royan compte 62 chambres ; Lucas doit en équiper 44 d’un nouveau téléviseur connecté. Écris 44 en binaire.

Division Quotient Reste
44 ÷ 2 22 0
22 ÷ 2 11 0
11 ÷ 2 5 1
5 ÷ 2 2 1
2 ÷ 2 1 0
1 ÷ 2 0 1

Lecture de bas en haut : 44 = 1011002.

Contrôle : 32 + 8 + 4 = 44 ; le dernier bit est 0 et 44 est bien pair.

Piège

Lire les restes de haut en bas. Avec 44, tu écrirais 0011012, c’est-à-dire 13 au lieu de 44. Le premier reste obtenu est toujours le chiffre le plus à droite (celui des unités) ; le contrôle par la parité le confirme : 44 est pair, son dernier bit doit être 0.

EDu décimal vers le binaire par soustractions

Une seconde méthode est plus rapide pour les nombres jusqu’à quelques centaines, si tu connais bien les puissances de 2.

Méthode

Convertir un entier décimal en binaire (puissances de 2)

  1. Cherche la plus grande puissance de 2 inférieure ou égale au nombre : elle donne le premier 1 et le nombre de chiffres.
  2. Soustrais-la ; recommence avec le reste, en descendant les puissances une à une.
  3. Pour chaque puissance : écris 1 si tu as pu la soustraire, 0 sinon.
  4. Arrête-toi à 20 = 1 : il faut un chiffre pour chaque puissance, y compris celles qui valent 0.
Exemple

Exemple résolu — les 370 chambres de Kervanet

Kervanet compte 370 chambres et logements. Écris 370 en binaire.

  • La plus grande puissance de 2 inférieure ou égale à 370 est 256 = 28 : le nombre aura 9 chiffres. 370 − 256 = 114.
  • 128 > 114 : chiffre 0. 64 ≤ 114 : chiffre 1, reste 114 − 64 = 50.
  • 32 ≤ 50 : chiffre 1, reste 18. 16 ≤ 18 : chiffre 1, reste 2.
  • 8 > 2 : 0. 4 > 2 : 0. 2 ≤ 2 : chiffre 1, reste 0. 1 > 0 : chiffre 0.
Poids 256 128 64 32 16 8 4 2 1
Chiffre 1 0 1 1 1 0 0 1 0

370 = 1011100102. Contrôle : 256 + 64 + 32 + 16 + 2 = 370.

Piège

Oublier les 0 des puissances « sautées ». Si tu écris seulement les 1 (11111), tu obtiens 31 au lieu de 370. Écris d’abord la ligne complète des poids, puis mets un chiffre sous chacun.

FCombien de valeurs avec n bits ?

Avec 1 bit, on code 2 valeurs (0 et 1). Avec 2 bits : 00, 01, 10, 11, soit 4 valeurs. Chaque bit ajouté double le nombre de possibilités, puisque chaque combinaison précédente peut être suivie d’un 0 ou d’un 1.

À retenir

Propriété — ce que l'on code avec n bits

Avec n bits, on peut écrire 2n valeurs différentes : les entiers de 0 à 2n − 1.

  • Le plus grand entier sur n bits s’écrit avec n chiffres 1 : 11…12 = 2n − 1.
  • Le plus petit entier qui demande n + 1 bits est 2n = 100…02 (un 1 suivi de n zéros).
Ce que l’on peut coder selon le nombre de bits
Nombre de bits Nombre de valeurs Plus grand entier Exemple d’usage
4 24 = 16 15 un chiffre hexadécimal
8 (un octet) 28 = 256 255 une partie d’adresse IPv4, une composante de couleur
12 212 = 4 096 4 095 numéro de VLAN
16 216 = 65 536 65 535 numéro de port TCP ou UDP
24 224 = 16 777 216 16 777 215 couleur codée sur trois octets
32 232 = 4 294 967 296 4 294 967 295 adresse IPv4

GCombien de bits faut-il ?

La question inverse revient souvent à l’examen : de combien de bits a-t-on besoin pour donner un numéro différent à N objets ?

Méthode

Trouver le nombre de bits nécessaires

  1. Repère le nombre de valeurs à coder (attention : de 0 à 370, il y a 371 valeurs).
  2. Cherche la plus petite puissance de 2 supérieure ou égale à ce nombre : 2n.
  3. L’exposant n est le nombre de bits nécessaire.
  4. Justifie par l’encadrement : 2n−1 < nombre de valeurs ≤ 2n.
Exemple

Exemple résolu — numéroter les chambres

Sarah veut donner un numéro interne unique à chacune des 370 chambres et logements de Kervanet, dans un champ binaire de taille fixe.

  • Nombre de valeurs à coder : 370.
  • 28 = 256 < 370 ≤ 512 = 29.
  • Il faut donc 9 bits : 8 bits ne permettent que 256 numéros, trop peu ; 9 bits en permettent 512.

On retrouve le fait que 370 s’écrit avec 9 chiffres binaires.

Piège

Confondre « nombre de valeurs » et « plus grande valeur ». Sur 8 bits, la plus grande valeur est 255, mais il y a 256 valeurs (le 0 compte). Pour numéroter 256 objets de 0 à 255, 8 bits suffisent ; de 1 à 256, il en faut 9, car 256 s’écrit 1000000002.

4. Compter en base seize

Le binaire est parfait pour la machine, mais illisible pour l’humain : une adresse IPv6 compte 128 bits. L’hexadécimal résout ce problème : un chiffre hexadécimal remplace exactement quatre bits. C’est l’écriture préférée des informaticiens.

ASeize chiffres

La base 16 a besoin de seize chiffres. On garde 0 à 9 et on utilise les lettres A à F pour les valeurs 10 à 15.

Les chiffres hexadécimaux au-delà de 9
Chiffre hexadécimal A B C D E F
Valeur décimale 10 11 12 13 14 15
Écriture binaire (4 bits) 1010 1011 1100 1101 1110 1111

Les lettres s’écrivent indifféremment en majuscules ou en minuscules : 2f16 = 2F16. Les systèmes Linux et les adresses IPv6 utilisent souvent les minuscules ; Windows et les sujets d’examen plutôt les majuscules.

On compte en hexadécimal comme ailleurs : après 9 vient A, après F vient 10 (seize), après 1F vient 20 (trente-deux), après FF vient 100 (deux cent cinquante-six).

Définition

L'écriture hexadécimale

L’écriture hexadécimale d’un entier est son écriture en base 16, avec les chiffres 0, 1, …, 9, A, B, C, D, E, F. Les poids des positions sont les puissances de 16 : 1, 16, 256, 4 096, 65 536…

Les puissances de 16 à connaître
n 0 1 2 3 4
16n 1 16 256 4 096 65 536
Égal à 20 24 28 212 216

BDe l’hexadécimal vers le décimal

Méthode

Convertir un nombre hexadécimal en décimal

  1. Remplace chaque lettre par sa valeur (A = 10, …, F = 15).
  2. Multiplie chaque chiffre par le poids de sa position : 1, 16, 256, 4 096…
  3. Additionne les produits.
Exemple

Exemple résolu — la couleur du portail Wi-Fi

La couleur principale de la charte du site de Kervanet est #1D5C7A. Une couleur web se lit par paires : rouge 1D, vert 5C, bleu 7A. Convertis chaque paire en décimal.

  • 1D16 = 1 × 16 + 13 × 1 = 16 + 13 = 29.
  • 5C16 = 5 × 16 + 12 × 1 = 80 + 12 = 92.
  • 7A16 = 7 × 16 + 10 × 1 = 112 + 10 = 122.

La couleur contient donc 29 de rouge, 92 de vert et 122 de bleu, sur une échelle de 0 à 255 : c’est un bleu soutenu, le « bleu Océan » de la charte.

Exemple — un nombre à trois chiffres. 7EA16 = 7 × 256 + 14 × 16 + 10 × 1 = 1 792 + 224 + 10 = 2 026.

CDu décimal vers l’hexadécimal

La méthode des divisions successives fonctionne dans toutes les bases : il suffit de diviser par 16 au lieu de 2. Les restes vont alors de 0 à 15 ; un reste de 10 à 15 s’écrit avec une lettre.

Méthode

Convertir un entier décimal en hexadécimal

  1. Divise par 16 : note le quotient et le reste (entre 0 et 15).
  2. Recommence avec le quotient jusqu’à obtenir un quotient égal à 0.
  3. Remplace les restes 10 à 15 par A à F.
  4. Lis les restes du dernier au premier, puis contrôle par la conversion inverse.
Exemple

Exemple résolu — 2026 en hexadécimal

Division Quotient Reste Chiffre
2 026 ÷ 16 126 10 A
126 ÷ 16 7 14 E
7 ÷ 16 0 7 7

Lecture de bas en haut : 2026 = 7EA16.

Pour trouver le reste sans calculatrice qui l’affiche : 2 026 ÷ 16 = 126,625 ; 126 × 16 = 2 016 ; reste 2 026 − 2 016 = 10.

Astuce

Avec la calculatrice, la division donne un résultat décimal (126,625). Le quotient est la partie entière (126). Le reste s’obtient par : nombre − quotient × 16 (ici 2 026 − 2 016 = 10), ou en multipliant la partie décimale par 16 (0,625 × 16 = 10).

DPasser du binaire à l’hexadécimal

Voici la raison d’être de l’hexadécimal : comme 16 = 24, un chiffre hexadécimal correspond exactement à un groupe de 4 bits. Pour passer d’une base à l’autre, aucun calcul : il suffit de regrouper ou de détailler.

À retenir

Propriété — un chiffre hexadécimal égale quatre bits

Puisque 16 = 24, chaque chiffre hexadécimal s’écrit avec exactement 4 bits (de 0000 à 1111). Un octet (8 bits) s’écrit donc avec 2 chiffres hexadécimaux, de 00 à FF.

Méthode

Passer du binaire à l'hexadécimal, et inversement

  1. Découpe le nombre binaire en groupes de 4 bits en partant de la droite.
  2. Complète le groupe de gauche par des 0 à gauche s’il a moins de 4 bits.
  3. Remplace chaque groupe par son chiffre hexadécimal (tableau de la partie 3).
  4. En sens inverse, remplace chaque chiffre hexadécimal par ses 4 bits, sans oublier les 0 de tête (5 → 0101, et non 101), puis mets les groupes bout à bout ; seuls les 0 placés tout à gauche du nombre peuvent être supprimés.
Regrouper les bits par quatre
Passer de la base 2 à la base 16 : paquets de 4 bits depuis la droite 370 = 101110010 (base 2) 0001 1 0111 7 0010 2 complété par 000 ← départ à droite 101110010 (base 2) = 172 (base 16) contrôle : 1 × 256 + 7 × 16 + 2 = 370
On découpe en paquets de 4 bits en partant de la droite ; le dernier paquet est complété par des 0 à gauche. Chaque paquet devient un chiffre hexadécimal.
Exemple

Exemple résolu — dans les deux sens

Binaire vers hexadécimal. 1011100102 (les 370 chambres) :

  • groupes de 4 en partant de la droite : 1 | 0111 | 0010 ;
  • complément à gauche : 0001 | 0111 | 0010 ;
  • traduction : 1 | 7 | 2.

Donc 1011100102 = 17216. Contrôle : 1 × 256 + 7 × 16 + 2 = 256 + 112 + 2 = 370.

Hexadécimal vers binaire. 5C16 : 5 → 0101 et C → 1100, donc 5C16 = 0101 11002 = 10111002 (le 0 de tête est supprimé). Contrôle : 64 + 16 + 8 + 4 = 92, comme dans l’exemple de la couleur.

Piège

Regrouper les bits en partant de la gauche. Avec 101110010, tu obtiendrais 1011 | 1001 | 0 → B, 9, puis un groupe incomplet : le résultat serait faux. On part toujours de la virgule (ou de la droite pour un entier).

EChoisir le bon chemin de conversion

Tu disposes maintenant de six conversions entre trois bases. Le passage par le binaire est souvent le plus sûr pour aller du décimal vers l’hexadécimal quand le nombre est petit ; pour un grand nombre, les divisions par 16 sont plus rapides.

La carte des conversions
Six conversions entre trois bases Base 10 0 à 9 Base 2 0 et 1 (bits) Base 16 0 à 9, A à F divisions par 2 somme des poids divisions par 16 chiffres × puissances de 16 paquets de 4 bits chaque chiffre → 4 bits
Entre le décimal et les deux autres bases, on calcule (somme des poids dans un sens, divisions successives dans l'autre). Entre le binaire et l'hexadécimal, on regroupe ou on détaille par paquets de 4 bits, sans calcul.
Quelle méthode pour quelle conversion ?
De… vers… Méthode Contrôle conseillé
base 2 → base 10 somme des poids (puissances de 2) parité, ordre de grandeur
base 10 → base 2 divisions par 2, ou soustraction des puissances de 2 reconvertir en base 10
base 16 → base 10 somme des chiffres × puissances de 16 reconvertir en base 16
base 10 → base 16 divisions par 16 reconvertir en base 10
base 2 → base 16 groupes de 4 bits depuis la droite détailler à nouveau en binaire
base 16 → base 2 chaque chiffre → 4 bits regrouper à nouveau

5. Écrire les nombres à virgule

Le programme te demande aussi d’écrire des réels en base 10, 2 et 16 et de passer d’une base à l’autre, sans autre limite. L’idée est la même qu’en base 10 : après la virgule, les positions ont des poids qui sont des puissances négatives de la base. Tu verras aussi qu’un nombre très simple en décimal peut ne jamais « tomber juste » en binaire : on s’arrête alors au nombre de chiffres demandé (les arrondis, limités par le programme à des cas simples en base 10 et en base 2, sont au chapitre MATH-02).

ALes positions après la virgule

En base 10, 3,25 = 3 + 2 × 10−1 + 5 × 10−2 = 3 + 0,2 + 0,05. Les positions après la virgule ont pour poids 10−1 = 0,1, 10−2 = 0,01, etc.

En base 2, c’est pareil avec les puissances négatives de 2 : chaque position à droite de la virgule vaut la moitié de la précédente.

Les poids après la virgule en base 2
Position 1re après la virgule 2e 3e 4e 5e
Puissance 2−1 2−2 2−3 2−4 2−5
Fraction 1/2 1/4 1/8 1/16 1/32
Valeur décimale 0,5 0,25 0,125 0,0625 0,03125
Définition

Écriture d'un nombre à virgule en base b

Un nombre à virgule s’écrit en base b avec une partie entière (positions 0, 1, 2… de poids b0, b1, b2…) et une partie fractionnaire après la virgule (positions de poids b−1, b−2, b−3…). Sa valeur est la somme de chaque chiffre multiplié par le poids de sa position.

BDu binaire vers le décimal

Méthode

Convertir un nombre binaire à virgule en décimal

  1. Convertis la partie entière comme d’habitude (somme des puissances de 2).
  2. Pour la partie fractionnaire, additionne les poids 0,5 ; 0,25 ; 0,125 ; 0,0625… des positions qui portent un 1.
  3. Ajoute les deux résultats.

Exemple — 101,011 en base 2.

  • Partie entière : 1012 = 4 + 1 = 5.
  • Partie fractionnaire : 0,0112 = 0 × 0,5 + 1 × 0,25 + 1 × 0,125 = 0,375.

101,0112 = 5 + 0,375 = 5,375.

CDu décimal vers le binaire

La partie entière se convertit par divisions successives. Pour la partie fractionnaire, on fait l’inverse : on multiplie par 2. La partie entière du produit (0 ou 1) donne le chiffre suivant après la virgule.

Pourquoi ? Multiplier par 2 décale la virgule d’un rang vers la droite en binaire : le premier chiffre après la virgule « passe » devant la virgule, et on peut le lire.

Méthode

Convertir la partie fractionnaire en binaire (multiplications successives)

  1. Multiplie la partie fractionnaire par 2.
  2. La partie entière du résultat (0 ou 1) est le chiffre binaire suivant ; retire-la pour ne garder que la partie fractionnaire.
  3. Recommence jusqu’à obtenir une partie fractionnaire nulle (l’écriture est finie), ou jusqu’au nombre de chiffres demandé.
  4. Lis les chiffres dans l’ordre où ils sont apparus (de haut en bas), à droite de la virgule.
Les multiplications successives par 2
Écrire 0,8125 en base 2 : multiplier par 2, garder la partie entière 0,8125 × 2 1,625 1 0,625 × 2 1,25 1 0,25 × 2 0,5 0 0,5 × 2 1 1 lire les chiffres de haut en bas arrêt : partie fractionnaire nulle 0,8125 = 0,1101 (base 2) = 0,5 + 0,25 + 0,0625
On multiplie la partie fractionnaire par 2 ; la partie entière du produit donne le chiffre suivant. Ici, les chiffres sont lus de haut en bas : 0,8125 = 0,1101 en base 2.
Exemple

Exemple résolu — 6,8125 en binaire

Partie entière. 6 = 4 + 2 = 1102.

Partie fractionnaire.

Calcul Résultat Chiffre Partie fractionnaire gardée
0,8125 × 2 1,625 1 0,625
0,625 × 2 1,25 1 0,25
0,25 × 2 0,5 0 0,5
0,5 × 2 1 1 0 (arrêt)

Lecture de haut en bas : 0,8125 = 0,11012.

6,8125 = 110,11012. Contrôle : 4 + 2 + 0,5 + 0,25 + 0,0625 = 6,8125.

Piège

Inverser les deux sens de lecture. Partie entière : divisions, restes lus de bas en haut. Partie fractionnaire : multiplications, chiffres lus de haut en bas. Pour t’en souvenir : dans les deux cas, on lit en partant de la virgule vers l’extérieur.

DQuand l’écriture ne s’arrête jamais

Essaie de convertir 0,1 en binaire.

Les premières multiplications de 0,1 par 2
Calcul Résultat Chiffre
0,1 × 2 0,2 0
0,2 × 2 0,4 0
0,4 × 2 0,8 0
0,8 × 2 1,6 1
0,6 × 2 1,2 1
0,2 × 2 0,4 0

On retombe sur 0,2, déjà rencontré à la deuxième ligne : les mêmes calculs vont se répéter indéfiniment. L’écriture binaire de 0,1 est donc infinie et périodique : 0,0001100110011…2, le bloc 0011 se répétant sans fin.

À retenir

Propriété — écriture finie en base 2

Un nombre décimal a une écriture binaire finie seulement si c’est une fraction dont le dénominateur est une puissance de 2 (0,5 = 1/2 ; 0,375 = 3/8 ; 0,8125 = 13/16). Sinon, comme 0,1 = 1/10 ou 0,3, son écriture binaire est infinie : la machine, qui dispose d’un nombre limité de bits, n’en garde qu’une valeur approchée.

C’est pour cette raison que, dans beaucoup de langages, le calcul 0.1 + 0.2 ne donne pas exactement 0.3 : chaque nombre est stocké avec une petite erreur. Les questions d’arrondi et de précision sont traitées au chapitre MATH-02 ; le format exact utilisé par les machines pour ces nombres n’est pas au programme.

Astuce

Avant de te lancer, regarde la partie fractionnaire : 0,5, 0,25, 0,75, 0,125, 0,375, 0,625, 0,875, 0,0625… sont des « nombres ronds » en binaire. Les sujets d’examen choisissent presque toujours de tels nombres, ou te demandent un nombre précis de chiffres après la virgule.

ELes nombres à virgule en base 16

Même principe en base 16 : les poids après la virgule sont 16−1 = 1/16 = 0,0625, 16−2 = 1/256 = 0,00390625, etc.

Exemple — 2B,4 en base 16. 2B,416 = 2 × 16 + 11 × 1 + 4 × 1/16 = 32 + 11 + 0,25 = 43,25.

En sens inverse, la partie fractionnaire se convertit en base 16 comme en base 2, en multipliant par 16 : la partie entière de chaque produit (de 0 à 15) donne le chiffre hexadécimal suivant.

Exemple — 30,625 en base 16. Partie entière : 30 = 1 × 16 + 14, donc 30 = 1E16. Partie fractionnaire : 0,625 × 16 = 10, partie entière 10 → A, et il ne reste rien. Donc 30,625 = 1E,A16. Contrôle : 16 + 14 + 10/16 = 30,625.

Le pont avec le binaire reste valable de part et d’autre de la virgule : on regroupe par 4 bits à partir de la virgule, vers la gauche pour la partie entière et vers la droite pour la partie fractionnaire (en complétant le dernier groupe par des 0 à droite).

Exemple

Exemple résolu — 110,1101 en base 2 vers la base 16

  • Partie entière : 110 → 0110 → 6.
  • Partie fractionnaire : 1101 → D.

110,11012 = 6,D16. Contrôle : 6 + 13/16 = 6 + 0,8125 = 6,8125.

Autre cas : 0,112 → groupe complété à droite : 0,1100 → 0,C16 = 12/16 = 0,75. Compléter à gauche (0011 → 3) donnerait 3/16 = 0,1875 : faux.

FÉcrire un nombre négatif

Le programme est clair : un nombre négatif s’écrit avec le signe moins, quelle que soit la base. On convertit la valeur sans le signe, puis on remet le signe.

Exemple — une température négative. Une chambre froide affiche −18 °C. Écris −18 en base 2 et en base 16.

  • 18 = 16 + 2 = 100102 = 1216 (0001 0010).
  • Donc −18 = −100102 = −1216.

Dans la mémoire d’un ordinateur, il n’y a pas de place pour un signe « − » : les entiers négatifs y sont codés par d’autres conventions, que tu croiseras en programmation. Elles ne font pas partie du programme de l’épreuve E3 : à l’examen, écris simplement le signe moins.

6. Lire les codes de l’informatique

Les conversions ne sont pas un exercice d’école : elles servent tous les jours à lire une adresse, régler une couleur ou comprendre un affichage. Cette partie te montre les cas que tu rencontreras le plus souvent, avec les données de Vellacor et de Kervanet.

ALes adresses IPv4 en notation décimale pointée

Une adresse IPv4 est un nombre de 32 bits, découpé en 4 octets. Pour la rendre lisible, on écrit chaque octet en décimal (de 0 à 255) et on sépare les octets par des points : c’est la notation décimale pointée.

Exemple

Exemple résolu — la passerelle du VLAN d'administration

La passerelle du VLAN 99 (administration des équipements) de Vellacor a l’adresse 10.20.99.1. Écris-la en binaire, octet par octet, sur 8 bits.

Octet 10 20 99 1
Décomposition 8 + 2 16 + 4 64 + 32 + 2 + 1 1
Sur 8 bits 00001010 00010100 01100011 00000001

10.20.99.1 = 00001010.00010100.01100011.00000001.

Piège

Oublier de compléter chaque octet à 8 bits. Écrire 1010.10100.1100011.1 perd la structure de l’adresse : quand on calculera avec les masques (chapitre MATH-02), les bits ne seront plus alignés. En adressage IPv4, chaque octet s’écrit toujours sur 8 chiffres.

Pourquoi un octet ne dépasse-t-il jamais 255 ? Parce que 8 bits codent les entiers de 0 à 28 − 1 = 255. Une adresse comme 10.20.256.1 est donc impossible. Avec 32 bits, il existe 232 = 4 294 967 296 adresses IPv4 au total : c’est la pénurie de ces adresses qui a conduit à l’IPv6 (128 bits). Le rôle des adresses dans le réseau est expliqué au chapitre B1-02 ; les calculs de masques, au chapitre MATH-02.

BLes adresses MAC et IPv6 en hexadécimal

Une adresse MAC (adresse physique d’une carte réseau) compte 48 bits, soit 6 octets, écrits en hexadécimal par paires : 00-00-5E-00-53-2A (sous Windows) ou 00:00:5e:00:53:2a (sous Linux). La borne de Kervanet porte une adresse de la plage réservée aux exemples de documentation (RFC 9542).

Exemple — le dernier octet de l’adresse MAC. Le dernier octet de l’adresse de la borne est 2A16.

  • En binaire : 2 → 0010 et A → 1010, donc 2A16 = 0010 10102.
  • En décimal : 2 × 16 + 10 = 42.

Une adresse IPv6 compte 128 bits, écrits en 8 groupes de 4 chiffres hexadécimaux (16 bits par groupe), séparés par « : ». Exemple pris dans la plage réservée à la documentation : 2001:0db8:0000:0000:0000:0000:0000:0001. En binaire, cette adresse occuperait 128 chiffres : l’hexadécimal la ramène à 32 chiffres. Les règles d’abréviation des adresses IPv6 sont vues au chapitre B1-02.

Exemple — un groupe IPv6. Le groupe 0db8 s’écrit, chiffre par chiffre : 0 → 0000, d → 1101, b → 1011, 8 → 1000.

0db816 = 0000 1101 1011 10002 = 2 048 + 1 024 + 256 + 128 + 32 + 16 + 8 = 3 512.

Vérification par les puissances de 16 : 13 × 256 + 11 × 16 + 8 = 3 328 + 176 + 8 = 3 512.

CLe numéro de VLAN sur 12 bits

Dans une trame Ethernet étiquetée (norme IEEE 802.1Q), le numéro de VLAN occupe un champ de 12 bits. On peut donc écrire 212 = 4 096 valeurs, de 0 à 4 095 ; les valeurs 0 et 4 095 sont réservées, ce qui laisse les numéros 1 à 4 094 pour les VLAN.

Exemple — le VLAN 99 sur 12 bits. 99 = 64 + 32 + 2 + 1 = 11000112. Sur 12 bits : 0000 0110 00112, soit 06316.

DLes couleurs de l’écran

Une couleur d’écran est un mélange de rouge, vert et bleu (RVB, en anglais RGB). Chaque composante est un octet, de 0 (absente) à 255 (maximale). Une couleur occupe donc 3 octets, soit 24 bits, ce qui donne 224 = 16 777 216 couleurs possibles. En CSS, on l’écrit #RRVVBB : deux chiffres hexadécimaux par composante.

La charte graphique du site de Kervanet
Nom Code hexadécimal Rouge Vert Bleu
Océan (couleur principale) #1D5C7A 29 92 122
Sable (fonds) #EAD9B5 234 217 181
Corail (boutons d’action) #F2704E 242 112 78
Méthode

Lire ou écrire une couleur hexadécimale

  1. Découpe le code en trois paires : rouge, vert, bleu.
  2. Pour lire : convertis chaque paire en décimal (premier chiffre × 16 + second chiffre).
  3. Pour écrire : convertis chaque composante décimale en hexadécimal sur deux chiffres (5 → 05, pas 5).
  4. Repère : #000000 est le noir, #FFFFFF le blanc, #FF0000 le rouge pur.
Exemple

Exemple résolu — le corail

Lecture de #F2704E : F216 = 15 × 16 + 2 = 242 ; 7016 = 7 × 16 + 0 = 112 ; 4E16 = 4 × 16 + 14 = 78.

Écriture d’une couleur demandée par la graphiste de Kervanet, rouge 8, vert 160, bleu 200 :

  • 8 = 0816 (sur deux chiffres) ;
  • 160 = 10 × 16 + 0 = A016 ;
  • 200 = 12 × 16 + 8 = C816.

Code : #08A0C8.

ELes caractères et le code ASCII

Un texte est stocké comme une suite de nombres : chaque caractère a un code. Le code ASCII associe aux lettres non accentuées, aux chiffres et aux signes courants un nombre de 0 à 127 (7 bits) ; il est repris tel quel par l’Unicode et par l’encodage UTF-8, le plus utilisé sur le web. Dans ce code, les majuscules A à Z ont les codes 65 à 90, les minuscules a à z les codes 97 à 122, les chiffres 0 à 9 les codes 48 à 57.

Exemple

Exemple résolu — le message de Sarah

L’outil de Sarah affiche 4B 65 72 4D 61 69 6E 74. Décode-le.

Hexadécimal 4B 65 72 4D 61 69 6E 74
Décimal 75 101 114 77 97 105 110 116
Caractère K e r M a i n t

Calcul du premier : 4B16 = 4 × 16 + 11 = 75, et 75 = 65 + 10 est la 11e lettre majuscule, K. Le texte est « KerMaint », le nom de l’application.

Remarque : entre une majuscule et sa minuscule, il y a toujours 32 d’écart en ASCII (K = 75, k = 107) ; en hexadécimal, 4B devient 6B, et en binaire seul le bit de poids 32 change.

FLes tailles de fichiers et de mémoire

Les tailles s’expriment en octets (o). Deux familles de préfixes coexistent, et les confondre est une source d’erreurs fréquente.

Préfixes décimaux et préfixes binaires
Préfixe décimal (SI) Valeur Préfixe binaire (CEI) Valeur
kilooctet (ko) 103 = 1 000 o kibioctet (Kio) 210 = 1 024 o
mégaoctet (Mo) 106 = 1 000 000 o mébioctet (Mio) 220 = 1 048 576 o
gigaoctet (Go) 109 o gibioctet (Gio) 230 = 1 073 741 824 o
téraoctet (To) 1012 o tébioctet (Tio) 240 o

Les préfixes binaires (kibi, mébi, gibi…) ont été adoptés par la Commission électrotechnique internationale (CEI) en 1998, précisément parce que « kilo » doit valoir 1 000 et non 1 024. Dans la pratique, certains logiciels affichent encore « Go » pour des gibioctets.

Exemple chiffré

Exemple chiffré — le disque du serveur de sauvegarde

Thomas Guéguen installe un disque vendu pour « 1 To » dans le serveur de sauvegarde. Le système affiche une capacité d’environ 931 « Go ». Pourquoi ?

  • Capacité vendue : 1 To = 1012 octets.
  • Le système compte en gibioctets : 1 Gio = 230 octets.
  • 1012 ÷ 230 ≈ 931,3 : le disque fait environ 931 Gio, que le système affiche « Go ».

Il ne manque aucun octet : seule l’unité diffère.

GCe que les conversions ne disent pas

Un même octet peut représenter des choses très différentes : 010010112 = 4B16 = 75 peut être le caractère « K », un niveau de rouge de 75 sur 255, une partie d’adresse IPv4 ou un simple entier. Les bits ne portent pas leur signification : c’est le logiciel qui décide comment les lire. Quand tu convertis, demande-toi toujours ce que le nombre représente, et choisis la base la plus parlante pour la personne qui lira ton résultat : décimal pour un utilisateur, hexadécimal pour un informaticien, binaire pour raisonner bit à bit.

Erreurs fréquentes et points de vigilance

Erreur Ce qu’il faut faire
Oublier d’indiquer la base écrire 1012, 2F16 ou utiliser 0b, 0x ; une écriture sans base est ambiguë
Lire les restes des divisions de haut en bas le premier reste est le chiffre de droite : lecture de bas en haut
Oublier les 0 des puissances « sautées » écrire d’abord la ligne complète des poids, puis un chiffre sous chacun
Regrouper les bits par 4 en partant de la gauche partir de la virgule (ou de la droite) ; compléter avec des 0 à l’extérieur
Écrire 5 → 101 au lieu de 0101 dans un passage hexadécimal → binaire chaque chiffre hexadécimal donne exactement 4 bits
Écrire un octet sur moins de 8 bits dans une adresse IPv4 compléter chaque octet à 8 chiffres : 1 → 00000001
Confondre nombre de valeurs (2n) et plus grande valeur (2n − 1) sur 8 bits : 256 valeurs, de 0 à 255
Lire les chiffres de la partie fractionnaire de bas en haut multiplications par 2 : chiffres lus de haut en bas
Croire que tout décimal « simple » a une écriture binaire finie seules les fractions de dénominateur puissance de 2 « tombent juste » (0,1 ne tombe pas juste)
Confondre ko (1 000 o) et Kio (1 024 o), bit et octet vérifier l’unité ; 1 octet = 8 bits

L’essentiel du chapitre

À retenir

À retenir

  • Numération de position : la valeur d’un chiffre dépend de sa place. En base b, on utilise b chiffres (0 à b − 1) et les positions ont pour poids b0, b1, b2… ; après la virgule, b−1, b−2… L’écriture d’un entier dans une base est unique. Indique toujours la base.
  • Base 2 : chiffres 0 et 1 (bits) ; poids 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1 024. Un octet = 8 bits.
  • Binaire → décimal : somme des poids des positions à 1. Décimal → binaire : divisions successives par 2 (restes lus de bas en haut) ou soustraction des puissances de 2.
  • Avec n bits : 2n valeurs, de 0 à 2n − 1. Nombre de bits pour N valeurs : la plus petite puissance 2n ≥ N.
  • Base 16 : chiffres 0 à 9 et A à F (10 à 15) ; poids 1, 16, 256, 4 096. Décimal → hexadécimal : divisions par 16.
  • 16 = 24 : un chiffre hexadécimal = 4 bits, un octet = 2 chiffres hexadécimaux. On regroupe par 4 bits à partir de la virgule.
  • Nombres à virgule : partie fractionnaire par multiplications successives par 2 (ou par 16 pour la base 16), chiffres lus de haut en bas. L’écriture est finie seulement pour les fractions de dénominateur puissance de 2 ; sinon elle est infinie (0,1).
  • Nombres négatifs : signe moins devant l’écriture, quelle que soit la base.
  • Codes courants : IPv4 = 4 octets (0 à 255) en décimal pointé ; MAC = 48 bits et IPv6 = 128 bits en hexadécimal ; VLAN = 12 bits ; couleur #RRVVBB = 24 bits ; ASCII : A = 65, a = 97 ; 1 Kio = 1 024 o, 1 ko = 1 000 o.

Sources et références

  • Arrêté du 4 juin 2013 fixant les objectifs, les contenus et le référentiel des capacités du domaine des mathématiques pour le brevet de technicien supérieur (JORF du 22/06/2013) ; annexe I « Programme de mathématiques », module « Arithmétique », systèmes de numération, publiée au BO n° 27 du 4/07/2013 (PDF de l’annexe lu sur cache.media.education.gouv.fr le 20/10/2026).
  • Arrêté du 29 avril 2019 portant définition et fixant les conditions de délivrance du BTS « Services informatiques aux organisations », modifié par les arrêtés du 8 juillet 2024 et du 22 novembre 2024 : unité U3 « Mathématiques pour l’informatique ».
  • IETF, RFC 9542 (avril 2024, remplace la RFC 7042), § 2.1.3 : plage d’adresses MAC réservée à la documentation 00-00-5E-00-53-00 à 00-00-5E-00-53-FF ; RFC 3849 (juillet 2004) : préfixe IPv6 de documentation 2001:DB8::/32 (rfc-editor.org, lues le 20/10/2026).
  • IEEE 802.1Q, champ VID de 12 bits, valeurs 0 et 4 095 réservées, 4 094 VLAN utilisables (norme non consultée ; recoupé le 20/10/2026 sur une source secondaire, l’article « IEEE 802.1Q » de Wikipédia en anglais).
  • NIST, « Prefixes for binary multiples » (physics.nist.gov, consulté le 20/10/2026) : préfixes binaires approuvés par la CEI en décembre 1998 ; BIPM, préfixes du Système international (puissances de 10).
  • ANSI X3.4 (ASCII) et norme Unicode : codes 0 à 127 communs.

Contenu original FuturBTS. Les entreprises et les personnes citées sont fictives. Aucun passage, exemple ou exercice n’est repris d’un manuel existant.

Garde la trace de ce que tu as lu

Avec un compte, ta progression, tes quiz et ton planning sont enregistrés.

Créer mon compte
Signaler une erreur dans ce chapitre