12번째 10진수 정수(양수) - %u

C언어 기초 2015. 4. 16. 09:00 Posted by 네트동자

01: #include <stdio.h>

02: int main(void)

03: {

04: printf("%d \n", 2147483647);   //2147483647

05: printf("%d \n", 2147483650);  //-2147483646

06: printf("%u \n", 4294967295);   //2147483647의 약 2배

07:

08: return 0;

09: }



서식문자 %u를 사용하면 

%d로 출력할 수 있는 양수의 범위보다

2배 더 넓게 출력할 수 있다.


위의 예제는 서식문자 %d와 %u의 차이를 잘 설명하고 있는 코딩이다.


04행은 서식문자 %d로 표현할 수 있는 최대값 2147483647을 출력했다.

05행은 서식문자 %d가 출력할 수 있는 최대값을 넘어서는 수치가 기입되었기에 이상한 음수값이 출력되었다.


06행은 서식문자 %d로 표현할 수 있는 최대값 2147483647보다 큰 값을 출력하기 위해서

          서식문자 %u를 사용하고 있다.

          서식문자 %u로 표현할 수 있는 최대값은 4294967295 이다. 

          이 값은 %d로 출력할 수 있는 최대값의 약 2배이다.


그럼에도 불구하고, %u 역시 표현할 수 있는 최대값보다 큰 값을 대입하면, 서식문자 %d와 마찬가지로 이상한 값이 출력된다.