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
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.
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
| 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 |
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.
| 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.
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.
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).
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.
| 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) |
É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.
| 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.
| 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.
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.
Convertir un nombre binaire en décimal
- Numérote les positions de droite à gauche, en partant de 0.
- Écris au-dessus de chaque chiffre le poids de sa position : 1, 2, 4, 8, 16…
- Additionne les poids des positions qui portent un 1.
- 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.
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.
Convertir un entier décimal en binaire (divisions successives)
- Divise le nombre par 2 : note le quotient et le reste (0 ou 1).
- Recommence avec le quotient, jusqu’à obtenir un quotient égal à 0.
- Lis les restes du dernier au premier (de bas en haut) : c’est l’écriture binaire.
- Contrôle en reconvertissant le résultat en décimal (somme des poids).
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.
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.
Convertir un entier décimal en binaire (puissances de 2)
- Cherche la plus grande puissance de 2 inférieure ou égale au nombre : elle donne le premier 1 et le nombre de chiffres.
- Soustrais-la ; recommence avec le reste, en descendant les puissances une à une.
- Pour chaque puissance : écris 1 si tu as pu la soustraire, 0 sinon.
- Arrête-toi à 20 = 1 : il faut un chiffre pour chaque puissance, y compris celles qui valent 0.
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.
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.
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).
| 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 ?
Trouver le nombre de bits nécessaires
- Repère le nombre de valeurs à coder (attention : de 0 à 370, il y a 371 valeurs).
- Cherche la plus petite puissance de 2 supérieure ou égale à ce nombre : 2n.
- L’exposant n est le nombre de bits nécessaire.
- Justifie par l’encadrement : 2n−1 < nombre de valeurs ≤ 2n.
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.
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.
| 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).
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…
| 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
Convertir un nombre hexadécimal en décimal
- Remplace chaque lettre par sa valeur (A = 10, …, F = 15).
- Multiplie chaque chiffre par le poids de sa position : 1, 16, 256, 4 096…
- Additionne les produits.
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.
Convertir un entier décimal en hexadécimal
- Divise par 16 : note le quotient et le reste (entre 0 et 15).
- Recommence avec le quotient jusqu’à obtenir un quotient égal à 0.
- Remplace les restes 10 à 15 par A à F.
- Lis les restes du dernier au premier, puis contrôle par la conversion inverse.
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.
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.
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.
Passer du binaire à l'hexadécimal, et inversement
- Découpe le nombre binaire en groupes de 4 bits en partant de la droite.
- Complète le groupe de gauche par des 0 à gauche s’il a moins de 4 bits.
- Remplace chaque groupe par son chiffre hexadécimal (tableau de la partie 3).
- 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.
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.
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.
| 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.
| 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 |
É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
Convertir un nombre binaire à virgule en décimal
- Convertis la partie entière comme d’habitude (somme des puissances de 2).
- Pour la partie fractionnaire, additionne les poids 0,5 ; 0,25 ; 0,125 ; 0,0625… des positions qui portent un 1.
- 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.
Convertir la partie fractionnaire en binaire (multiplications successives)
- Multiplie la partie fractionnaire par 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.
- Recommence jusqu’à obtenir une partie fractionnaire nulle (l’écriture est finie), ou jusqu’au nombre de chiffres demandé.
- Lis les chiffres dans l’ordre où ils sont apparus (de haut en bas), à droite de la virgule.
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.
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.
| 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.
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.
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 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 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.
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.
| 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 |
Lire ou écrire une couleur hexadécimale
- Découpe le code en trois paires : rouge, vert, bleu.
- Pour lire : convertis chaque paire en décimal (premier chiffre × 16 + second chiffre).
- Pour écrire : convertis chaque composante décimale en hexadécimal sur deux chiffres (5 → 05, pas 5).
- Repère :
#000000est le noir,#FFFFFFle blanc,#FF0000le rouge pur.
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 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é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é — 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
- 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.