127 sur 8 bits : le plus grand entier signé

127 est la valeur maximale d'un entier signé sur 8 bits : voyez sa représentation et ce qui se passe au-delà.

Représentation en complément à deux
0111 1111
En hexadécimal
0x7F
Lu comme un nombre non signé
127
Plage sur 8 bits
de -128 à 127
Bit de signe
0 (positif ou nul)

Le cas en détail

127 s'écrit 01111111. Ajouter 1 donne 10000000, qui représente -128 : le compteur fait le tour. Ce phénomène, appelé dépassement d'entier, a provoqué de vrais bogues dans des programmes qui supposaient une plage plus large.

À retenir : Choisissez un type assez grand pour vos données, ou vérifiez les bornes avant d'additionner.

L'exemple chiffré

Valeurs utilisées dans ce cas (des exemples, pas des mesures) :

  • Entier à représenter : 127
  • Largeur du nombre : 8 bits (un octet)
Représentation en complément à deux
0111 1111
En hexadécimal
0x7F
Lu comme un nombre non signé
127
Plage sur 8 bits
de -128 à 127
Bit de signe
0 (positif ou nul)

Modifiez les champs ci-dessus pour adapter le calcul à votre situation : le résultat se met à jour tout de suite.

Comment ça se calcule

Un nombre positif s'écrit tel quel. Pour un nombre négatif, on ajoute 2^b (b étant le nombre de bits) : -42 sur 8 bits devient 256 - 42 = 214, soit 11010110. La plage va de -2^(b-1) à 2^(b-1) - 1, et le premier bit indique le signe.

Les résultats sont fournis à titre indicatif, sans valeur de conseil juridique, fiscal ou financier.

Pour aller plus loin