16진수 (Hexadecimal)
선수학습(1개)
요약
16진수(0x) 표기법, 10진수·2진수 변환, 비트 연산 활용까지. 정보처리기사 실기에 출제되는 0xA5, 0xDB 같은 16진수 값을 단계별로 이해합니다.
16진수 핵심 정리
아래에서 하나씩 배울 내용을 미리 정리한 표입니다.
| 개념 | 설명 | 예시 |
|---|---|---|
| 16진수 숫자 | 0 ~ 9, A(10) ~ F(15) 총 16개 사용 | 0xA5 |
| 0x 접두사 | 코드에서 16진수임을 표시 | int a = 0xFF; |
| 16진수 1자리 = 4비트 | 2진수 4자리를 1자리로 축약 | A = 1010 |
| 10진수 변환 | 각 자리 × 자릿값(16의 거듭제곱)을 합산 | A5 = 10×16 + 5 = 165 |
| 비트 연산 활용 | 비트 AND, OR 등에서 마스크 값으로 사용 | 0xDB & 0xA5 |
16진수를 이해하려면 2진수(이진수) 개념이 필요합니다. 2진수를 아직 모르셔도 괜찮지만, 먼저 읽고 오시면 더 쉽게 이해할 수 있습니다.
16진수란? 쌩기초
16진수(Hexadecimal) 는 0부터 9와 A부터 F까지 16개의 숫자를 사용하는 숫자 체계입니다.
| 진법 | 사용하는 숫자 | 예시 |
|---|---|---|
| 2진수 | 0, 1 | 1010 0101 |
| 10진수 | 0 ~ 9 | 165 |
| 16진수 | 0 ~ 9, A ~ F | A5 |

왜 16진수를 사용할까?
16진수는 이진수를 간결하게 표현할 수 있습니다. 16진수 1자리 = 2진수 4자리(4비트) 1 이기 때문입니다.
| 16진수 | 2진수 | 10진수 |
|---|---|---|
| A | 1010 | 10 |
| 5 | 0101 | 5 |
| A5 | 1010 0101 | 165 |
8비트(1바이트)를 표현할 때, 2진수로는 8자리가 필요하지만 16진수로는 2자리면 충분합니다.
프로그래밍에서 16진수 표기 기초
C, Java, Python 모두 16진수는 0x 또는 0X 접두사를 붙여 표기합니다.
16진수 → 10진수 변환 기초
16진수의 각 자리는 오른쪽부터 자릿값이 16배씩 커집니다. 10진수에서 일의 자리, 십의 자리, 백의 자리가 10배씩 커지는 것과 같은 원리입니다.
- 오른쪽 첫째 자리: 1 (16의 0제곱)
- 오른쪽 둘째 자리: 16 (16의 1제곱)
- 오른쪽 셋째 자리: 256 (16의 2제곱)

실기 출제 값
| 16진수 | 계산 | 10진수 |
|---|---|---|
| 0xA0 | 10×16 + 0×1 | 160 |
| 0xA5 | 10×16 + 5×1 | 165 |
| 0xDB | 13×16 + 11×1 | 219 |
| 0xED | 14×16 + 13×1 | 237 |
| 0x81 | 8×16 + 1×1 | 129 |
| 0xFF | 15×16 + 15×1 | 255 |
Java에서 16진수 변환하기
Java는 16진수 변환을 위한 내장 메서드를 제공합니다.
10진수 → 16진수
Integer.toHexString()은 10진수를 16진수 문자열로 변환합니다. 결과는 소문자로 출력됩니다.
16진수 → 10진수
Integer.parseInt()에 두 번째 인자로 진법(16)을 지정하면 16진수 문자열을 10진수로 변환합니다. 대소문자를 구분하지 않습니다.
| 메서드 | 기능 | 예시 |
|---|---|---|
Integer.toHexString(n) | 10진수 → 16진수 문자열 | Integer.toHexString(165) → "a5" |
Integer.parseInt(s, 16) | 16진수 문자열 → 10진수 | Integer.parseInt("A5", 16) → 165 |
비트 연산에서 16진수 활용 심화
실기 시험에서 16진수는 비트 AND 연산과 함께 출제된 바 있습니다.
계산 과정
1단계: 16진수 → 10진수 변환
2단계: 10진수 → 2진수 변환
2로 나누기 방법을 사용합니다.
3단계: 비트 AND 연산
둘 다 1인 자리만 1이 됩니다. 비트 AND 연산에 대해 더 자세히 알고 싶다면 해당 페이지를 참고하세요.
4단계: 2진수 → 10진수 변환
맨 왼쪽 1은 2의 7제곱(128), 맨 오른쪽 1은 2의 0제곱(1)입니다. 나머지 자리는 모두 0이므로 더하면 129가 됩니다.
정보처리기사 실기 대비 문제
Footnotes
-
비트(bit)는 0 또는 1 하나를 담는 컴퓨터의 최소 정보 단위입니다. 4비트는 0000부터 1111까지 16가지 조합이 가능하여 16진수 1자리와 정확히 대응합니다. ↩