[B.1]
Écriture d'un entier dans une base b>=2
- Compter avec ses doigts
- Numération de position
- Cas particulier : la base 2 (binaire)
- Conversion décimal -> base 2
- Passages binaire <-> hexadécimal <-> octal
- Passage décimal -> base b quelconque
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 complet10
,11
,12
, ...,19
, tour complet suivant20
,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.
- 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 complet10
,11
,...,77
, tour complet suivant100
,... - Si on n'avait que 3 doigts à chaque main, on compterait en base 6 (en sénaire)
:
0
,1
,2
,3
,4
,5
, tour complet10
,11
,...,55
, tour complet suivant100
,... - Si on n'avait que 2 doigts à chaque main, on compterait en base 4 (en
quaternaire) :
0
,1
,2
,3
, tour complet10
,11
,...,33
, tour complet suivant100
,... - Si on n'avait qu'un doigt à chaque main, on compterait en base 2 (en binaire)
:
0
,1
, tour complet10
,11
,...111
, tour complet suivant1000
,...
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 complet10
,11
,...,BB
, tour complet suivant100
,... - 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 complet10
,11
,...,FF
, tour complet suivant100
,...
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) |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 |
2 | 2 | 2 | 10 | 2 |
3 | 3 | 3 | 11 | 3 |
4 | 4 | 10 | 100 | 4 |
5 | 5 | 11 | 101 | 5 |
6 | 6 | 12 | 110 | 6 |
7 | 7 | 13 | 111 | 7 |
8 | 10 | 20 | 1000 | 8 |
9 | 11 | 21 | 1001 | 9 |
10 | 12 | 22 | 1010 | A |
11 | 13 | 23 | 1011 | B |
12 | 14 | 30 | 1100 | C |
13 | 15 | 31 | 1101 | D |
14 | 16 | 32 | 1110 | E |
15 | 17 | 33 | 1111 | F |
16 | 20 | 100 | 10000 | 10 |
17 | 21 | 101 | 10001 | 11 |
18 | 22 | 102 | 10010 | 12 |
19 | 23 | 103 | 10011 | 13 |
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 \]
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).
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 : é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.
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 \]
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 :
Puissance | Valeur décimale |
---|---|
0 | 1 |
1 | 2 |
2 | 4 |
3 | 8 |
4 | 16 |
5 | 32 |
6 | 64 |
7 | 128 |
8 | 256 |
9 | 512 |
10 | 1024 |
11 | 2048 |
12 | 4096 |
13 | 8192 |
14 | 16384 |
15 | 32768 |
16 | 65536 |
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 : 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 : 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 :
a | b | a+b |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 10 |
a | b | a×b |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
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
Pour convertir un nombre décimal en binaire, il faut trouver les puissances de 2 qui, additionnées, donnent le nombre décimal.
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).
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.
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).
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
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).
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.
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 : é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.
Pour convertir un nombre décimal N
en base b
:
- on divise
N
parb
- on note le reste
r
(chiffre le plus à droite du nombre en baseb
) - 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 baseb
)
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