Ошибка выполнения cpp: отрицание -2147483648 не может быть представлено в типе «int»;C++

Программы на C++. Форум разработчиков
Anonymous
Ошибка выполнения cpp: отрицание -2147483648 не может быть представлено в типе «int»;

Сообщение Anonymous »

Я писал код на leetcode, чтобы перевернуть число в 32-битной среде. Эта ошибка появляется в тестовом примере, где x = -2147483648. Я видел другие решения той же проблемы и понимаю их, но я просто хочу знать, почему этот код неправильный.

Код: Выделить всё

int reverse(int x) {
if (x==0){
return 0;
}
bool n = false;

if (x0){
int rem;
rem = x%10;
x = x/10;
if ( (num*10) > (pow(2,31)-1) || (num*10) < -pow(2,31)){
return 0;
}
num = num*10 + rem;

}

if(n==true){
num = -num;
}

return num;
}
это код, который я пробовал

Подробнее здесь: https://stackoverflow.com/questions/787 ... n-type-int

Вернуться в «C++»