사용자 입력 번호의 역순으로 프로그램을 작성하려고합니다.최대 부호없는 정수의 역순 번호
사용자 입력 범위 여기 가 코드 편집 0 <에서 < 4294967295이다.
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를 사용하여 printf를 unsigned long int로 변경했지만 여전히 1632727628을 출력합니다. 왜?
정수 오버플로가 발생합니다. – thumbmunkeys
int를 char 배열로 변환하고 끝에서부터 시작하여 인쇄하십시오. – someuser
하지만 그것을 부호없는 long int로 변경하면 여전히 같은 대답을 출력합니다. 왜? – user2301281