Pourquoi le binaire, l'octal et l'hexadécimal

Une base n'est rien d'autre que le nombre de chiffres disponibles avant de devoir passer à la position suivante. En base dix il y en a dix, en base deux seulement zéro et un, en base seize il en faut seize et les six derniers utilisent les lettres A à F. La valeur d'un nombre ne change pas avec la base : seule change la façon de l'écrire.

Le binaire existe parce qu'un circuit distingue de façon fiable deux états et non dix. L'hexadécimal existe parce que le binaire est illisible pour un humain : chaque chiffre hexadécimal correspond exactement à quatre bits, la conversion entre les deux est donc une substitution directe groupe par groupe, sans calcul. Il en va de même pour l'octal, où un chiffre vaut trois bits.

Le complément à deux est la façon dont les ordinateurs représentent les nombres négatifs, et son élégance tient à ce que l'addition fonctionne sans règle particulière sur le signe. Un nombre négatif s'obtient en inversant tous les bits de sa valeur absolue et en ajoutant un : sur huit bits, −5 devient 11111011. Il en découle que l'intervalle n'est pas symétrique, car le zéro occupe une place dans la moitié positive : avec n bits on va de −2ⁿ⁻¹ à 2ⁿ⁻¹−1.

Erreurs fréquentes

  • Confondre le bit de signe avec un signe moins : en complément à deux, le bit de poids fort vaut −2ⁿ⁻¹ et non « moins ». C'est pourquoi 10000000 sur huit bits vaut −128 et non −0.
  • Oublier que la plage positive est plus courte d'une unité : sur huit bits signés on va jusqu'à 127, pas 128. C'est la cause de la plupart des débordements dans les exercices.
  • Lire l'hexadécimal comme du décimal : 10 en hexadécimal vaut 16, pas dix. Quand le contexte n'est pas clair, les préfixes 0x et 0b valent la peine.

Questions fréquentes

Comment convertir un nombre binaire en décimal ?

On multiplie chaque chiffre par la puissance de deux correspondant à sa position, en comptant depuis la droite à partir de zéro, et on additionne. 10110110 vaut 128+32+16+4+2 = 182.

Comment convertir du décimal au binaire ?

On divise successivement par deux en notant les restes, puis on lit les restes du dernier au premier. On peut aussi soustraire les puissances de deux en commençant par la plus grande qui tienne.

Comment calculer le complément à deux d'un nombre négatif ?

On écrit la valeur absolue en binaire sur la largeur choisie, on inverse tous les bits et on ajoute un. Pour −5 sur huit bits : 00000101 devient 11111010, plus un donne 11111011.

Pourquoi l'hexadécimal est-il si utilisé en informatique ?

Parce qu'un chiffre hexadécimal vaut exactement quatre bits : un octet s'écrit donc avec seulement deux caractères. La conversion avec le binaire ne demande aucun calcul, contrairement à celle avec le décimal.

Comment fonctionne ce calcul

Valeur d'un nombre en base b de chiffres cₙ…c₁c₀ : V = Σ cᵢ · bⁱ, avec i partant de zéro à droite. Du décimal vers la base b : divisions successives par b, les restes lus à l'envers. Correspondance directe : un chiffre hexadécimal vaut 4 bits et un chiffre octal 3 bits, le binaire se convertit donc en regroupant les bits. Complément à deux sur n bits : pour une valeur v positive ou nulle, le motif est v lui-même ; pour v négative, c'est 2ⁿ + v, obtenu en inversant les bits de |v| et en ajoutant 1. Intervalle représentable signé : de −2ⁿ⁻¹ à 2ⁿ⁻¹ − 1.