À retenir
- Permet d'augmenter la taille en bits sans changer la valeur numérique.
- Se base sur la copie du bit de poids fort (le bit le plus à gauche).
- Essentiel pour le calcul arithmétique avec des nombres négatifs.
L'extension de signe est une technique utilisée par l'ordinateur pour agrandir la taille d'un nombre binaire (par exemple, passer de 8 à 16 bits) tout en conservant sa valeur exacte et son signe (positif ou négatif). On imagine cela comme le fait d'ajouter des chiffres à gauche d'un nombre sans changer son sens : si le nombre est positif, on ajoute des 0, et s'il est négatif, on ajoute des 1.
Étymologie
Il s'agit d'un calque de l'expression anglaise sign extension. Le terme combine « signe » (indiquant si la valeur est supérieure ou inférieure à zéro) et « extension » (l'action d'augmenter la place occupée en mémoire).
Exemples d'usage
- Nombre positif : Le nombre
0101(5 en décimal sur 4 bits) devient0000 0101sur 8 bits. On a ajouté des zéros car le premier bit était 0. - Nombre négatif : En binaire signé,
1011représente -5 sur 4 bits. Pour le passer sur 8 bits, on répète le 1 de gauche :1111 1011. La valeur reste -5.
Cas d'usage
Ce concept intervient principalement lors de la programmation en bas niveau (C, Assembleur) ou lors de la conception de processeurs. Il est indispensable quand on additionne deux nombres de tailles différentes (par exemple un petit entier short et un grand entier long) ou lorsqu'on charge une donnée stockée sur un octet dans un registre de processeur plus large.
Bonnes pratiques
Il faut être vigilant lors de la conversion de types (le « casting »). Si vous convertissez une donnée non signée (unsigned) en utilisant une extension de signe, vous risquez de transformer une valeur positive en une valeur totalement différente. Utilisez toujours l'extension de zéro pour les données non signées et l'extension de signe pour les données signées.
Synonymes
Antonymes
Conseil
Si vous débutez, retenez simplement que l'ordinateur doit « remplir le vide » lorsqu'il déplace une petite donnée vers un grand tiroir. L'extension de signe est sa façon de s'assurer que si vous aviez une dette (-10 €), vous avez toujours la même dette même si le carnet de compte est plus large.
Questions fréquentes
Pourquoi ne pas simplement ajouter des zéros ?
Si le nombre est négatif (représenté en complément à deux), ajouter des zéros à gauche changerait radicalement sa valeur en le transformant en un grand nombre positif.
Quel est l'inverse de l'extension de signe ?
Il n'y a pas d'inverse exact, mais réduire la taille d'un nombre s'appelle la troncature, ce qui peut entraîner une perte de données si le nombre est trop grand.