- C’est quoi, un semi-conducteur ?
- C’est quoi un transistor ? Comment ça marche ?
- Comment fonctionne la mémoire flash d’un lecteur SSD ?
Le système binaire est le système numérique utilisé par les ordinateurs pour stocker l’information ou calculer.
Pourtant, c’est avant tout un moyen de compter, de dénombrer.
Habituellement, nous comptons en base 10 : le décimal. Cela vient probablement du fait que nous avons dix doigts et qu’on a commencé à compter tout simplement sur nos doigts, à la fois en tant qu’individu (quand on était enfant), et en tant qu’espèce (dont l’évolution des capacités cognitives nous a poussé à dénombrer les choses de la vie et ça a commencé par ou à l’aide de nos doigts).
Mathématiquement, le dénombrement en base 10 est juste un système parmi d’autres. On pourrait aussi dénombrer en base 2, 8, 15, 324 ou en n’importe quelle base.
Certaines choses de la vie courante sont ainsi dénombrées dans d’autres bases : base 60 ou sexagésimal pour les minutes ou les secondes, ou base 26 (celle de l’alphabet) pour les plaques minéralogiques, base 13 pour les jeux de carte (les dix chiffres, valet, dame, roi), etc.
Pour l’informatique, la base deux — ou binaire — est idéale, car elle est totalement adaptée à la transmission d’information par le biais de signaux électriques ou optique : les deux états en binaire, 0 et 1, traduisent alors simplement l’absence et la présence d’un signal, sans autre état possible entre ces deux-là.
Même si le binaire est adapté à la machine, on peut, si l’on veut, apprendre à compte en binaire nous aussi : une fois qu’on a saisi l’astuce, cela devient naturel et l’on peut s’amuser entre initiés.
Pour les plus férus, il sera même possible de compter en base ternaire, ou dans la base de votre choix. L’intérêt en sera probablement limité, mais c’est amusant.
Dans cet article je vais me restreindre au binaire et pour le comprendre, on va commencer par décortiquer le fonctionnement du système décimal que l’on utilise tous les jours.
Fonctionnement du système décimal
Notre système décimal utilise les chiffres d’origine arabes (elles-mêmes dérivées des systèmes de comptages orientales, indoeurasiennes)
Le fonctionnement de ce système repose sur trois principes (c’est moi qui le dit) que l’on va voir tout de suite.
Seulement dix chiffres
Première chose, a priori évidente : le système décimal utilise dix caractères — les 10 chiffres — représentant chacun une quantité : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Jusque-là, rien de compliqué, mais ceci signifie que pour un grand nombre comme 2020 par exemple, il n’y a pas de chiffre dédié. À la place, on utilise des chiffres représentant des quantités plus petites que l’on combine entre eux : 2-0-2-0. Dans ce cas, c’est la position du chiffre qui devient importante.
Tout ceci n’est pas le cas de tous les systèmes de comptage.
Les chiffres romains, par exemple, ont un graphène pour 1, 5, 10, 50, 100, 500 et 1 000 (respectivement I, V, X, L, C, D, M), qu’ils combinaient d’une façon précise pour dénombrer tous les autres nombres. Par exemple VIII (« 5+1+1+1 ») pour 8, ou IX (« 1 avant 10 ») pour 9. Constatons au passage que le système romain ne dispose pas de chiffre pour le zéro.
En japonais traditionnel, on utilise un système multiplicatif, par exemple 二十 (« 2 [×] 10 ») pour 20, et 三百二十七 (« 3 [×] 100 [+] 2 [×] 10 [+] 7 ») pour 327 : les rangs de dizaines, centaines, etc. sont donc mentionnés explicitement dans l’écrire numérique ; alors qu’en français, ils sont mentionnés à l’oral mais pas dans l’écriture numérique.
Un système positionnel
Le système décimal, utilise donc la position d’un chiffre dans un nombre pour lui donner une signification particulière : le même chiffre peut donc avoir une valeur différente.
Ainsi, un « 2 » situé en première position à partir de la droite signifie tout simplement « la quantité deux ». Le même « 2 » situé en seconde position signifie « la quantité vingt », ce qui n’est plus la même chose. Un tel système est qualifié de « système positionnel ».
Par exemple : un nombre comme 86 possède 8 en position deux et 6 en position un.
Maintenant compliquons légèrement les choses : pour commencer je vous conseille de ne pas parler de position 2 et 1, mais parlons de position 1 et 0. La position 0 est celle des unités, la position 1 celle des dizaines, puis 2 pour les centaines, et ainsi de suite.
Si vous voulez vous en souvenir, retenez que 100 contient deux zéros, d’où la position 2 pour les centaines. Pour 1000, on a trois zéros, d’où la position 3 pour les milliers. Dans les unités il n’y a pas de zéro : c’est donc la position 0.
Dans un nombre, plus la position d’un chiffre est à gauche, plus son importance est élevé. Cette hiérarchie — grandissante vers la gauche — tire son origine de l’écriture arabe dont nos chiffres sont issus. L’écriture arabe se fait bien-sûr de la droite vers la gauche, là où l’écriture occidentale se fait de gauche à droite.
À présent, comment compte-t-on ?
Lorsque l’on compte les nombres un par un, on incrémente le nombre : 1, 2, 3…, 7, 8, 9. Là, on arrive à 9 : on a atteint le maximum pour le chiffre des unités (la position 0).
Il faut donc passer aux dizaines. Pour cela, on va incrémenter les dizaines et passer les unités à 0 : après 09, on a 10.
Ensuite on remplit de nouveau le chiffre des unités comme avant : 10, 11, 12, 13…
Si l’on atteint 19, on refait la même chose : on incrémente à nouveau les dizaines et l’on remet les unités à 0. Après 19, il y a 20 et ainsi de suite.
Lorsque l’on a totalement rempli les dizaines, on passe au rang des centaines et l’on remet à 0 les dizaines et les unités : après 99 il y a 100.
C’est un peu comme les compteurs kilométriques sur les anciennes voitures : l’on s’amusait à voir les chiffres tourner tous en même temps quand on passait de 199999 à 200000 :

