16진수는 어디에 쓰일까

웹을 다루다 보면 #ff8800 같은 색, 개발 도구에서 0x7fff 같은 주소, 문서에서 U+AC00 같은 글자 코드를 마주칩니다. 전부 16진수예요. 컴퓨터는 2진수로 도는데 왜 화면엔 자꾸 16진수가 보일까요? 답부터 말하면, 16진수는 2진수를 사람이 읽기 좋게 줄인 속기이기 때문입니다.

최종 업데이트: 2026년 7월

1. 왜 하필 16진수일까

컴퓨터 속 값은 2진수지만, 2진수는 자릿수가 너무 깁니다. 11111101처럼 여덟 자리씩 늘어지면 사람이 읽다가 실수하기 쉽죠. 그런데 여기 딱 맞는 규칙이 있습니다. 2진수 네 자리는 정확히 16진수 한 자리와 같습니다.

2진수 네 자리로 표현할 수 있는 경우의 수는 16가지(0000~1111, 즉 0~15). 16진수는 한 자리로 0~15를 표현하니, 둘이 완벽하게 짝지어집니다. 그래서 긴 2진수를 네 자리씩 끊어 한 글자로 바꾸면 훨씬 짧아져요.

2진수(4비트)16진수2진수(4비트)16진수
0000010008
0001110019
001021010A
001131011B
010041100C
010151101D
011061110E
011171111F

예를 들어 1111110111111101로 끊어 각각 F와 D, 즉 FD가 됩니다. 여덟 자리가 두 자리로 줄었죠.

2. 16진수 읽는 법 (A~F)

10진수는 0~9까지 열 개뿐인데, 16진수는 한 자리에 열여섯 가지를 담아야 합니다. 그래서 10부터 15까지를 알파벳 A~F로 적어요.

16진수ABCDEF
10진수101112131415

자릿값은 16배씩 커집니다. 두 자리 16진수 FD라면 F(15)가 16의 자리, D(13)가 1의 자리이니 15 × 16 + 13 × 1 = 253. 앞 글에서 본 그 253이 맞습니다. 대소문자는 구분하지 않아서 ffFF는 같은 값이에요.

3. 색상 코드: #ff8800의 정체

웹에서 색은 빨강(R)·초록(G)·파랑(B)의 밝기를 각각 0~255로 섞어 만듭니다. 이 세 값을 16진수 두 자리씩 이어 붙인 게 #RRGGBB 표기예요.

부분16진수10진수(밝기)의미
빨강 RRFF255가장 밝게
초록 GG88136중간쯤
파랑 BB000없음

그래서 #ff8800은 "빨강 가득 + 초록 중간 + 파랑 없음", 즉 진한 주황색입니다. 각 색을 0~255로 나눠 담으니 2진수 8비트 세 묶음(24비트)이고, 이걸 16진수로 적으면 딱 여섯 자리로 떨어집니다. #fff처럼 세 자리로 쓰기도 하는데, 이건 각 자리를 두 번 반복한 #ffffff(흰색)의 줄임 표기예요.

디자인 시안의 #ff8800을 코드에서 RGB 값 rgb(255, 136, 0)으로 바꿔야 할 때, 진법 변환기ff·88·00을 각각 넣으면 10진수 값이 바로 나옵니다.

4. 메모리 주소와 0x

프로그램이 오류를 낼 때 0x7ffee3b4 같은 값을 본 적 있을 겁니다. 앞의 0x는 "이건 16진수다"라는 표시이고, 뒤가 실제 값이에요. 메모리 주소를 16진수로 적는 이유도 앞과 같습니다. 주소는 결국 2진수인데 너무 길어서, 네 자리씩 묶어 16진수로 짧게 나타내는 거죠.

덤으로 16진수는 바이트 경계가 눈에 잘 보입니다. 16진수 두 자리가 정확히 1바이트(8비트)라서, 7f ff e3 b4처럼 두 글자씩 끊으면 바이트 단위가 그대로 드러납니다. 2진수·8진수 접두어도 있는데, 0b는 2진수, 0o는 8진수를 뜻합니다.

5. 유니코드: U+AC00

세상의 모든 글자에 번호를 매긴 표준이 유니코드입니다. 이 번호도 16진수로 적고, 앞에 U+를 붙여요. 예를 들어 한글 '가'는 U+AC00입니다.

AC00을 10진수로 바꾸면 44032예요. 즉 '가'는 유니코드에서 44032번째 자리에 있는 글자라는 뜻입니다. 이모지나 특수문자가 깨져 보일 때 "이 글자의 코드가 뭐지?"를 확인하려면 이 16진수 번호를 찾아보게 됩니다.

정리하면 16진수는 색·주소·글자 코드처럼 바탕이 2진수인 값을 사람이 다루는 곳마다 등장합니다. 2진수의 정확함과 사람의 읽기 편함, 둘 사이의 타협점인 셈이에요.

16진수 색 코드나 0x 값을 넣어 보세요. 10진수·2진수로 바로 펼쳐집니다.

진법 변환기 열기

6. 자주 묻는 질문

#ff8800에서 왜 여섯 자리인가요?

빨강·초록·파랑 세 가지 색을 각각 0~255로 표현하는데, 0~255는 16진수 두 자리로 딱 떨어집니다. 두 자리씩 세 색이니 여섯 자리가 됩니다. 각 자리가 같은 색은 #fff처럼 세 자리로 줄여 쓸 수 있습니다.

0x는 값의 일부인가요?

아니요. 0x는 "뒤에 오는 값이 16진수"라는 것을 알려 주는 표시일 뿐, 실제 숫자는 아닙니다. 마찬가지로 0b는 2진수, 0o는 8진수를 뜻합니다. 진법 변환기에 붙여넣으면 이 접두어를 자동으로 알아봅니다.

16진수 A~F는 대문자여야 하나요?

대소문자 아무거나 됩니다. ffFF는 같은 값이에요. 다만 색상 코드나 문서에서는 한 가지로 통일해 적는 편이 보기 좋습니다.