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

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

Сообщение Anonymous »

Я писал код на leetcode, чтобы перевернуть число в 32-битной среде. Эта ошибка появляется в тестовом примере, где x = -2147483648. Я видел другие решения той же проблемы и понимаю их, но я просто хочу знать, почему этот код неправильный.
Я хочу добиться изменения числа с помощью этого конкретного кода ..но когда мы запускаем его для вышеупомянутого тестового примера, он не работает.
Мне нужна помощь в выяснении, почему происходит эта ошибка.
ошибка говорит, что строка «x=-x» невозможно для типа 'int' для конкретного тестового примера. я попытался преобразовать переменную x в long int для того же самого, но все равно выдает ошибку.
long 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++»