
ULUMINE · Numérique et sciences informatiques (NSI) · Première
Représenter les entiers : binaire, hexadécimal, complément à deux
Les entiers sont codés en binaire ; l’hexadécimal les écrit de façon compacte ; le complément à deux code les négatifs.
Conversions
- Binaire → décimal : somme des poids (1, 2, 4, 8, 16, 32, 64, 128…) des bits à 1.
- Décimal → binaire : divisions successives par 2, restes lus de bas en haut.
- Binaire ↔ hexadécimal : paquets de 4 bits à partir de la droite ; A = 10 … F = 15.
Capacités
- n bits : 2ⁿ valeurs ; entiers naturels de 0 à 2ⁿ − 1 (8 bits : 0 à 255).
- Complément à deux sur n bits : de −2ⁿ⁻¹ à 2ⁿ⁻¹ − 1 (8 bits : −128 à 127).
Complément à deux
- Coder −x : écrire x sur n bits, inverser tous les bits, ajouter 1.
- Décoder : le bit de poids fort compte pour −2ⁿ⁻¹, les autres sont positifs.
- Python : bin(23) → '0b10111', hex(255) → '0xff', int("2B", 16) → 43.
Pièges à éviter
- Lire les restes de haut en bas au lieu de bas en haut.
- Couper les paquets de 4 bits à partir de la gauche au lieu de la droite.
- Oublier d’ajouter 1 après l’inversion des bits.
- Croire qu’on peut coder +128 sur 8 bits en complément à deux.