Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

[B.1] Écriture d'un entier dans une base b>=2

Compter avec ses doigts

Nos 10 doigts

Nous avons 10 doigts que nous emportons partout avec nous. Ces outils sont pratiques pour aider à compter. Nous utilisons donc une manière de compter qui utilise nos 10 doigts : la base 10.

Nos nombres s'écrivent avec 10 symboles (chiffres) : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9.

Quand on dépasse 9, on utilise une nouvelle position (chiffre) pour se "rappeler" qu'on a fait un tour complet des chiffres disponibles.

Ainsi :

  • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, tour complet
  • 10, 11, 12, ..., 19, tour complet suivant
  • 20, 21, ..., 29, ..., tour complet suivant
  • ...
  • ..., 97, 98, 99, tour complet suivant
  • 100, 101, ...

Avec moins ou plus de doigts

En se coupant des doigts, ou en vivant dans un monde de dessins animés / bandes dessinées, on peut imaginer compter avec un autre nombre de doigts, et donc dans une autre base.

Picsou compte en base 8

  • Si on n'avait que 4 doigts à chaque main, on compterait en base 8 (en octal) : 0,1,2,3,4,5,6,7, tour complet 10,11,..., 77, tour complet suivant 100,...
  • Si on n'avait que 3 doigts à chaque main, on compterait en base 6 (en sénaire) : 0,1,2,3,4,5, tour complet 10,11,..., 55, tour complet suivant 100,...
  • Si on n'avait que 2 doigts à chaque main, on compterait en base 4 (en quaternaire) : 0,1,2,3, tour complet 10,11,..., 33, tour complet suivant 100,...
  • Si on n'avait qu'un doigt à chaque main, on compterait en base 2 (en binaire) : 0,1, tour complet 10,11,... 111, tour complet suivant 1000,...

