En el siguiente código de C++, 32767 + 1 = -32768.Cómo evitar el desbordamiento de enteros?
#include <iostream>
int main(){
short var = 32767;
var++;
std::cout << var;
std::cin.get();
}
¿Hay alguna manera de simplemente dejar "var" como 32767, sin ningún error?
¿Qué está pasando aquí? Ha llegado al techo por un número entero (corto), por lo que al agregar uno más, los signos se vuelven a la cantidad máxima negativa para un número entero. – blu
Si desea un modo diferente donde los números enteros no se envuelven automáticamente, no existe, lo siento. – dmazzoni
Esto me recuerda por qué [no puedo dormir] (http://xkcd.com/571/). :-) –