C, C++ 코딩시 printf(), scanf() 함수는 숫자 또는 문자를 표현하기 위하여 몇 가지 특수 문자를 제공한다.
매번 쓰는 것들이라 그냥 넘어가기 쉽지만, 가끔은 완전 잊어 버리게 되는 경우도 있어서 여기 정리한다.
특수 문자 |
내용 |
c |
문자 출력 |
d |
10진수 정수 출력 |
o |
8 진수 출력 |
u |
unsigned 출력 |
x |
16진수 소문자 출력 |
X |
16진수 대문자 출력 |
e |
exponential 숫자 출력, e 를 소문자로 |
E |
exponential 숫자 출력, E를 대문자로 |
f |
floating number 출력 |
s |
문자열 출력 |
위에서 몇 가지 문자들을 이용하여 -10 을 표현해 보자.
위 코드의 실행 결과는 다음과 같다.
-10을 %d 로 표현한 경우는 정상적으로 -10 이 표현되는 것을 확인 할 수 있다.
Unsigned, 8 진수, 16진수로 표현했을 경우는 어떻게 저런 결과가 나오는지 확인 해 보자.
C 코딩 시 integer 는 4바이트 즉 32 비트 숫자로 표현하며 2의 보수 체계를 이용한다.
-10을 2의 보수로 표현 할 때는 다음과 같은 과정을 거친다.
- 일단 10을 2진수로 표현하자
그럼 당연히
00000000000000000000000000001010
로 표현 될 것이다.
- 위 결과에 대해 1의 보수를 취하면
11111111111111111111111111110101
로 표현된다.
- 위 결과에 +1을 한다.
111111111111111111111111111110110
그럼 위와 같은 값이 된다. 위 결과가 바로 -10을 2의 보수로 표현한 결과이다.
111111111111111111111111111110110 을 그대로 숫자로 표현하면 unsigned 값인 4294967286 이 되는 것이며
111111111111111111111111111110110 뒤에서부터 3개씩 끊어서 8진수로 표현하면 37777777766 이 되고
111111111111111111111111111110110 뒤에서부터 4개씩 끊어서 16진수로 표현하면 fffffff6 이 된다.
'컴퓨터일반' 카테고리의 다른 글
Gvim ctags 이용하기 (0) | 2011.12.03 |
---|---|
갤럭시 탭에서 교보 eBook 사용하기 (0) | 2011.11.20 |
토렌트 RSS 다운로드 (0) | 2011.11.01 |
C 언어 이차원 동적 배열 (0) | 2011.10.05 |
윈도우 제어판 확장 파일 (0) | 2011.09.16 |
네이버 가계부 업데이트-사용처/사용내역 자동 분류 (0) | 2011.05.26 |
MS word 자동 고침 (0) | 2011.05.05 |
NexusFile 을 이용한 파일 이름 일괄 변경 (2) | 2011.03.26 |
댓글