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.