Aller au contenu principal

Informatique · Première · 5 min de lecture

Bases 2, 10 et 16 : un même nombre, plusieurs écritures

Écriture positionnelle d'un entier naturel dans une base b : valeur de chaque chiffre selon son rang (puissances de b) ; passage de la base 10 à la base 2 par divisions successives et inversement ; base 16 (chiffres 0 à 9 et A à F) et regroupement des bits par paquets de quatre ; bit et octet.

Chapitre du programme : Numérique et sciences informatiques (spécialité)

Bloc 1 sur 7 · Comprendre

Comprendre : la valeur d'un chiffre dépend de sa place

En base 10, l'écriture 345 signifie 3 × 100 + 4 × 10 + 5 × 1 : chaque rang vaut dix fois le rang situé à sa droite. On dit que l'écriture est positionnelle.

Une machine ne manipule que des bits, des chiffres qui valent 0 ou 1. Elle écrit donc les nombres en base 2 : chaque rang vaut deux fois le rang à sa droite. Les poids, en partant de la droite, sont 1, 2, 4, 8, 16, 32, 64, 128…

Exemple. L'écriture binaire 101101 se lit, de droite à gauche :

Tableau : Poids, 32, 16, 8, 4, 2, 1
Poids32168421
Bit101101

Sa valeur est 32 + 8 + 4 + 1 = 45. On écrit (101101)₂ = 45 pour préciser la base. Un octet est un groupe de 8 bits.

Bloc 2 sur 7 · Approfondir

Approfondir : de la base 10 à la base 2, et la base 16

De la base 10 vers la base 2 : les divisions successives. On divise le nombre par 2, puis le quotient par 2, et ainsi de suite jusqu'à obtenir 0. Les restes, lus du dernier au premier, forment l'écriture binaire. Pour 45 : 45 = 2 × 22 + 1 ; 22 = 2 × 11 + 0 ; 11 = 2 × 5 + 1 ; 5 = 2 × 2 + 1 ; 2 = 2 × 1 + 0 ; 1 = 2 × 0 + 1. Lus de bas en haut : 101101.

Le même algorithme, écrit en Python : chaque reste est placé à GAUCHE de ceux déjà trouvés.

n = 45
bits = ""
while n > 0:
    bits = str(n % 2) + bits
    n = n // 2
print(bits)
101101

La base 16 (hexadécimal). Elle utilise seize chiffres : 0 à 9, puis A (dix), B (onze), C, D, E et F (quinze). Les poids sont 1, 16, 256… Comme 16 = 2⁴, un chiffre hexadécimal correspond exactement à 4 bits : on passe du binaire à l'hexadécimal en groupant les bits par quatre à partir de la droite. Par exemple 1111 1010 donne F (quinze) puis A (dix) : (FA)₁₆ = 15 × 16 + 10 = 250.

Python sait faire ces conversions :

print(bin(45))
print(int("101101", 2))
print(hex(250))
print(int("FA", 16))
0b101101
45
0xfa
250

Les préfixes 0b et 0x signalent une écriture binaire et hexadécimale.

Bloc 3 sur 7 · Exemple

Exemple guidé : (3A7)₁₆ en base 10

Énoncé. Écrire (3A7)₁₆ en base 10.

Résolution.

  1. Les chiffres sont 3, A et 7 ; A vaut dix.
  2. Les poids, de droite à gauche : 1, 16 et 16 × 16 = 256.
  3. Valeur : 3 × 256 + 10 × 16 + 7 × 1 = 768 + 160 + 7 = 935.

Contrôle par le binaire. Chaque chiffre hexadécimal donne 4 bits : 3 → 0011, A → 1010, 7 → 0111, d'où (0011 1010 0111)₂. Les bits à 1 ont pour poids 512, 256, 128, 32, 4, 2 et 1, dont la somme vaut bien 935.

Bloc 4 sur 7 · Visualiser

Voir : les trois écritures côte à côte

Tableau : Base 10, Base 2, Base 16
Base 10Base 2Base 16
000
910019
101010A
151111F
161 000010
4510 11012D
2551111 1111FF

Le plus grand nombre qui s'écrit sur un octet est (1111 1111)₂ = (FF)₁₆ = 255 : deux chiffres hexadécimaux suffisent pour écrire un octet.

Continuez sur votre lancée

Vous avez découvert l’essentiel et un exemple. Retrouvez la suite du cours et les points à retenir, puis passez à l’entraînement guidé dans votre compte.

  • Les formules et les repères à retenir
  • Les erreurs fréquentes expliquées
  • Un exercice avec des aides et sa correction

L’accès gratuit comprend les cours et exercices de votre niveau choisi.

Sources

  • BO spécial n°1 du 22 janvier 2019 — programme de spécialité numérique et sciences informatiques de première, « Représentation des données : types et valeurs de base »
  • Documentation officielle de Python 3 — The Python Standard Library, fonctions natives bin, hex et int (https://docs.python.org/3/library/functions.html)

Vous pensez avoir trouvé une erreur dans cette leçon ? Signalez-la par e-mail.

Explorer les autres cours

Accès rapide