2.4 Représentation d'un entier positif dans différentes bases⚓︎
Hormis la base 10, deux bases sont utilisées en informatique :
- la base 2 (le système binaire)
- la base 16 (le système hexadécimal)
Dans toute la suite, la base dans laquelle le nombre est écrit sera précisée en indice.
Exemple :
1. Le système binaire⚓︎
En base 2, on ne dispose que des chiffres 0
et 1
. Le système binaire est un système de numération de position (comme le système décimal, hexadécimal... mais pas comme le système romain). À chaque rang correspond une puissance de 2.
1.1 Du binaire vers le décimal :⚓︎
... | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
---|---|---|---|---|---|---|---|---|
... | ||||||||
... | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 |
Le nombre binaire 11010010 correspond donc au nombre décimal 210.
Code Python
En Python, on peut utiliser la fonction int("nombre", base)
.
>>> int("11010010", 2)
210
1.2 Du décimal vers le binaire :⚓︎
Principe : dans chaque nombre décimal, il existe une plus grande puissance de 2 qui est inférieure au nombre.
Par exemple, dans 243, il y a 128. Donc
Donc
Méthode des divisions successives
Code Python
En Python, on peut utiliser la fonction bin(nombre)
. Elle renvoie une chaîne de caractère où le nombre binaire est précédé de '0b'
.
>>> bin(243)
'0b11110011'
Exercice 1
Quelle est la valeur maximale d'un octet (un octet = 8 chiffres binaires) ?
Correction
2. Le système hexadécimal⚓︎
L'inconvénient essentiel du système binaire est la longueur de l'écriture des nombres qu'il génère. Pour cette raison, le système hexadécimal, ou système de base 16 est très souvent employé.
-
Pour écrire en base 2, il faut 2 chiffres différents : le 0 et le 1.
-
Pour écrire en base 10, il faut 10 chiffres différents: 0,1,2,3,4,5,6,7,8,9.
-
Pour écrire en base 16, il faut donc 16 chiffres différents : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
On a donc la correspondance :
- A représente 10
- B représente 11
- C représente 12
- D représente 13
- E représente 14
- F représente 15
2.1 De l'hexadécimal vers le décimal :⚓︎
256 | 16 | 1 |
---|---|---|
1 | D | 2 |
Le nombre hexadécimal 1D2
correspond donc au nombre décimal 466.
En pratique, l'hexadécimal est surtout utilisé pour sa capacité à représenter la valeur de n'importe quel octet sur 2 chiffres ("chiffres" étant à prendre au sens large = chiffres ou lettres !).
Exercice 2
- Donner la valeur des octets
FF
,3A
,B2
. - Expliquer pourquoi la couleur RGB (138,255,51) a pour code html
#8AFF33
. - Quelle est la couleur
html
du blanc ?
2.2 En python :⚓︎
2.2.1 Pour passer du décimal à l'hexadécimal :⚓︎
On peut utiliser la fonction hex(nombre)
. Elle renvoie une chaîne de caractère où le nombre hexadécimal est précédé de '0x'
.
>>> hex(125)
'0x7d'
2.2.2 Pour passer de l'hexadécimal au décimal :⚓︎
On peut utiliser la fonction int("nombre",base)
.
>>> int("FF", 16)
255