Numération et changement de base

Dans la vie quotidienne, nous utilisons le système décimal pour représenter les nombres, mais existe-i-il d'autres systèmes ? René Beaudoin montre que, depuis des milliers d'années, l'homme a mis en place des systèmes  de numération pour réaliser des "évaluations numériques". Ces moyens, d'abord concrets comme des cailloux, des batônnets, des osselets, etc., ont très rapidement été remplacés par des systèmes plus abstraits en s'appuyant sur un nombre défini de symboles. Comme la plupart des gens ont commencé à compter sur leurs dix doigts, le système de numération le plus courament utilisé est le système décimal qui est basé sur les dix symboles que sont les chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9.

De nombreux systèmes de numération de l'antiquité étaient des systèmes sexagésimal (sumérien, babylonien, chinois et hindou pour la mesure du temps, etc.). Ce système est également basé sur les mains mais, dans ce cas, il faut utiliser les phalanges. Les vietnamiens, par exemple, comptent leurs phalanges avec le pouce. Le pouce défile sur les trois phalanges des quatre autres doigts, soit douze phalanges. Si par ailleurs on utilise les doigts de l'autre main pour les retenues, on a cinq retenues, soit 5×12 = 60 nombres. Ce système a traversé les siècles : on la retrouve aujourd'hui dans la notation des angles en degrés : 360° = 6 x 60°, ou dans le découpage du temps : 1 heure = 60 minutes = 60² secondes (Source Wikipédia).

L'alphabet du système de numération romain est représenté par le tableau suivant :

Symboles I V X L C D M
Valeurs décimales 1 5 10 50 100 500 1000

Les règles d'écriture et d'évaluation de ce système sont les suivantes :

  • Lorsqu’un symbole est placé à la droite d’un symbole plus fort que lui, sa valeur est ajoutée.
  • Lorsqu’un symbole est placé à la gauche d’un symbole plus fort que lui, sa valeur est retranchée.
  • On ne place jamais 4 symboles identiques à la suite.

Suite à ces règles le plus grand nombre représenté par ce système est : MMMCMXCIX (3999). Il est à noter que ce système n'est pas adapté au calcul.

Il existe bien d'autres systèmes de numération mais nous nous intéressons qu'aux principaux systèmes les plus couramment utilisés en informatique :

  • la base binaire (2) s'appuie sur deux symboles : 0 et 1,
  • la base octale (8) s'appuie sur huit symboles : 0, 1 , 2, 3, 4, 5, 6 et 7,
  • la base décimale (10) s'appuie sur dix symboles : 0, 1 , 2, 3, 4, 5, 6, 7, 8 et 9,
  • la base hexadécimale (16) s'appuie sur seize symboles : 0, 1 , 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E et F.

Le comptage dans une base quelconque s'effectue toujours de la même façon, on énumére tous les symboles et une fois que la liste est épuisée en ajoute une position à gauche pour former le nombre suivant et ainsi de suite. La valeur d'un nombre entier N dans une base b donnée peut donc être représentée par la formule suivante : 

N = an.bn + ... + a2.b2 + a1.b1 + a0.b0 (1)

où b est la base dans laquelle le nombre est défini et ai est un symbole de la base.

Dans cet article, un nombre N codifié dans une base b est noté Nb.

La formule (1) est vraie également vraie pour les nombres fractionnaires :

N = a1.b-1 + a2.b-2 + a3.b-3 + a4.b-4 + ... + ...

15410 = 1.102 + 5.101 + 4.10

10012 = 1.24 + 1.20 = 16 + 1 = 17

A1716 = A.163 + 1.162 + 7.160 = 10.4096 + 256 + 7 = 41 223

0,12410 = 1.10-1 + 2.10-2 + 4.10-3

0,10012 = 1.2-1 + 1.2-4 = 0,5 + 0,0625 = 0,562510

Le transcodage est l'opération qui consiste de convertir une représentation d'un nombre exprimé dans une base vers une représentation du même nombre exprimé dans une autre base.