Les bases décimale, binaire et hexadécimale

Chapitre: XXIV. Compléments théoriques Prérequis: -

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

Conversion décimal - binaire

Convertissons 01001101 en décimal à l'aide du schéma ci-dessous:

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.

Conversion hexadécimal - binaire

Convertissons 01001101 en hexadécimal. Il suffit de regrouper les bits par quatre (en commençant depuis la droite):

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.

Décimal:
Binaire:
Hexadécimal:


Exercice

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 . . .


Référence


Didier Müller, 7.10.02