누구나 쉽게 배우는 진수 - 5장. 16진수(Hexadecimal) 이해하기

2025. 3. 28. 16:51소프트웨어/기초

 

📘 5장. 16진수(Hexadecimal) 이해하기


📌 16진수란?

16진수(Hexadecimal)기수(Base)가 16인 숫자 체계로,
숫자 0부터 9, 그리고 알파벳 A부터 F까지 총 16개의 기호를 사용합니다.

구분 내용
기수(Base) 16
사용 기호 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

 

문자 문자 문자
A 10 B 11 C 12
D 13 E 14 F 15

➡️ 컴퓨터에서 2진수를 간결하게 표현할 수 있기 때문에,
메모리 주소, 디버깅, 색상 코드 등에서 자주 사용됩니다.


🔁 진수 변환 방법


✅ 1) 10진수 → 16진수

방법: 16으로 나누고 나머지를 역순으로 읽습니다.

예: 10진수 254 → 16진수

단계 나눗셈 나머지 기호
254 ÷ 16 15 14 E
15 ÷ 16 0 15 F

결과: FE₁₆


✅ 2) 16진수 → 10진수

방법: 각 자릿값 × 16의 거듭제곱을 더합니다.

예: FE₁₆ → 10진수

(15 × 16^1) + (14 × 16^0) = 240 + 14 = 254


✅ 3) 2진수 ↔ 16진수 (4비트 단위)

2진수 4자리 = 16진수 1자리
(2⁴ = 16이므로 완벽하게 대응됨)

2진수 16진수 2진수 16진수
0000 0 1000 8
0001 1 1001 9
0010 2 1010 A
0011 3 1011 B
0100 4 1100 C
0101 5 1101 D
0110 6 1110 E
0111 7 1111 F

🔄 변환 예시

🔹 2진수 → 16진수

예: 11011110₂ → ?

→ 4비트씩 나누기: 1101 1110
→ 각각 D, E
결과: DE₁₆


🔹 16진수 → 2진수

예: 3C₁₆ → ?

→ 3 = 0011, C = 1100
결과: 00111100₂


🧑‍💻 프로그래밍에서의 표기법

언어 예시 설명
Python 0xFF 0x 접두사 사용
JavaScript 0x1A3F ES6 이상 지원
C/C++ 0xAB 표준 표기법

✅ 대부분의 언어에서 16진수는 0x 접두사로 구분합니다.


🎨 실생활 활용 예시


✅ 1) 웹 색상 코드 (HTML/CSS)

<!-- 빨간색 (#FF0000) 배경 -->
<div style="background-color: #FF0000; color: white; padding: 5px;">
  빨간색 (#FF0000)
</div>
  • #FF0000 = 빨강(255), 초록(0), 파랑(0)
  • RGB 색상 구성: #RRGGBB → 16진수로 각 색 표현

✅ 2) 메모리 주소

  • 예: 0x7ffeefbff5c0
  • 메모리 주소, 포인터, 디버깅 환경에서 메모리 위치를 16진수로 표현

✅ 3) 디버깅 및 네트워크 분석

  • 바이너리 데이터, 패킷 정보, 시스템 로그 등을 16진수로 표시
  • 예: 파일 헤더 0x89 0x50 0x4E 0x47 → PNG 파일

📝 연습문제

Q1. 10진수 255를 16진수로 변환하세요.
Q2. 16진수 1A를 10진수로 바꾸세요.
Q3. 2진수 10101111을 16진수로 바꾸세요.


✅ 정답

  • Q1: 255 ÷ 16 = 15 (나머지 15) → FF₁₆
  • Q2: (1 × 16^1) + (10 × 16^0) = 16 + 10 = 26
  • Q3:
    1010 1111 → A F → AF₁₆

✒️ 보너스 개념


🔹 1) 16진수 소수점 표현

예: A.F₁₆

= 10 + (15 × 16^-1) = 10 + 0.9375 = 10.9375


🔹 2) 16진수 음수 표현 (2의 보수법)

  • 컴퓨터 내부에서는 2의 보수 방식으로 음수를 저장
  • 예: -1 (1바이트)
표현 방식
10진수 -1
2진수 11111111
16진수 FF₁₆

🔹 3) 16진수 연산 예시

덧셈: A2 + 1F

A2₁₆ = 162, 1F₁₆ = 31162 + 31 = 193 → C1₁₆

뺄셈: 3C - 15

3C₁₆ = 60, 15₁₆ = 2160 - 21 = 27₁₆


📘 요약 정리

항목 설명
정의 0~9, A~F로 이루어진 기수 16의 수 체계
변환 방식 10진수 ↔ 16진수 / 2진수 ↔ 16진수 (4비트 단위)
프로그래밍 표기법 0x 접두사 사용
실생활 활용 웹 색상, 메모리 주소, 디버깅, 파일 포맷
보너스 소수점 표현, 음수 표현(2의 보수), 연산 가능