Et avec plus de doigts ? il faut plus de chiffres... avec 6 doigts à chaque main, soit 12 doigts, il faut 12 chiffres, mais attention 10 et 11 ne sont pas des chiffres, ce sont des nombres écrits avec deux chiffres ! Il faut donc inventer deux nouveaux symboles pour représenter les 10 et 11ème chiffres. Plutôt que de réinventer un symbole, on choisit souvent les lettres majuscules : A pour 10 et B pour 11 (et ainsi de suite si besoin. Pour les bases supérieures à 36 on peut utiliser les lettres minuscules aussi ou l'alphabet grec).

  • Si on avait 6 doigts à chaque main, on compterait en base 12 (en duodécimal) : 0,1,2,3,4,5,6,7,8,9,A,B, tour complet 10,11,..., BB, tour complet suivant 100,...
  • Si on avait 8 doigts à chaque main, on compterait en base 16 (en hexadécimal) : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F, tour complet 10,11,..., FF, tour complet suivant 100,...

En s'intéressant aux 20 premiers entiers, on peut écrire le tableau suivant pour les bases 10, 8, 4, 2 et 16 :

Décimal (base 10)Octal (base 8)Quaternaire (base 4)Binaire (base 2)Hexadécimal (base 16)
00000
11111
222102
333113
44101004
55111015
66121106
77131117
8102010008
9112110019
1012221010A
1113231011B
1214301100C
1315311101D
1416321110E
1517331111F
16201001000010
17211011000111
18221021001012
19231031001113

Numération de position

Dans cette manière de compter, chaque position (chiffre) a une valeur qui dépend de sa position. Ce n'est pas le cas dans la numération non positionnelle comme les chiffres romains ( \( XIV = 10 + 5 - 1 = 14 \) ).

Par exemple, en base 10, le nombre 1789 s'écrit avec 4 chiffres (positions) : 1, 7, 8 et 9. La valeur de chaque position est :

  • 1 millier : \( 1 \times 1000 = 1 \times 10^3 = 1000 \)
  • 7 centaines : \( 7 \times 100 = 7 \times 10^2 = 700 \)
  • 8 dizaines : \( 8 \times 10 = 8 \times 10^1 = 80 \)
  • 9 unités : \( 9 \times 1 = 9 \times 10^0 = 9 \)

De manière générale, un nombre \( an a{n-1} ... a_2 a_1 a_0 \) s'écrit en base b (avec b un entier supérieur ou égal à 2) :

\[ a_n \times 10_b^n + a_{n-1} \times 10_b^{n-1} + ... + a_2 \times 10_b^2 + a_1 \times 10_b^1 + a_0 \times 10_b^0 \]

soit, en décimal :

\[ a_n \times b^n + a_{n-1} \times b^{n-1} + ... + a_2 \times b^2 + a_1 \times b^1 + a_0 \times b^0 \]

Important

De manière moins "mathématique" : chaque chiffre en position est multiplié par la base b puissance sa position (en comptant à partir de 0 pour la position la plus à droite).

Exemple

En base 6 (avec les chiffres 0,1,2,3,4,5), le nombre 2431 s'écrit :

\[ 2 \times 10_6^3 + 4 \times 10_6^2 + 3 \times 10_6^1 + 1 \times 10_6^0 \]

On peut effectuer ce calcul sur notre calculatrice (donc en base 10) pour retrouver la valeur en base 10 du nombre 2431 en base 6 :

\[ 2 \times 6^3 + 4 \times 6^2 + 3 \times 6^1 + 1 \times 6^0 \]

\[ 2 \times 216 + 4 \times 36 + 3 \times 6 + 1 \times 1 = 595 \]

Exercice

Exercice : écrire en base 10 les nombres suivants :

  • 123 (base 6)
  • 666 (base 8)
  • 0111 (binaire)

Quand on écrit avec une base b supérieure à 10, on utilise les lettres A, B, C, D, E... pour représenter les chiffres supérieurs à 9.

Exemple

En base 16, BABA s'écrit :

\[ B_{16} \times 16^3 + A_{16} \times 16^2 + B_{16} \times 16^1 + A_{16} \times 16^0 \]

soit

\[ 11 \times 4096 + 10 \times 256 + 11 \times 16 + 10 \times 1 = 47802 \]

Exercice

Écrire en base 10 les nombres suivants :

  • 2A3 (base 16)
  • FF (base 16)

Cas particulier : la base 2 (binaire)

Vocabulaire

  • un bit (contraction de "binary digit") est un chiffre binaire (0 ou 1), abbréviation "b"
  • un octet est un groupe de 8 bits (en anglais "byte"), abbréviation "o" en français, "B" en anglais.
  • un kilo-octet (Ko) est 1024 octets (2^10 = 1024), et non 1000 comme dans le système métrique,
  • un méga-octet (Mo) est 1024 kilo-octet, etc..

Liste des préfixes par ordre croissant : kilo (k), méga (M), giga (G), téra (T), péta (P) et pour la culture only : exa (E), zetta (Z), yotta (Y).

Conversion binaire -> décimal

Les puissances de 2 sont à connaître par coeur au moins jusqu'à 2^12 :

PuissanceValeur décimale
01
12
24
38
416
532
664
7128
8256
9512
101024
112048
124096
138192
1416384
1532768
1665536

La conversion d'un nombre binaire vers le décimal s'effectue assez facilement :

  • en partant de la droite du nombre binaire, on se récite les puissances de 2 (1,2,4,8,16,...)
  • on ne garde que les puissances de 2 correspondant aux positions où il y a un 1
  • on fait la somme de ces puissances de 2

Exemple

Exemple : convertir le nombre binaire 101101 en décimal

  • on se récite les puissances de 2 : 1,2,4,8,16,32
  • on ne garde que les puissances de 2 correspondant aux positions où il y a un 1 : 1,2,4,8,16,32
  • on fait la somme de ces puissances de 2 : 1 + 4 + 8 + 32 = 45

Exercice

Exercice : convertir les nombres binaires suivants en décimal.

  • 1101
  • 10 0101
  • 1100 0110
  • 1111 1111

Astuce : quand on a un nombre du genre 1111 1111, on peut remarquer que le nombre juste après est 1 0000 0000, qui est beaucoup plus facile à convertir en décimal (ici 256). On peut donc calculer 1111 1111 en faisant 256 - 1 = 255.

Calculs en binaire

Les tables d'addition et de multiplication en binaire sont très simples :

aba+b
000
011
101
1110
aba×b
000
010
100
111

On peut donc faire des additions et des multiplications en binaire, de la même manière qu'en décimal, en se rappelant que 1+1=10 (retenue 1) et 1×1=1.

Exercice : effectuer les opérations suivantes en binaire, et vérifiez vos calculs en passant par le décimal.

  • 1011 0100 + 1011 1101
  • 1011 x 110

Conversion décimal -> base 2

Important

Pour convertir un nombre décimal en binaire, il faut trouver les puissances de 2 qui, additionnées, donnent le nombre décimal.

Exemple

Exemple : convertir le nombre décimal 45 en binaire

  • on cherche la plus grande puissance de 2 inférieure ou égale à 45 : c'est 32 (2^5)
  • on fait 45 - 32 = 13
  • on cherche la plus grande puissance de 2 inférieure ou égale à 13 : c'est 8 (2^3)
  • on fait 13 - 8 = 5
  • on cherche la plus grande puissance de 2 inférieure ou égale à 5 : c'est 4 (2^2)
  • on fait 5 - 4 = 1
  • on cherche la plus grande puissance de 2 inférieure ou égale à 1 : c'est 1 (2^0)
  • on fait 1 - 1 = 0
  • on a trouvé 0, on s'arrête

On a donc 45 = 32 + 8 + 4 + 1 = 2^5 + 2^3 + 2^2 + 2^0 On écrit donc 45 en binaire en mettant des 1 aux positions 5, 3, 2 et 0, et des 0 aux autres positions : 101101.

Cette méthode par soustractions successives ne fonctionne que pour le binaire (car on a un seul choix pour chaque puissance de la base : elle est présente ou pas).

Méthode

Tant que le nombre n'est pas nul

  • on cherche la plus grande puissance de 2 inférieure ou égale au nombre
  • on soustrait cette puissance de 2 au nombre
  • on continue avec le reste

Une fois que l'on tombé sur 0, on arrête et on écrit le nombre binaire en mettant des 1 aux positions des puissances de 2 utilisées, et des 0 aux autres positions.

Exercice

Exercice : convertir les nombres décimaux suivants en binaire.

  • 2009
  • 1515
  • 789
  • 1984

Passages binaire <-> hexadécimal <-> octal

Hexadécimal

Le passage du binaire vers l'hexadécimal est très simple : on regroupe les bits par 4, en partant de la droite (on ajoute des 0 à gauche si besoin), puis on convertit chaque groupe de 4 bits en un chiffre hexadécimal (de 0 à F).

Exemple

Convertir le nombre binaire 1011 1101 0110 en hexadécimal

  • on regroupe par 4 bits : 1011 1101 0110
  • on convertit chaque groupe en hexadécimal : B D 6
  • on écrit le nombre hexadécimal : BD6
Pour passer de l'hexadécimal vers le binaire, on fait l'inverse : on convertit chaque chiffre hexadécimal en un groupe de 4 bits, puis on concatène les groupes.

Exemple

Convertir le nombre hexadécimal 2F3 en binaire

  • on convertit chaque chiffre en binaire : 2 -> 0010, F -> 1111, 3 -> 0011
  • on concatène les groupes : 0010 1111 0011

Octal

C'est le même principe, mais on regroupe par 3 bits, pour obtentir des chiffres octaux (base 8, donc chiffres de 0 à 7).

Exemple

Convertir le nombre binaire 101111010110 en octal

  • on regroupe par 3 bits : 1 011 110 101 10 -> 001 011 110 101 110
  • on convertit chaque groupe en octal : 1 3 6 5 6
  • on écrit le nombre octal : 13656

Pour passer de l'octal vers le binaire, on fait l'inverse : on convertit chaque chiffre octal en un groupe de 3 bits, puis on concatène les groupes.

Exemple

Convertir le nombre octal 2753 en binaire

  • on convertit chaque chiffre en binaire : 2 -> 010, 7 -> 111, 5 -> 101, 3 -> 011
  • on concatène les groupes : 010 111 101 011 -> 010111101011

Exercice

Exercice : écrire les nombres suivants en hexadécimal et en octal (utilisez le résultat de la conversion en binaire de l'exercice précédent).

  • 2009
  • 1515
  • 789
  • 1984

Passage décimal -> base b quelconque

Pour convertir un nombre décimal en une base b quelconque (supérieure ou égale à 2), on utilise la méthode des divisions successives.

Méthode

Pour convertir un nombre décimal N en base b :

  • on divise N par b
  • on note le reste r (chiffre le plus à droite du nombre en base b)
  • on remplace N par le quotient de la division
  • on recommence jusqu'à ce que le quotient soit 0
  • le nombre en base b s'écrit avec les restes, en commençant par le dernier reste obtenu (chiffre le plus à gauche du nombre en base b)

Exemple

Exemple : convertir le nombre décimal 45 en base 3

  • 45 ÷ 3 = 15 reste 0
  • 15 ÷ 3 = 5 reste 0
  • 5 ÷ 3 = 1 reste 2
  • 1 ÷ 3 = 0 reste 1
  • on s'arrête, le quotient est 0
  • on écrit le nombre en base 3 avec les restes, en commençant par le dernier reste obtenu : 1200

Exercice

Exercice : convertir les nombres décimaux suivants en base 8.. vous pourrez vérifier vos résultats en utilisant les résultats de l'exercice précédent.

  • 2009
  • 1515
  • 789
  • 1984