Un ordinateur est composé de milliards de transistors. Un transistor est un composant électronique qui ne sait faire qu'une chose : laisser passer ou bloquer du courant en fonction d'un courant qu'il reçoit en entrée. Comme un interrupteur sur lequel quelqu'un appuie pour allumer ou éteindre la lumière. En les combinant, on peut créer des circuits capables de nombreuses opérations : additions, soustractions, comparaisons, décisions...
La présence d'électricité est interprétée comme 1, son absence comme un 0. Il n'y a que deux états possibles. C'est ce qu'on appelle le système binaire.
Chaque instruction qui arrive vers les transistors et qui en sort passe donc par une étape de conversion en binaire. C'est pourquoi tout ce qui est lié à l'informatique est lié au chiffre 2 et à ses puissances.
Les puissances de 2 représentent des nombres obtenus en multipliant 1 par 2 plusieurs fois. Par exemple, 2 puissance 3, noté 2^3, donne 1 x 2 x 2 x 2 = 8.
Les puissances de 2 de 0 à 10 sont ainsi : 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024.
Si ces nombres te semblent familiers, c'est normal, on les retrouve partout : espace de stockage d'un disque dur, taille de la mémoire vive, etc.
Le binaire
Dans la vie courante, nous comptons en base 10, aussi appelée système décimal.
Nous utilisons les chiffres de 0 à 9 avant de passer à l'ordre de grandeur supérieur, c'est-à-dire à la colonne
suivante dans le système de numération.
9 -> 10, 19 -> 20, 99 -> 100 : dès qu'une colonne revient à 0, on ajoute 1 à celle de gauche.
Compter en binaire, donc en base 2, c'est exactement pareil, mais avec juste les chiffres 0 et 1.
| Décimal | Binaire | Puissance de 2 |
|---|---|---|
| 0 | 0 | |
| 1 | 1 | 2^0 |
| 2 | 10 | 2^1 |
| 3 | 11 | |
| 4 | 100 | 2^2 |
| 5 | 101 | |
| 6 | 110 | |
| 7 | 111 | |
| 8 | 1000 | 2^3 |
On remarque que multiplier par 10 en base 2 revient à multiplier par 2 en base 10. Autrement dit, en partant de la droite (position 0), la position des 1 en binaire vaut une puissance de 2 en décimal.
Prenons 101011. Pour le convertir en décimal, il suffit de placer chaque chiffre dans sa colonne, puis d'additionner les colonnes qui portent un 1.
| Binaire | 1 | 0 | 1 | 0 | 1 | 1 |
|---|---|---|---|---|---|---|
| Position | 5 | 4 | 3 | 2 | 1 | 0 |
| Puissance de 2 | 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 |
| Valeur de la colonne | 32 | 16 | 8 | 4 | 2 | 1 |
32 + 8 + 2 + 1 = 43. Le nombre 101011 en binaire vaut donc 43 en décimal.
La conversion dans l'autre sens est un peu plus compliquée, il faut diviser successivement par 2 et garder les restes. Exemple avec 43 :
| Division | Résultat | Reste |
|---|---|---|
| 43 / 2 | 21 | 1 |
| 21 / 2 | 10 | 1 |
| 10 / 2 | 5 | 0 |
| 5 / 2 | 2 | 1 |
| 2 / 2 | 1 | 0 |
| 1 / 2 | 0 | 1 |
En lisant la colonne des restes de bas en haut, on retrouve bien 101011.
En anglais, un chiffre est appelé un digit, d'où la traduction de "digital" en "numérique".
Le mot digit vient du latin digitus, qui signifie doigt. Comme nos doigts sont utilisés pour compter,
le terme a, avec le temps, fini par désigner les chiffres eux-mêmes.
Le chiffre binaire, le "binary digit" a été nommé "bit".
L'hexadécimal
Pour éviter de manipuler une interminable séquence de 1 et de 0, les ingénieurs ont adopté une base plus compacte : l'hexadécimal, ou base 16.
Elle utilise 16 symboles : de 0 à 9, puis de A à F pour représenter les valeurs de 10 à 15.
| Décimal | Binaire | Hexadécimal |
|---|---|---|
| 0 | 0000 | 0 |
| 1 | 0001 | 1 |
| 2 | 0010 | 2 |
| 3 | 0011 | 3 |
| 4 | 0100 | 4 |
| 5 | 0101 | 5 |
| 6 | 0110 | 6 |
| 7 | 0111 | 7 |
| 8 | 1000 | 8 |
| 9 | 1001 | 9 |
| 10 | 1010 | A |
| 11 | 1011 | B |
| 12 | 1100 | C |
| 13 | 1101 | D |
| 14 | 1110 | E |
| 15 | 1111 | F |
| 16 | 1 0000 | 10 |
| ... | ... | ... |
| 255 | 1111 1111 | FF |
| 256 | 1 0000 0000 | 100 |
Un chiffre hexadécimal représente exactement 4 bits. C'est ce qui rend cette base très pratique et facilement convertible en binaire.
De nombreux logiciels se servent de l'hexadécimal comme représentation intermédiaire du binaire, à la fois lisible par les humains et directement convertible pour la machine.
Le binaire et l'hexadécimal sont omniprésents dans le monde tech. On les croise par exemple dans les codes couleurs CSS, dans la mise en place de réseaux, dans la cryptographie, etc. Nous les retrouverons dans la suite de ce guide.