Entier non signé

Définition, exemples et bonnes pratiques

À retenir

  • Stocke uniquement des valeurs positives ou égales à zéro.
  • Offre une capacité maximale positive double de celle d'un entier signé.
  • Risque de comportement imprévu (bouclage) en cas de résultat négatif.

Un entier non signé est un type de donnée numérique qui ne peut représenter que des nombres positifs ou nuls (0, 1, 2, 3...). Contrairement à un entier classique, il n'utilise pas de bit pour indiquer si le nombre est positif ou négatif, ce qui lui permet de stocker des nombres positifs deux fois plus grands pour un même espace mémoire.

Étymologie

Traduction directe de l'anglais unsigned integer. Le terme « non signé » signifie littéralement qu'aucun signe mathématique (+ ou -) n'est associé à la valeur binaire stockée en mémoire.

Exemples d'usage

  • En langage C ou C++, le mot-clé unsigned int.
  • En Rust, les types comme u32 ou u64.
  • L'indexation des éléments d'un tableau (qui commence toujours à 0).
  • La définition de la taille d'un fichier en octets.

Cas d'usage

On l'utilise principalement pour compter des éléments physiques ou logiques qui ne peuvent pas être négatifs : nombre d'utilisateurs, dimensions d'une image en pixels, adresses mémoires (pointeurs) ou durée en millisecondes.

Bonnes pratiques

Il faut être extrêmement vigilant lors des soustractions. Si vous soustrayez 1 à un entier non signé qui vaut 0, le système ne produira pas -1, mais reviendra brusquement à la valeur maximale possible (phénomène de underflow), ce qui peut causer des bugs majeurs.

Synonymes

entier naturel unsigned type non signé

Antonymes

entier signé

Conseil

Si vous débutez, privilégiez les entiers signés par défaut pour éviter les erreurs de calcul imprévues lors des soustractions. N'utilisez les non signés que si vous avez un besoin précis de performance ou de contrainte de domaine (comme la gestion de la mémoire).

Questions fréquentes

Pourquoi utiliser un non signé plutôt qu'un signé ?

Pour gagner en capacité (atteindre des nombres plus élevés) ou pour garantir logiquement qu'une valeur ne sera jamais négative.

Que se passe-t-il si on dépasse la valeur maximale ?

Le compteur repart à zéro. C'est ce qu'on appelle un dépassement de capacité (overflow).