Я пытаюсь написать программу для обратного ввода номера пользователя.обратный номер для max unsigned int
Диапазон ввода пользователя от 0 < < 4294967295, здесь EDITED код.
unsigned long int reverseNumber(unsigned long int num)
{
unsigned long int rev = 0;
while (num > 0)
{
rev = rev *10 + (num%10);
num = num/10;
}
return rev;
}
Проблема заключается в том, когда я вход 4294967295, он будет выводить 1632727628. Почему? Я понятия не имею, почему это произошло. Как можно отменить 4294967295.
Я изменил его на unsigned long int, printf, используя% lu, но все же вывод 1632727628. Почему?
происходит переполнение целого числа – thumbmunkeys
Просто преобразуйте int в массив символов и распечатайте его с конца, чтобы начать. – someuser
Но я меняю его на unsigned long int, он все равно выводит один и тот же ответ. Зачем? – user2301281