Représentation des données

Entiers Positifs en Binaire et Hexadécimal

Comprendre les systèmes de numération et les conversions entre bases

🦊

Entiers positifs en binaire et hexadécimal

Objectifs

  • Comprendre ce qu'est une base de numération
  • Convertir un entier binaire ↔ décimal
  • Convertir un entier décimal ↔ hexadécimal
  • Relier 4 bits à un chiffre hexadécimal

Idée clé

Une machine ne « voit » que deux états (courant / pas de courant). On code donc les entiers avec deux symboles : 0 et 1. L'hexadécimal (16 symboles) sert surtout à écrire le binaire de façon compacte : 1 chiffre hex = 4 bits.

Bases et colonnes

Dans toute base bb, chaque colonne vaut une puissance de bb.

Décimal (base 10) — symboles {0,,9}\{0,\ldots,9\} :

154(10)=1×102+5×101+4×100154_{(10)} = 1\times10^{2} + 5\times10^{1} + 4\times10^{0}

Binaire (base 2) — symboles {0,1}\{0,1\} :

1101(2)=1×23+1×22+0×21+1×20=13(10)1101_{(2)} = 1\times2^{3} + 1\times2^{2} + 0\times2^{1} + 1\times2^{0} = 13_{(10)}

Un chiffre binaire s'appelle un bit ; 8 bits forment un octet.

Binaire → décimal

On additionne les puissances de 2 là où le bit vaut 1.

232^3222^2212^1202^0
1101

1101(2)=8+4+0+1=13(10)1101_{(2)} = 8 + 4 + 0 + 1 = 13_{(10)}

Toujours préciser la base si elle n'est pas évidente : 1101(2)1101_{(2)}, 13(10)13_{(10)}.

Décimal → binaire

Divisions successives

On divise par 2 ; les restes lus de bas en haut donnent le binaire.

Exemple : 29(10)29_{(10)}

29 ÷ 2 = 14  reste 1
14 ÷ 2 =  7  reste 0
 7 ÷ 2 =  3  reste 1
 3 ÷ 2 =  1  reste 1
 1 ÷ 2 =  0  reste 1

Résultat : 29(10)=11101(2)29_{(10)} = 11101_{(2)}.

Vérification : 16+8+4+0+1=2916+8+4+0+1 = 29.

Soustractions (puissances de 2)

On pose le plus grand 2k2^k ≤ au nombre, on met 1, on continue avec le reste.

Exemple : 42(10)42_{(10)}25=322^5=32 oui, 24=162^4=16 non, 23=82^3=8 oui, 22=42^2=4 non, 21=22^1=2 oui, 20=12^0=1 non.

42(10)=101010(2)42_{(10)} = 101010_{(2)}

Hexadécimal

Base 16 : {0,,9,A,B,C,D,E,F}\{0,\ldots,9,A,B,C,D,E,F\} (A = 10 … F = 15).

Déc.HexBinaire (4 bits)
000000
10A1010
15F1111

Astuce : regrouper le binaire par paquets de 4 bits.

11111111(2)=FF(16)=255(10)1111\,1111_{(2)} = \mathrm{FF}_{(16)} = 255_{(10)}

Conversion décimal → hex : divisions successives par 16.

Exemple : 255÷16=15255 \div 16 = 15 reste 1515 (F), puis 15÷16=015 \div 16 = 0 reste 1515 (F) → FF(16)\mathrm{FF}_{(16)}.

Piège fréquent

Oublier l'ordre de lecture des restes (divisions successives) : on lit du dernier reste vers le premier, pas l'inverse. Vérifier toujours en reconvertissant vers le décimal.

À retenir

  • Base bb = bb symboles ; valeur = somme des chiffres × puissances de bb
  • Binaire : colonnes 1,2,4,8,16,1, 2, 4, 8, 16, \ldots
  • Décimal → binaire : divisions par 2 (restes de bas en haut)
  • 1 chiffre hex = 4 bits ; F = 15 = 1111(2)1111_{(2)}
  • Toujours indiquer la base quand elle n'est pas claire
  • Un octet = 8 bits

Pour s'entraîner

Exercices — données binaires