Lorsque nous manipulons des nombres, nous les écrivons sous la forme d'une suite de chiffres, où chaque chiffre peut prendre dix valeurs possibles, de 0 à 9. La valeur d'un nombre à quatre chiffres est alors égale à 1000 (103) fois le premier chiffre, plus 100 (102) fois le deuxième chiffre, plus 10 (101) fois le troisème, plus 1 (100) fois le quatrième. On multiplie chaque chiffre par la base (10) puissance la position du chiffre en partant de la droite, et en commençant à 0. C'est ce que l'on appelle la base 10, puisqu'elle se base sur dix chiffres différents. La raison pour laquelle nous comptons de cette manière est en grande partie due au fait que cela nous permet de compter facilement sur nos 10 doigts.
Le nombre 5432, écrit en base 10, vaut ainsi 5 * 1000 + 4 * 100 + 3 * 10 + 2 * 1.
Un ordinateur n'ayant pas de doigts, compter en base 10 (dite base décimale) ne lui est pas particulièrement adapté. La base 2, composée des chiffres 0 et 1, l'est par contre beaucoup plus. Pour un appareil électrique, on peut en effet considérer deux états élémentaires possibles : pas de courant (0), ou du courant (1). C'est donc en base 2 que la machine manipule tous les nombres. La valeur d'un nombre en base 2, dite base binaire, se calcule selon le même principe que la valeur d'un nombre en base 10 : la valeur d'un nombre à quatre chiffres, est de 8 (23) fois le premier chiffre, plus 4 (22) fois le deuxième, plus 2 (21) fois le troisième, plus 1 (20) fois le quatrième chiffre.
Par exemple, le nombre en base binaire 101011 est égal à :
1 * 25 + 0 * 24 + 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20.
Soit :
1 * 32 + 0 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 1 * 1
Soit (on l'affiche en base 10 pour nous) :
32 + 8 + 2 + 1 = 43
Exercice : traduire à la main les nombres en base 2 qui suivent, en nombres en base 10.
10 101 111 10001 1010101 100100100
Solution :
Pour calculer plus rapidement, on peut inscrire les nombres dans un tableau, avec en colonne les puissances de 2 correspondant à la position de chaque chiffre :
256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | Total |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 2 |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 4 + 1 = 5 |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 4 + 2 + 1 = 7 |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 16 + 1 = 17 |
0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 64 + 16 + 4 + 1 = 85 |
1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 256 + 32 + 4 = 292 |
Pour convertir un nombre de la base 10 à la base 2, on commence par rechercher la plus grande puissance de 2 qui soit inférieure au nombre. Par exemple, si notre nombre est 19, la plus grande puissance de 2 inférieure à 19 est 16 (2 puissance 4). On soustrait cette valeur à notre nombre : 19 - 16 = 3, et on recommence l'opération avec le reste, ici 3. Chaque puissance de deux ainsi obtenue correspond à la position d'un chiffre 1 dans la notation binaire du nombre.
Pour notre exemple, on a obtenu 19 = 16 + 2 + 1, ce qui donne le nombre en base 2 : 10011.
Pour se faciliter la tâche, il est bon d'avoir devant soi une liste des premières puissances de 2, et leur rang. Les connaître par coeur est d'ailleurs très souvent utile en programmation.
Exercice : traduire à la main les nombres en base 10 qui suivent, en nombres en base 2.
6 14 23 64 71
Solution :
6 = 4 + 2 -> 110 14 = 8 + 4 + 2 -> 1110 23 = 16 + 4 + 2 + 1 -> 10111 64 = 64 -> 1000000 71 = 64 + 4 + 2 + 1 -> 1000111