L'auteur de ce cours est Tom Niget, élève de seconde au lycée G Fichet de Bonneville.
Cette activité est en quelque sorte la généralisation des deux activités précédentes, la première traitait de la base 2, la deuxième de la base 16, celle-ci décrit les bases en général. Vous y trouverez donc des faits ayant déjà été évoqués par le passé, mais cette redondance est nécessaire.
En maths, on a un outil bien pratique appelé la notation positionnelle. Comme son nom l'indique, c'est une notation, donc un moyen de noter les choses. Ici, en l'occurence, c'est un moyen d'écrire les nombres.
Le principe, c'est que vous prenez ce qu'on appelle une base, puis vous écrivez le nombre comme un somme de produits de puissances de cette base. Ça va jusque là ? Bon. Pour l'exemple, on va prendre un nombre au hasard. 4791. Ça sonne bien. Donc :
$4791$
Si vous vous souvenez de quand vous avec appris les nombres à l'école, vous devriez pouvoir voir ça comme « 4 milliers, 7 centaines, 9 dizaines et 1 unité ». Vous noterez que chaque « truc » et une puissance de 10 :
On peut donc écrire 4791 comme ceci :
$4791 = 4\times10^3+7\times10^2+9\times10^1+1\times10^0$
La notation positionnelle, c'est ça. On a un nombre, 4791, et on prend chacun de ses chiffres et on le multiplie par la base élevée à la puissance correspondante : on commence à 0 en partant de la droite (les unités), puis 1 (les dizaines), puis 2 (les centaines) et ainsi de suite.
Mais là, certains vont peut-être se demander : pourquoi 10 ? La réponse est, parce que. C'est totalement arbitraire. Il n'y a pas de « base privilégiée », donc on a juste pris quelque chose au hasard. Bien sûr, il y a le classique argument ud « c'est parce qu'on a 10 doigts ». Oui. Sans doute. Mais on a aucun moyen d'en être sûr, et pour être honnête, ça ne nous avancerait pas à grand-chose.
Maintenant que l'on sait que 10 est totalement arbitraire, pourquoi ne pas essayer avec autre chose ? Pour reste dans le thème, on va essayer avec 16. C'est joli 16, ça sonne bien.
Donc si on veut écrire 4791 en base 16, il faut qu'on travaille non pas avec des puissances de 10, mais avec des puissances de 16. C'est-à-dire 1, 16, 256, 4096, 65536 et tutti quanti.
On a déjà vu comment convertir un nombre en base 16 dans l'activité 2 mais je vais en reparler maintenant de manière plus générale. Pour convertir un nombre $n$ en sa représentation en base $b$, il faut suivre l'algorithme suivant :
Vous remarquerez que je parle de $mod$ et de division entière, et ces termes vous sont peut-être inconnus. Mais en fait, peut-être pas. En fait, ce ne sont que des mots compliqués pour parler de la division euclidienne, mais si, celle que vous avez apprise à l'école. Celle ou on pose la division, puis à droite on note le résultat et à gauche on a la reste. Et bien l'opérateur $mod$ (pour modulo, parfois noté $\%$) ça signie « le reste de la division euclidienne »
Voici donc une ré-écriture simplifiée de l'algorithme :
C'est bien beau tout ça, mais je pense qu'un exemple ne ferait pas de mal. Donc, pour 4791 en base 16 :
Vous avez sans doute remarqué la nouvelle colonne dans la conversion de base. C'est dû au fait que lorsqu'on note un nombre dans une base $b$, on ne peut utiliser que $b$ chiffres différents. C'est normal : chaque chiffre est le reste d'une division par $b$. Et par définition, le reste est plus petit que le divisieur (si je divide un nombre par 16, le reste peut être au maximum 15).
Cela fait qu'en base 10 (celle qu'on utilise tous les jours), on utilise 10 chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9.
Si l'on convertit un nombre en une base plus petite (exemple familier : le binaire), il suffit de n'utiliser que les chiffres nécessaires (ici, 0 et 1). Mais si on utilise une base plus grande que 10 ? Arbitrairement, on a choisi de compléter avec des lettres.
On a donc le tableau d'équivalence suivant :
Base 10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Base 16 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | 10 |
Pour revenir au résultat de tout à l'heure, comme on a obtenu 12B7, on peut écrire :
$4791_{10} = 12B7_{16}$
C'est d'ailleurs comme cela que ça s'appelle. Le binaire est la base d'indice 2. L'hexadécimal est la base d'indice 16.
En théorie, on peut utiliser quasiment n'importe quel nombre. À part 0. Oui, on peut faire des bases négatives ou non-entières. On peut faire une base -2 (ça s'appelle le négabinaire), -3 (négaternaire), 60 (sexagésimal), quater-imaginaire (2$i$), et même la base d'or qui a pour indice φ (le nombre d'or).
Voici un outil pour convertir un nombre en base 10 vers une base de votre choix :
Voici un « petit » tableau récapitulatif des bases les plus petites :
Base 2 | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | 10000 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Base 8 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 20 |
Base 10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
Base 16 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | 10 |
Pour terminer, un peu de maths (pour les secondes ça risque de piquer, mais pour les terminales ça va passer tout seul). Si on écrit un nombre $x$ avec la notation positionnelle dans une base $b$ et que l'on nomme cette représentation $r$, chaque chiffre étant $c_i$ et $n$ étant le nombre de chiffres avec $i \in [0,n-1]$, on a :
$r = c_{n-1}c_{n-2}\ldots c_{2}c_{1}c_{0}$
$x = \sum\limits_{i=0}^{n-1} c_i b^i = c_{n-1}b^{n-1} + c_{n-2}b^{n-2} + \ldots + c_{2}b^{2} + c_{1}b^{1} + c_{0}b^{0}$
Si $4791_{10} = 12B7_{16}$, alors on a :
$4791_{10} = 4\times10^3 + 7\times10^2 + 9\times10^1 + 1\times10^0 = 4\times1000 + 7\times100 + 9\times10 + 1 = 4000 + 700 + 90 + 1 = 4791$
$12B7_{16} = 1\times16^3 + 2\times16^2 + 11\times16^1 + 7\times16^0 = 1\times4096 + 2\times256 + 11\times16 + 7 = 4096 + 512 + 176 + 7 = 4791$