Nous utilisons le système décimal (base 10) dans nos activités
quotidiennes. Ce système est basé sur une logique à dix symboles, de 0 à 9,
avec une unité supérieure (dizaine, centaine, etc.) à chaque fois que dix unités
sont comptabilisées. C'est un système positionnel, c'est-à-dire que l'endroit
où se trouve le symbole définit sa valeur. Ainsi, le 2 de 523 n'a pas la même
valeur que le 2 de 132. En fait 523 est l'abréviation de 5·100+2·10+3. On peut
selon ce principe imaginer une infinité de systèmes numériques fondés sur des
bases différentes.
En informatique, outre la base 10, on utilise très fréquemment le système binaire (base 2) puisque la logique booléenne est à la base de l'électronique numérique. Deux symboles suffisent: 0 et 1. Cette unité élémentaire ne pouvant prendre que les valeurs 0 et 1 s'appelle un bit (de l'anglais binary digit). Une suite de huit bits s'appelle un octet.
On utilise aussi très souvent le système hexadécimal (base 16) du fait de sa simplicité d'utilisation et de représentation pour les mots machines (il est bien plus simple d'utilisation que le binaire). Il faut alors six symboles supplémentaires: A, B, C, D, E et F.
Le tableau ci-dessous montre la représentation des nombres de 0 à 15 dans les bases 10, 2 et 16:
Décimal | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Binaire | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
Hexadécimal | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 |
Le nombre en base 10 est 26 + 23 + 22 + 20 = 64 + 8 + 4 + 1 = 77.
Allons maintenant dans l'autre sens et écrivons 77 en base 2. Il s'agit de faire une suite de divisions euclidiennes par 2. Le résultat sera la juxtaposition des restes. Le schéma ci-dessous explique la méthode:
77 s'écrit donc en base 2: 1001101.
Binaire | 0100 | 1101 |
Pseudo-décimal | 4 | 13 |
Hexadécimal | 4 | D |
1001101 s'écrit donc en base 16: 4D.
Pour aller dans l'autre sens, on lit le tableau de bas en haut.
Le petit programme javascript ci-dessous vous permettra de faire des conversions de base failement (le nombre décimal maximum est 65535). Ecrivez un nombre dans la ligne correspondant à sa base puis cliquez sur la case de la base désirée. Attention! Ce programme ne contrôle pas la validité des entrées.
Donnez la méthode pour passer de la base décimale à la base hexadécimale (dans les deux sens).
Complétez le tableau ci-dessous (vous vérifierez vos résultats avec le programme javascript ci-dessus). L'indice indique la base dans laquelle le nombre est écrit.
Bases | ||||
2 | 10 | 16 | ||
10010101102 | . | . | . | |
200210 | . | . | . | |
A1C416 | . | . | . |
Didier Müller, 17.1.21 |