16진수 ↔ 10진수 변환기
16진수를 10진수로, 10진수를 16진수로 변환합니다. 16진수 색상 코드도 지원합니다. 무료 수학 계산기로 즉각적인 결과를 얻으세요. 회원가입 불필요.
16진수 체계 이해하기
16진수(Hexadecimal, Hex)는 16개의 기호를 사용하는 16진법 수 체계입니다: 숫자 0~9와 문자 A~F(A=10, B=11, C=12, D=13, E=14, F=15). 16진수는 4개의 이진수(비트)가 정확히 하나의 16진수 자리에 대응하기 때문에, 이진 데이터를 사람이 읽기 쉬운 형태로 표현하는 방법으로 컴퓨터 분야에서 널리 사용됩니다.
16진수에서 각 자리는 16의 거듭제곱을 나타냅니다:
| 자리 | 16³ | 16² | 16¹ | 16⁰ |
|---|---|---|---|---|
| 값 | 4,096 | 256 | 16 | 1 |
16진수 → 10진수 변환: 각 16진수 자리를 해당 자릿값(16의 거듭제곱)에 곱하고 합산합니다.
예시: 2F4A₁₆ = 2×4096 + F(15)×256 + 4×16 + A(10)×1 = 8,192 + 3,840 + 64 + 10 = 12,106
16진수는 프로그래밍에서 보통 0x 접두사를 붙이거나(예: 0x2F4A), 어셈블리 언어에서는 h 접미사를 사용합니다(예: 2F4Ah).
10진수를 16진수로 변환하기
10진수에서 16진수로의 변환은 2진수 변환과 동일한 반복 나눗셈 방법을 사용하되, 2 대신 16으로 나눕니다.
방법: 16으로 반복 나눗셈을 하면서 각 단계의 나머지를 기록합니다. 나머지 10~15는 A~F로 표기합니다. 나머지를 아래에서 위로 읽습니다.
예시: 1,500을 16진수로 변환
- 1500 ÷ 16 = 93, 나머지 12 → C
- 93 ÷ 16 = 5, 나머지 13 → D
- 5 ÷ 16 = 0, 나머지 5 → 5
아래에서 위로 읽기: 5DC₁₆
검증: 5×256 + D(13)×16 + C(12)×1 = 1,280 + 208 + 12 = 1,500 ✓
예시: 255를 16진수로 변환 (1바이트의 최댓값)
- 255 ÷ 16 = 15, 나머지 15 → F
- 15 ÷ 16 = 0, 나머지 15 → F
결과: FF₁₆ — 이것이 코드에서 255가 0xFF로 표현되는 이유이며, CSS에서 흰색을 나타내는 #FFFFFF는 세 채널 모두 최댓값(255, 255, 255)을 사용합니다.
빠른 암산 변환 팁: 256 미만의 수의 경우, 16의 최대 배수(첫 번째 16진수 자리)와 나머지(두 번째 자리)로 분리합니다. 180 = 11×16 + 4 = B4₁₆. 200 = 12×16 + 8 = C8₁₆.
16진수 색상 코드: 웹 및 디자인 활용
16진수의 가장 일반적인 일상적 사용 중 하나는 CSS와 웹 색상 코드입니다. 색상은 #RRGGBB 형식으로 지정되며, RR, GG, BB는 각각 빨강, 초록, 파랑 채널의 두 자리 16진수 값(00~FF)입니다.
| 16진수 색상 | R (10진수) | G (10진수) | B (10진수) | 색상 설명 |
|---|---|---|---|---|
| #000000 | 0 | 0 | 0 | 검정 (모든 채널 최솟값) |
| #FFFFFF | 255 | 255 | 255 | 흰색 (모든 채널 최댓값) |
| #FF0000 | 255 | 0 | 0 | 순수 빨강 |
| #00FF00 | 0 | 255 | 0 | 순수 초록 (라임) |
| #0000FF | 0 | 0 | 255 | 순수 파랑 |
| #FF5733 | 255 | 87 | 51 | 선명한 주황-빨강 |
| #4A90D9 | 74 | 144 | 217 | 중간 하늘색 |
| #808080 | 128 | 128 | 128 | 중간 회색 (각 채널의 50%) |
각 채널(00~FF)은 256단계 × 3채널 = 16,777,216가지 색상(약 1,677만 색)을 제공합니다. 축약형 #RGB 표기법(예: #F5A)은 각 자리를 동일한 두 자리로 확장합니다: #FF55AA — 한 쌍의 두 16진수 자리가 동일할 때 CSS에서 사용됩니다.
현대 CSS는 투명도(알파 채널)가 있는 색상을 위해 #RRGGBBAA(8자리 16진수)도 지원하며, AA는 00(완전 투명)에서 FF(완전 불투명)까지의 불투명도를 정의합니다.
프로그래밍과 컴퓨팅에서의 16진수
16진수는 프로그래밍, 하드웨어 문서, 컴퓨터 과학 전반에 걸쳐 등장합니다:
메모리 주소: RAM과 프로세서 주소는 16진수로 표현됩니다. 64비트 메모리 주소는 0x7FFE0B4C3A20과 같은 형태입니다. 16진수는 기저 이진수를 압축하여 표현하며, 2개의 16진수 자리 = 정확히 1바이트이므로 주소 계산이 직관적입니다.
머신 코드 및 역어셈블리: CPU 명령어는 16진수 바이트로 인코딩됩니다. x86 명령어 MOV EAX, 0x42는 16진수 바이트 B8 42 00 00 00으로 컴파일됩니다.
ASCII 문자 인코딩: ASCII는 문자를 0~127 숫자에 매핑합니다. 16진수로: 'A' = 0x41, 'a' = 0x61, 공백 = 0x20, '0' = 0x30. 대문자는 0x41에서 시작하고 소문자는 0x61에서 시작하므로(차이 = 0x20 = 32), 문자를 0x20으로 XOR하면 대소문자가 전환됩니다.
IPv6 주소: 128비트 IPv6 주소는 4자리 16진수 8그룹으로 표기됩니다: 2001:0DB8:AC10:FE01:0000:0000:0000:0001.
오류 코드: Windows 블루 스크린 코드는 16진수입니다: 0x0000007E, 0xC0000005. UNIX errno 코드, 패킷 내 HTTP 상태 코드, BIOS POST 코드 등이 모두 16진수를 사용합니다.
2진수, 8진수, 10진수, 16진수: 완전 변환 참조표
컴퓨팅에서 사용되는 네 가지 수 체계와 상호 관계:
| 10진수 | 2진수 | 8진수 | 16진수 |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 4 | 0100 | 4 | 4 |
| 8 | 1000 | 10 | 8 |
| 10 | 1010 | 12 | A |
| 15 | 1111 | 17 | F |
| 16 | 0001 0000 | 20 | 10 |
| 32 | 0010 0000 | 40 | 20 |
| 64 | 0100 0000 | 100 | 40 |
| 128 | 1000 0000 | 200 | 80 |
| 255 | 1111 1111 | 377 | FF |
| 256 | 0001 0000 0000 | 400 | 100 |
| 1,024 | 0100 0000 0000 | 2,000 | 400 |
| 65,535 | 1111 1111 1111 1111 | 177,777 | FFFF |
빠른 변환 단축키:
- 2진수 ↔ 16진수: 이진수를 오른쪽부터 4자리씩 묶어 각 그룹을 하나의 16진수 자리로 변환. 나눗셈 불필요. 1010 1100 1111₂ = A, C, F = ACF₁₆
- 2진수 ↔ 8진수: 이진수를 오른쪽부터 3자리씩 묶어 각 그룹을 변환. 001 010 011₂ = 1, 2, 3 = 123₈
- 16진수 ↔ 8진수: 이진수를 중간 단계로 사용하여 변환
실용적인 16진수 계산 및 팁
실제로 16진수를 다룰 때 유용한 몇 가지 기법:
16진수 덧셈: 열별로 더하고 합이 16에 달하면 올림수를 처리합니다. 예시: 3A + 2F:
- 단위 자리: A(10) + F(15) = 25 10진수 = 19₁₆ → 9를 쓰고 1 올림
- 16의 자리: 3 + 2 + 1(올림) = 6
- 결과: 69₁₆ = 105 10진수. 검증: 58 + 47 = 105 ✓
URL 및 인코딩에서의 16진수: URL은 퍼센트 인코딩으로 특수 문자를 인코딩합니다: 공백은 %20(0x20 = 32 = ASCII의 공백)이 됩니다. @ 기호는 %40(0x40 = 64). ASCII 16진수 코드를 알면 인코딩된 URL을 해독하는 데 도움이 됩니다.
해시 함수는 16진수 출력: MD5는 128비트(32자리 16진수) 출력을 생성합니다. SHA-256은 256비트(64자리 16진수) 출력을 생성합니다. 이는 파일 다운로드를 체크섬으로 검증할 때 볼 수 있는 형태입니다.
자주 묻는 질문
16진수를 10진수로 어떻게 변환하나요?
각 16진수 자리에 자릿값(오른쪽부터 0번 자리 기준 16의 거듭제곱)을 곱하고 합산합니다. 예시: 1A3₁₆ = 1×256 + A(10)×16 + 3×1 = 256 + 160 + 3 = 419. 저희 계산기는 입력한 16진수 값에 대해 즉시 계산합니다.
10진수를 16진수로 어떻게 변환하나요?
16으로 반복 나눗셈을 하면서 각 단계의 나머지를 기록합니다. 나머지 10~15는 A~F로 표기합니다. 나머지를 마지막부터 처음 순서로 읽습니다. 예시: 255 ÷ 16 = 15, 나머지 15(F); 15 ÷ 16 = 0, 나머지 15(F) → 255 10진수 = FF 16진수.
16진수는 어디에 사용되나요?
16진수는 컴퓨팅 전반에 사용됩니다: 메모리 주소(0x7FF0E2A0), 웹 색상 코드(#FF5733), 머신 코드 및 이진 데이터, IPv6 네트워크 주소, 암호화 해시 출력(MD5, SHA-256), ASCII 문자 인코딩, Unix 파일 권한, BIOS 오류 코드 등.
16진수는 왜 A부터 F까지의 문자를 사용하나요?
16진수는 16진법으로, 16개의 고유한 기호가 필요합니다. 숫자 0~9가 처음 10개의 값을 담당하고, A~F 문자가 각각 10~15를 나타냅니다. 이 관습은 1960년대 컴퓨팅에서 표준화되었습니다.
0xFF는 10진수로 얼마인가요?
0xFF = F×16 + F×1 = 15×16 + 15 = 240 + 15 = 255. 이것은 8비트 바이트(부호 없음)의 최댓값입니다. 비트마스크, 최대 색상 채널 값(RGB는 채널당 0x00~0xFF 사용), 8비트 최댓값이 필요한 모든 곳에서 자주 나타납니다.
16진수 색상 코드를 어떻게 읽나요?
#4A90D9 같은 16진수 색상 코드는 세 쌍으로 분리됩니다: 4A(빨강), 90(초록), D9(파랑). 각각을 10진수로 변환: 4A = 4×16+10 = 74; 90 = 9×16+0 = 144; D9 = 13×16+9 = 217. 따라서 #4A90D9 = rgb(74, 144, 217) — 중간 하늘색. 값이 높을수록(FF/255에 가까울수록) 해당 색상 성분이 더 많이 포함됩니다.
0x 접두사와 # 접두사의 차이는 무엇인가요?
둘 다 16진수를 나타내지만 다른 맥락에서 사용됩니다. 0x(예: 0xFF, 0x1A3)는 프로그래밍 언어(C, C++, Java, Python, JavaScript 등)의 표준 접두사입니다. #는 웹/CSS 색상에만 사용됩니다(#FF5733). 어셈블리 언어에서는 h 접미사, 구형 시스템에서는 $ 접두사를 사용하기도 합니다.
2진수와 16진수를 빠르게 상호 변환하는 방법은?
이진수를 오른쪽부터 4비트씩 묶고, 각 그룹을 하나의 16진수 자리로 변환합니다. 4비트 = 정확히 하나의 16진수 자리이므로 산술 계산이 필요 없습니다. 예시: 이진수 1011 0100 1100₂ → 그룹: 1011|0100|1100 → B|4|C → B4C₁₆. 역방향도 동일합니다: 각 16진수 자리는 정확히 4개의 이진 자리로 확장됩니다.