Numérique et sciences informatiques (NSI) · Première

Représenter les entiers : binaire, hexadécimal, complément à deux

Dans un ordinateur, toute information est codée par des bits, qui valent 0 ou 1. Pour représenter un entier, on l’écrit donc en base 2 (binaire). Comme les écritures binaires sont longues, on utilise aussi la base 16 (hexadécimal), plus compacte. Enfin, pour coder les entiers négatifs, les machines utilisent le complément à deux.

Une question sur ce cours ?

ULU, le tuteur d’ULUMINE, t’aide à partir de ce cours.

Séance guidée avec ULU (≈ 10 min)Diagnostic, explication, exercices adaptés et bilan.

Objectifs

  • Convertir un entier naturel entre les bases 10, 2 et 16
  • Connaître le nombre de valeurs codables sur n bits
  • Coder et décoder un entier relatif en complément à deux sur n bits
  • Comprendre le dépassement de capacité et utiliser bin(), hex() et int() en Python

1. Bases 10, 2 et 16

En base 10, chaque chiffre est multiplié par une puissance de 10 : 572 = 5 × 10² + 7 × 10 + 2. En base 2, on n’utilise que les chiffres 0 et 1, et chaque position correspond à une puissance de 2.

Bit et octet : Un bit (binary digit) est un chiffre binaire, 0 ou 1. Un octet est un groupe de 8 bits. Le bit de gauche est le bit de poids fort, celui de droite le bit de poids faible.

2. L’hexadécimal

La base 16 utilise 16 chiffres : 0 à 9 puis A (10), B (11), C (12), D (13), E (14) et F (15). Comme 16 = 2⁴, un chiffre hexadécimal correspond exactement à 4 bits : un octet s’écrit avec 2 chiffres hexadécimaux.

3. Les entiers relatifs : le complément à deux

Sur n bits, le complément à deux permet de coder les entiers de −2ⁿ⁻¹ à 2ⁿ⁻¹ − 1. Sur 8 bits : de −128 à 127. Un entier positif s’écrit comme d’habitude ; le bit de poids fort vaut alors 0. Un entier négatif a un bit de poids fort égal à 1.

4. En Python

À retenir

  • Base 2 : chaque bit a pour poids une puissance de 2 ; on convertit en base 2 par divisions successives par 2 (restes lus de bas en haut).
  • Un chiffre hexadécimal correspond à 4 bits ; A = 10, …, F = 15.
  • Sur n bits : 2ⁿ valeurs, de 0 à 2ⁿ − 1 pour les entiers naturels.
  • Complément à deux sur n bits : de −2ⁿ⁻¹ à 2ⁿ⁻¹ − 1 ; pour coder −x : écrire x, inverser les bits, ajouter 1.
  • Python : bin(), hex(), int(chaine, base).

Et maintenant, à toi !

Vérifie que tu as compris avec les exercices, puis révise avec la fiche.

À découvrir aussi