我尝试编写一个反转用户输入数字的程序。最大无符号整数的反向数字
用户输入范围是从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.
我已经使用%lu将其更改为unsigned long int,printf但仍输出1632727628.为什么?
发生整数溢出 – thumbmunkeys
只需将int转换为char数组并从头开始打印即可。 – someuser
但我把它改为unsigned long int,它仍然输出相同的答案。为什么? – user2301281