정수 1개를 입력받아 그대로 출력해보자.
(단, 입력되는 정수의 범위는 0 ~ 4,294,967,295이다.)
값의 표현 범위가 int형이 표현할 수 있는 범위를 넘어섰기 때문에, long long int나
unsigned int(0 이상~ 40억 이하 정도는 표현 가능)를 사용하여 풀어준다.
#include<stdio.h>
int main(void)
{
long long int A;
scanf("%lld", &A);
printf("%lld", A);
return 0;
}
unsigned int는 % u의 서식 문자를 사용한다.
#include<stdio.h>
int main(void)
{
unsigned int A;
scanf("%u", &A);
printf("%u", A);
return 0;
}
<참고>
unsigned 형들의 값의 표현 범위는 음수부터가 아닌 0 이상 특정값 이하이다. 이것은 int만이 아니라 char, short, long형등의 자료형들도 앞에 unsigned가 붙었을 때 원래 음수 값의 표현 범위가 양수로 넘어와 더해져 그만큼 양수에서의 값의 표현 범위가 증가한다는 것이다.
ex) int 형의 값의 표현 범위가 -2,147,483,648 이상 +2,147,483,647 이하인데
unsigned int형의 값의 표현 범위는 0 이상 (2,147,483,648 + 2,147,483,647) 이하이다.