%x와 진법 변환 사다리
printf("%x", 16)이 왜 10을 찍는지 손으로 계산이 안 돼서, 진법 변환을 사다리 타듯 내려가는 법으로 정리했다. ⭐ 26년 1회 실기에 %x가 실제 출제됐다.
서식지정자 = 진법 선택기
| 서식 | 어원 | 의미 | n=16 출력 | n=255 출력 |
|---|---|---|---|---|
%d | Decimal | 10진수 | 16 | 255 |
%x / %X | heXadecimal | 16진수 | 10 | ff / FF |
%o | Octal (octopus=8) | 8진수 | 20 | 377 |
값은 메모리에 그대로 있고, 서식은 읽는 방법만 바꾼다.
진법 변환 사다리 - 규칙 3개
- 몫이 0 될 때까지 “몫”을 나눈다 (나머지는 옆에 킵, 내려가는 건 몫!)
- 나머지를 아래→위로 읽는다 - 먼저 나온 나머지가 낮은 자리라서
- 10~15는 글자로: 10=a, 11=b, 12=c, 13=d, 14=e, 15=f
예) 45 → %x 예) 16 → %x
45 ÷ 16 = 2 ... 13 16 ÷ 16 = 1 ... 0
2 ÷ 16 = 0 ... 2 1 ÷ 16 = 0 ... 1
아래→위: 2, d → "2d" 아래→위: 1, 0 → "10"
검산 2가지 (긴가민가할 때 3초)
- 몫 × 나누는수 + 나머지 = 원래 수 (예: 2×16+13=45 ✓)
- 읽는 순서 헷갈리면 되돌려보기:
10₍₁₆₎ = 1×16+0 = 16 ✓/01 = 1 ✗ - 나머지는 나누는 수보다 항상 작다 (16으로 나누면 0~15만 가능) - 15보다 큰 나머지가 나왔다면 계산 실수
%e 지수 표기 = 소수점 이사 세기
- 왼쪽으로 n칸 →
e+0n/ 오른쪽으로 n칸 →e-0n 3456.7 → %.1e → 3.5e+03(왼쪽 3칸, 반올림)
답안 작성 주의
- 출력값은 공백까지 그대로:
16 10 20 %x결과의 “10”은 십이 아니라 16진 표기 - 보이는 글자 그대로 쓰기
서식 지정자 전체 표와 진법 단골 값들은 노트 C 출력 함수에 있다.