Cette page suit toujours le même plan : le principe en une phrase, les étapes dans l'ordre exact, une démonstration interactive, le code Python, puis les points clés à retenir.
Chaque mot ci-dessous est utilisé exactement dans ce sens dans toute la page.
| Mot | Définition précise |
|---|---|
| Base | Le nombre de chiffres différents utilisés pour écrire les nombres. Base 10 : chiffres de 0 à 9. Base 2 : chiffres 0 et 1. Base 16 : chiffres de 0 à 9 puis A, B, C, D, E, F. |
| Binaire (base 2) | Une écriture des nombres qui n'utilise que deux chiffres : 0 et 1. C'est la base utilisée en mémoire par les ordinateurs. |
| Hexadécimal (base 16) | Une écriture des nombres sur 16 chiffres (0 à 9, puis A=10, B=11, C=12, D=13, E=14, F=15). Souvent utilisée pour écrire des octets de façon plus courte que le binaire. |
| Bit | Un seul chiffre binaire (0 ou 1). C'est la plus petite unité d'information. |
| Octet | Un groupe de 8 bits. Un octet permet de représenter les entiers de 0 à 255. |
| Poids d'un chiffre | La valeur que représente un chiffre selon sa position : en base b, le chiffre à la position i (en partant de 0, à droite) vaut chiffre × bi. |
| Quotient / reste | Dans une division entière a ÷ b, le quotient est le résultat entier, le reste est ce qu'il reste (toujours inférieur à b). |
On utilise le nombre décimal N = 173 tout au long de cette page, pour le convertir en binaire puis en hexadécimal.
| Dividende | ÷ 2 | Quotient | Reste |
|---|
Pour retrouver 173 à partir de 10101101, on additionne les poids des chiffres qui valent 1 (poids = 2position, position comptée à partir de 0 en partant de la droite) :
| Position | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Poids (2position) | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| Chiffre binaire | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 |
128 + 32 + 8 + 4 + 1 = 173.
Un chiffre hexadécimal correspond exactement à un groupe de 4 bits. On regroupe donc le binaire par paquets de 4, en partant de la droite :
| Groupe de 4 bits | 1010 | 1101 |
|---|---|---|
| Valeur décimale du groupe | 10 | 13 |
| Chiffre hexadécimal | A | D |
173 s'écrit donc AD en hexadécimal.
def decimal_vers_binaire(n): """Convertit un entier positif n en chaîne binaire.""" if n == 0: return "0" chiffres = [] while n > 0: chiffres.append(str(n % 2)) n = n // 2 chiffres.reverse() return "".join(chiffres)# Jeu de données : le même exemple que la démonstration ci-dessusN = 173print(decimal_vers_binaire(N))# Résultat affiché : 10101101print(bin(N)) # 0b10101101 (Python ajoute toujours le préfixe 0b)print(hex(N)) # 0xad (Python ajoute toujours le préfixe 0x)print(int("10101101", 2)) # reconversion vers un entier : 173
bin(n) et hex(n) ajoutent toujours les préfixes 0b et 0x pour indiquer la base utilisée.