✖

Changement de base

Comment convertir des nombres de la base 10 vers d’autres bases, et inversement, comment convertir des nombres écrits dans d’autres bases vers la base 10.

Qu’est-ce qu’un système de numération ?

Nous travaillons en général en base 10 (système décimal). Cette base utilise dix chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9. Ce qui caractérise la base 10, c’est que lorsqu’on multiplie un nombre, par exemple 57, par dix, on avance d’un rang (il faut un chiffre de plus pour écrire ce nombre) : 570.

On peut aussi avoir d’autres systèmes de numération : une base 8 (système octal) ne contiendrait que les chiffres 0 ; … ; 7. L’expression 7 + 1 serait alors égale à 10, puisqu’en base 8 il n’y a pas de chiffre 8. Une base 16 (système hexadécimal) aurait les chiffres 0 ; 1 ; … ; 14 ; 15. Au lieu des chiffres supérieurs à 9, on utilise parfois des lettres, de sorte que la base 16 aurait les chiffres 0 ; … ; 9 ; A ; B ; C ; D ; E ; F.

On rencontre étonnamment d’autres systèmes de numération dans la vie de tous les jours. Par exemple, le temps : les secondes et les minutes se comptent en base 60 (système sexagésimal). Chaque instant de la journée peut s’écrire comme un nombre en base 60 à trois chiffres. Le premier chiffre donne les heures, le deuxième les minutes, le troisième les secondes. Si l’on choisit les deux-points comme séparateur, on obtient par exemple le nombre 14:05:59. Remarque que, lorsqu’on ajoute une seconde à cette heure, on n’obtient pas 14:05:60, mais 14:06:00, car 60 n’est pas un chiffre valable de la base 60.

Conversion de la base 10 vers la base 2

Prenons le nombre 70 écrit sur une feuille. Nous voulons maintenant le convertir en base 2, c’est-à-dire en binaire. Le principe est assez simple : on divise sans cesse le nombre à convertir par deux, jusqu’à arriver à zéro, en notant les restes des divisions euclidiennes. Pour convertir un nombre dans une autre base, par exemple en base 16, on divise par seize. Pour la base 6, on divise par six. En pratique, cela ressemble à ceci :

70:2=35⟶0(reste de la division)35:2=17⟶117:2=8⟶18:2=4⟶04:2=2⟶02:2=1⟶01:2=0⟶1

Le nombre obtenu en base 2 est donné par les restes des divisions. Mais on ne les lit pas de haut en bas : on les lit de bas en haut. Ainsi, le nombre 70 s’écrit 1000110 en binaire.

Conversion de la base 2 vers la base 10

Pour faire le chemin inverse, on procède ainsi. Prenons le nombre 1100010 et convertissons-le en base 10. Ce sens est plus simple : il suffit de calculer la somme suivante :

11000102=1⋅26+1⋅25+0⋅24+0⋅23+0⋅22+1⋅21+0⋅20

Chaque terme de la somme a la forme x · 2i, où x est un chiffre du nombre binaire de départ et où i augmente de un à chaque fois, en partant de la droite. Comme nous convertissons le nombre 1100010, la somme ressemble donc à ceci :

11000102=1⋅26+1⋅25+0⋅24+0⋅23+0⋅22+1⋅21+0⋅20

Le nombre 1100010 a sept chiffres, donc les exposants de 2 seront successivement 6 ; 5 ; … ; 1 ; 0. Après avoir calculé les puissances et effectué les multiplications, on obtient l’expression :

11000102=64+32+2=98.

Pourquoi cette méthode fonctionne-t-elle ?

Nous pouvons le montrer sur la base 10. Que signifient réellement les chiffres d’un nombre, par exemple de 7384 ? Le chiffre 4 donne le nombre d’unités, le chiffre 8 le nombre de dizaines, le chiffre 3 le nombre de centaines et le chiffre 7 le nombre de milliers. On peut donc écrire que

7384=7⋅1000+3⋅100+8⋅10+4⋅1

On peut encore transformer cette expression pour ne pas utiliser les nombres 100, 10 et 1, mais avoir à chaque fois une puissance de dix. Comme 100 = 1, 101 = 10, etc., on peut écrire

7384=7⋅103+3⋅102+8⋅101+4⋅100

Tout nombre en base 10 peut être décrit de la même façon, et les termes ont la forme x · 10i, où x est un chiffre de 0 à 9 (il y a dix chiffres). La valeur i est un entier naturel qui donne le rang. Si i = 0, le terme donne les unités ; si i = 2, il donne les centaines (car 102 = 100).

Essayons maintenant de convertir le nombre 7348 de la base 10 vers, euh…, la base 10. Cela aura un sens. Nous allons diviser le nombre 7348 par 10 :

7348:10=734⟶8(reste de la division)734:10=73⟶473:10=7⟶37:10=0⟶7

Si l’on lit les restes de bas en haut, on retrouve le nombre 7348 – le nombre de départ, que nous essayions de convertir vers … la même base.

Pour décrire la base 2, on fait exactement la même chose : tous les termes auront la forme x · 2i, où x est le chiffre 0 ou 1. La valeur i donne là encore le rang. De même que les divisions successives par dix donnent les rangs d’un nombre en base 10, les divisions successives par deux donnent les rangs en base 2.

Remarque aussi que, lorsqu’on divise un nombre par dix et qu’on s’intéresse au reste, ce reste est toujours dans l’intervalle [0 ; 9]. Si l’on divise un nombre par deux, le reste peut être 0 ou 1.

Conversion vers d’autres bases

La méthode précédente de conversion de la base 10 vers la base 2 est assez universelle pour s’appliquer aussi à d’autres bases. Pour convertir le nombre 185 en base 16, on divise simplement par 16 :

185:16=11⟶9(reste de la division)11:16=0⟶11

Le nombre 185 s’écrirait en base 16 sous la forme (11 ; 9). À la place des « chiffres » supérieurs à 9, on utilise en général des lettres, donc 10 = A, 11 = B, 12 = C, … On peut ainsi écrire que le nombre 185 s’écrit B9 en base 16.

De la même façon, on peut convertir le nombre B9 de la base 16 vers la base 10.

B916=11⋅161+9⋅160=11⋅16+9=185