À retenir
- Permet de représenter des valeurs négatives.
- Utilise un bit de poids fort (le premier à gauche) pour coder le signe.
- Réduit de moitié la valeur maximale positive possible par rapport à un type non signé de même taille.
En programmation, un nombre signé est une donnée numérique capable d'exprimer des valeurs positives, négatives ou nulles. C'est l'équivalent d'un compte bancaire qui autorise le découvert : vous pouvez être dans le positif ou passer en dessous de zéro.
Étymologie
Issu du verbe « signer », le terme fait référence à la présence d'un signe arithmétique (+ ou -) attaché au nombre. En informatique, cela signifie qu'un bit spécifique (souvent le premier) est utilisé exclusivement pour indiquer si le nombre est positif ou négatif.
Exemples d'usage
- Une variable
inten langage C ou Java, qui peut stocker -10, 0 ou 42. - Une température enregistrée dans un capteur météo (ex: -5°C).
- Un décalage de position (offset) sur un axe de coordonnées.
Cas d'usage
On utilise des types signés dès qu'une valeur peut représenter une perte, une direction opposée ou une diminution sous le seuil de zéro. C'est le cas par défaut de la plupart des variables numériques dans les langages de haut niveau comme Python ou JavaScript.
Bonnes pratiques
Attention au mélange des genres : comparer un nombre signé avec un nombre non signé (unsigned) peut provoquer des erreurs logiques surprenantes. De plus, à taille égale (ex: 8 bits), un type signé monte moins haut en positif qu'un type non signé, car il « sacrifie » une partie de sa capacité pour gérer les nombres négatifs.
Synonymes
Antonymes
Conseil
Si vous n'avez jamais besoin de valeurs négatives (par exemple pour compter des utilisateurs ou des pixels), préférez parfois les types non signés (unsigned) pour doubler la capacité de stockage positive sans consommer plus de mémoire.
Questions fréquentes
Comment l'ordinateur sait-il qu'un nombre est négatif ?
Il utilise généralement une méthode appelée 'complément à deux' où le bit le plus à gauche sert d'indicateur de signe.
Un nombre signé est-il plus lourd en mémoire ?
Non, il occupe la même place qu'un nombre non signé (par exemple 32 bits), mais la plage de valeurs est répartie différemment.