Comment utiliser cette page

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.

Utilisation de la démonstration
La démonstration avance uniquement quand vous cliquez sur « Suivant » ou « Précédent » : rien ne bouge tout seul. Un bouton « Lecture automatique » est disponible si vous préférez laisser les étapes défiler seules, à une vitesse que vous choisissez.

1. Vocabulaire à connaître avant de commencer

Chaque mot ci-dessous est utilisé exactement dans ce sens dans toute la page.

MotDéfinition précise
BaseLe 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.
BitUn seul chiffre binaire (0 ou 1). C'est la plus petite unité d'information.
OctetUn groupe de 8 bits. Un octet permet de représenter les entiers de 0 à 255.
Poids d'un chiffreLa 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 / resteDans une division entière a ÷ b, le quotient est le résultat entier, le reste est ce qu'il reste (toujours inférieur à b).

2. Le nombre d'exemple utilisé dans cette page

On utilise le nombre décimal N = 173 tout au long de cette page, pour le convertir en binaire puis en hexadécimal.

Résultat à retrouver
173 en base 10 s'écrit 10101101 en base 2 (binaire), et AD en base 16 (hexadécimal).

3. Conversion décimal → binaire

3.1 — Principe, en une phrase

Principe
Pour convertir un nombre décimal en binaire, on le divise plusieurs fois de suite par 2 : chaque reste (0 ou 1) est un chiffre binaire, et on les relit dans l'ordre inverse (du dernier au premier) pour obtenir le résultat.

3.2 — Les étapes, dans l'ordre exact

  1. On divise le nombre par 2 : on obtient un quotient et un reste (0 ou 1).
  2. On note le reste : ce sera un chiffre du résultat binaire.
  3. On recommence la division, mais avec le quotient obtenu.
  4. On répète les étapes 1 à 3 tant que le quotient n'est pas égal à 0.
  5. Le résultat binaire s'obtient en lisant tous les restes trouvés, du dernier au premier (c'est-à-dire de bas en haut si on les a notés dans un tableau).

3.3 — Démonstration interactive

division en cours division terminée
Dividende÷ 2QuotientReste
Étape 1 / 1
La ligne de code correspondant à l'étape en cours est surlignée ci-dessous.

3.4 — Vérification : du binaire vers le décimal

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) :

Position76543210
Poids (2position)1286432168421
Chiffre binaire10101101

128 + 32 + 8 + 4 + 1 = 173.

3.5 — Vérification : du binaire vers l'hexadécimal

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 bits10101101
Valeur décimale du groupe1013
Chiffre hexadécimalAD

173 s'écrit donc AD en hexadécimal.

3.6 — Code Python

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

3.7 — Points clés à retenir

Prêt(e) pour la suite ? → Retour à l'accueil