я пишу код, как этотпочему переполнение при сравнении долго долго с Int
int reverse(int x) {
long long res;
......
if(x>0&&res>INT_MAX||x<0&&res>INT_MAX+1){
return 0;
}
......
}
Это показывает переполнение, но когда я добавить преобразование к этому он соответствует
int reverse(int x) {
long long res;
......
if(x>0&&res>(unsigned long long)INT_MAX||x<0&&res>(unsigned long long)INT_MAX+1){
return 0;
}
......
}
Может кто-нибудь, пожалуйста, объясните для меня в чем проблема?
Просьбы предоставить полный образец и ввод/ожидаемый выход/фактический вывод, который демонстрирует вашу проблему. Также понимайте, что ответы C и C++ могут легко отличаться. – chris
По определению, 'INT_MAX' является наибольшим представимым' int'. Как добавить одно к нему * не * переполнение? –