Je pense que vous avez compris, mais il faut bien maîtriser cette notion de position des chiffres, la façon dont on les incrémente et les remet à zéro. Car si vous l’avez compris en base 10, alors vous le comprendrez en base 2.
Positions et puissances de la base
La troisième notion que je veux aborder pour décrire la base décimale, c’est celle où l’on décompose les nombres en puissances de la base.
Pas de panique : il s’agit juste une phrase compliquée pour dire « décomposer en unités, dizaines et centaines ».
Par exemple, si l’on décompose 137, cela me donne :
- 1 centaine = 1 × 100
- 3 dizaines = 3 × 10
- 7 unités = 7 × 1
Plus mathématiquement, on peut remarquer :
- 1 centaine = 1 × 102
- 3 dizaines = 3 × 101
- 7 unités = 7 × 100
La base, ici, c’est 10. Les puissances de la base sont 100, 101, 102. Décomposer un nombre en puissances de la base revient à faire ça :
137 = 1 × 102 + 3 × 101 + 7 × 100
Pas trop compliqué ?
Inversement maintenant, si l’on a un nombre en base 10 avec 2 en position 3 et 1 en position 1, ça signifie que notre nombre est 2 × 103 + 1 × 101, soit 2 010.
Vous constatez ici l’intérêt d’avoir insisté sur le fait de noter 0 pour les unités : en effet, en position n correspond la puissance n de la base, et les puissances commencent effectivement à 0 : ainsi, le nombre 4 en décimal est égal à 4 × 100, et 300 vaut 3 × 102.
En conclusion de cette partie sur la base 10, disons que toute cette logique est le fondement de notre façon de compter, de dénombrer, et cela fonctionne en base 10, en base 2 ou n’importe quelle base.
Transposition de cette logique sur une base 2
Le fonctionnement entre binaire et décimal est le même. Voyez vous-même :
- En décimal, base dix, nous avions dix chiffres (0, 1, 2, 3, 4, 5, 6, 7, 8 et 9), nous changions de rang arrivé au dernier chiffre, 9, et l’on décomposait les nombres en puissances de 10, la base.
- En binaire, base deux, nous avons deux chiffres (0 et 1), nous changeons de rang arrivé au dernier chiffre, 1, et l’on décompose les nombres en puissances de 2, la base.
Il n’y a pas besoin de savoir autre chose : la méthode est bête est méchante.
Voyons comment appliquer tout ça, par l’exemple.
Pour mémo, les puissances de 10 sont :
- 100 = 1
- 101 = 10
- 102 = 100
- 103 = 1 000
- 104 = 10 000
- 105 = 100 000
- 106 = 1 000 000
- 107 = 10 000 000
- …
Et les puissances de 2 sont :
- 20 = 1
- 21 = 2
- 22 = 4
- 23 = 8
- 24 = 16
- 25 = 32
- 26 = 64
- 27 = 128
- …
Compter en binaire
Pour compter en binaire, comme en décimal, on commence à 0. Ensuite on ajoute 1, ce qui donne 1.
Si l’on continue de compter, on va rajouter 1. Or, il est dit juste au-dessus que « nous changeons de rang arrivé au dernier chiffre, 1 ». Comme on est déjà à 1, on passe donc à 1 la position suivante en remettant les précédents à zéro : ça fait « 10 » (lire « un-zéro »).
Puis on continue de compter : on obtient 11 (lire « un-un »).
On poursuit : les deux premières positions sont pleines, on passe à la troisième et on remet les autres à zéro : ça donne 100 (lire « un-zéro-zéro »).
Puis on applique la même chose : après 100, il y a 101, puis 110, 111, 1000, 1001, 1010, 1011…
Dans un tableau :
valeur en décimal : | équivalent en binaire : | explications : |
0 | 0 | logique ! |
1 | 1 | simple ! |
2 | 10 | La position 0 a atteint son maximum ! Qu’à cela ne tienne, on remet un zéro et on incrémente la position 1. |
3 | 11 | On re-remplit le rang 0. |
4 | 100 | Les positions 0 et 1 sont pleines : on passe donc à la position 3 et on remet les précédents à 0. |
5 | 101 | On procède de même. |
6 | 110 | |
7 | 111 | |
8 | 1000 | On entame le quatrième rang. |
9 | 1001 | On recommence au premier… |
10 | 1010 | On remplit chaque position. |
Bien. Ceci nous permet de compter en binaire aussi loin que l’on souhaite. Voyons maintenant comment convertir un nombre en binaire directement, ce qui est pratique, surtout pour les grands nombres.
Convertir du décimal au binaire
Si l’on dispose d’un nombre en décimal que l’on souhaite avoir en binaire, il faut commencer par le décomposer en puissances de la base, donc en puissances de deux.
Prenons l’exemple du nombre 50. Sa décomposition en puissances de 2 (dont j’ai remis la liste un peu plus haut) est :
On écrit ensuite les puissances de 2 explicitement :
50 est composé des puissances 5, 4 et 1 de deux. Afin d’être complet, on va aussi ajouter les puissances 3, 2 et 0,manquantes, donc là zéro fois :
Maintenant, on a décomposé notre nombre 50 en toutes les puissances de 2 plus petites que 50 et dans l’ordre :
Si les différentes puissances sont toutes là, soit 1, soit 0 fois, alors on a fini : notre nombre en binaire correspond comme par magie aux coefficients devant les puissances :
50 en base dix, c’est 110010 en binaire.
Pour faciliter de lecture, tout comme on utilise un séparateur des milliers pour les grands nombres en base dix, on regroupe les chiffres en binaire par quatre. On écrit donc 11 0010.
Enfin, afin de bien savoir dans quelle base on s’exprime, surtout quand on passe d’une base à l’autre, on peut écrire :
Voilà !
Je résume la méthode :
- On a notre nombre en décimal ;
- On le décompose en valeurs de puissances de 2 ;
- Si certaines puissances manquent, on les rajoute en mettant 0 devant ;
- On lit les coefficients devant les puissances de 2, ce sera notre nombre en binaire ;
- Par commodité, d’écriture, on regroupe les chiffres par 4.
Je vous laisse vous exercer avec d’autres nombres. Essayez par exemple de convertir 10, 42, 31, votre âge, votre date de naissance… C’est amusant :D.
Simple remarque : la taille d’un nombre en binaire est importante. Ainsi, le nombre 2020déc s’écrit 111 1110 0100bin, soit sur onze rangs !
Cela vient évidemment du fait que la base binaire est plus petite que la base décimale, et qu’il faut donc davantage de rangs pour écrire un nombre.
Pour un ordinateur ce n’est pas un problème. Pour nous, ça devient vite pénible. Pour ça, nous utilisons souvent une autre base, l’hexadécimal (base 16), qui allège nettement l’écriture tout en restant beaucoup plus proche du binaire que ne l’est le décimal ; on le verra un petit peu plus bas.
Convertir du binaire au décimal
Si l’on peut convertir un nombre du système décimal vers le binaire, on peut également effectuer l’opération dans l’autre sens. Il s’agit alors de faire les étapes précédentes en ordre inverse, tout simplement.
Convertissons par exemple le nombre 101 1100bin en décimal.
On commence par écrire les puissances de deux :
Puis on les remplace par leur valeur :
On peut ignorer les rangs où le coefficient est 0 :
On simplifie l’écriture :
Ce qui donne finalement :
Il suffit ici de connaître ses puissances de deux : 1, 2, 4, 8, 16, 32, 64… et de savoir additionner des nombres.
Un mot sur l’hexadécimal
Un peu plus haut, j’ai mentionné l’hexadécimal, comme un moyen assez pratique pour alléger l’écriture des longues chaînes écrites en binaire. En effet, en hexadécimal, une position, un chiffre correspond à 4 chiffres en binaire.
Donc si votre nombre fait 16 chiffres de long en binaire, il n’en fera que 4 en hexadécimal, ce qui est tout de même nettement plus court à écrire pour nous ou à afficher sur un écran de taille limitée.
Comment ça marche ?
L’hexadécimal est un système en base 16. Ses seize « chiffres » sont donc 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Les derniers « chiffres » — qui sont en fait des lettres — correspondent aux valeurs de 10 à 15.
Pour le reste, c’est un système positionnel comme le décimal et le binaire. Tout ce que l’on vient de voir pour le décimal et le binaire reste donc applicable pour l’hexadécimal.
Ainsi :
valeur en décimal : | équivalent en hexadécimal : |
0 | 0 |
1 | 1 |
2 | 2 |
3 | 3 |
… | … |
9 | 9 |
10 | A |
11 | B |
… | … |
14 | E |
15 | F |
16 | 10 |
17 | 11 |
… | … |
25 | 19 |
26 | 1A |
27 | 1B |
… | … |
159 | 9F |
160 | A0 |
161 | A1 |
… | … |
254 | FE |
255 | FF |
256 | 100 |
… | … |
Je le répète : le principe est sensiblement le même. Que l’on soit en base 10, 2, 16 ou n’importe quoi d’autre, la méthode sera identique.
Maintenant, quel rapport avec le binaire ?
En fait, il faut remarquer qu’un nombre de 4 chiffres en binaire peut aller jusqu’à 15 (il s’agit de 1111bin), or en hexadécimal, un seul chiffre permet également d’aller jusqu’à 15 (il s’agit de Fhex).
Mathématiquement, c’est parce que 161 = 24.
Une conséquence pratique de ça est que pour chaque groupe de 4 chiffres en binaire, on aura un chiffre en hexadécimal.
Par exemple, le nombre binaire 1101 0000 1010 1001bin devient en hexadécimal : D0A9hex, tout simplement car :
- 1101bin = Dhex (= 13déc)
- 0000bin = 0hex (= 0déc)
- 1010bin = Ahex (= 10déc)
- 1001bin = 9hex (= 9déc)
La conversion entre le binaire et l’hexadécimal est alors très rapide, y compris de tête, car il suffit de connaître les nombres entre 0 et 15 dans les deux bases, de les remplacer d’une base à l’autre et le tour est joué.
Quant à la conversion de l’hexadécimal en décimal, on utilise les puissances de 16 :
D0A9hex = D × 163 + 0 × 162 + A × 161 + 9 × 160
D0A9hex = 13 × 163 + 0 × 162 + 10 × 161 + 9 × 160
D0A9hex = 13 × 4096 + 0 × 256 + 10 × 16 + 9 × 1
D0A9hex = 53 417déc
Dans l’ensemble, les conversions entre les bases sont faciles une fois qu’on a saisi l’astuce : il s’agit juste de décomposer en puissances de la base et d’additionner.
Conclusion
Le binaire peut sembler mystérieux si on ne sait pas ce que c’est. Il s’agit pourtant simplement d’un moyen de compter avec seulement deux chiffres (0 et 1) au lieu de dix comme on en a l’habitude.
La méthode pour compter ou calculer en binaire est la même que pour le décimal. On peut compter, comme on l’a vu, mais on peut aussi faire des additions, des multiplications, etc. Je ne ferais pas d’exemple ici, je vous réfère à ma page plus complète (dont cet article est fortement inspiré) et qui en parle.
Ici j’ai présenté le système binaire comme un moyen de compter. Pourtant, l’ordinateur affiche des chiffres, des lettres, des couleurs, des images, des vidéos… avec le binaire.
Ceci est simplement une question d’encodage : tout est stocké avec des 0 et des 1, mais avec le bon encodeur/décodeur, on peut afficher des lettres, des images, etc.
Par exemple, dans la table ASCII — qui permet de traduire les lettres de l’alphabet latin en binaire, le A majuscule est représenté par 1000001 ; le B majuscule par 1000010, le C par 1000011, etc.
Il s’agit d’une simple table de conversion. Si un document contient la suite « ABC », alors, quelque part en mémoire ou sur le disque dur se trouve la suite binaire 100000110000101000011.
La même chose est réalisée pour tous les programmes installés sur un ordinateur : le binaire est la base, après c’est l’ordi qui interprète ça de la manière adéquate.
Enfin, petite remarque : vous rencontrerez parfois des chiffres hexadécimaux exclusivement composé de deux chiffres, comme FF, AF, ou 9A… Si l’on transforme ça en binaire, on se retrouve avec des nombres binaires à 8 chiffres. Ces nombres binaires à 8 chiffres, on appelle ça des octets (octet, octo, 8) !
De l’importance de noter la base
Il peut être important de noter la base dans laquelle on travaille, car un nombre peut avoir des valeurs différentes en fonction de la base, y compris si les différents chiffres composant ce nombre sont les mêmes.
Par exemple :
- 45déc = 45déc ;
- 45hex 69déc ;
- 45oct, c’est 37déc.
Si vous rédigez un document où vous employez des notations dans différentes bases, il faut les noter.
Pour information, c’est à cause de ça que vos disques de durs de 1 To ne sont affichés que 930 Go (et non pas 1 000 Go comme il devrait).
Car oui, on multiplie bien par 1 000 entre le kilo-, méga-, giga-, et non par 1 024 : que l’on parle de grammes, de mètres, de joules ou d’octets. Mais l’informatique étant ce qu’il est et vu qu’il travaille en binaire avant tout, certains ont arrondi le 103 (qui vaut 1 000) à 210 (qui vaut 1 024).
Ceci est aussi la solution de la blague geek : « il existe exactement 10 types de personnes dans le monde : celles qui comprennent le binaire, et les autres ! ». Évidemment, la blague prend son sens si l’on lit le « 10 » comme « 10bin », qui vaut alors 2.
Image d’en-tête : travail personnel.