J'ai fait un débordement signé plusieurs fois mais chaque fois je fais un enveloppement turbo. Par exemple:Pourquoi le turbo c wraparound a-t-il un débordement d'entier signé à chaque fois que le dépassement d'entier signé est indéfini?
#include <stdio.h>
void main() {
int i = 100000;
printf("%d", i);
getch();
}
La sortie est -31072
qui est le résultat attendu si wraparound est fait. En binaire 100000(dec)
est 11000011010100000
et les 16 derniers bits sont magasin dont est 1000011010100000
. Dans deux représentation de complément 1000011010100000
est -31072
.
Regardez [this] (https://www.youtube.com/watch?v=yG1OZ69H_-o). Il fait un bon travail d'explication de comportement indéfini plus et parle spécifiquement de comportement indéfini et la façon dont nous utilisons parfois hyperbole pour le décrire. – wally