도구상자FREE ONLINE TOOLS
← 가이드 목록

2진수·16진수 변환법 — 진법의 원리부터

컴퓨터 수업의 2진수, 색상 코드의 #FF6600, 개발 문서의 0x1A — 모두 진법 이야기입니다. 원리는 하나뿐입니다: 한 자리가 몇 가지 숫자를 쓸 수 있는가. 자릿값 개념만 잡으면 어떤 진법이든 손으로 바꿀 수 있습니다.

진법이란 — 자릿값의 원리

우리가 쓰는 10진수는 한 자리에 0~9 열 가지 숫자를 쓰고, 자리가 하나 올라갈 때마다 값이 10배가 됩니다(1, 10, 100…). 진법은 이 "배수"를 바꾼 것뿐입니다.

  • 2진수: 숫자 0·1만 사용, 자릿값은 1, 2, 4, 8, 16…
  • 16진수: 숫자 0~9에 A(10)~F(15)까지 사용, 자릿값은 1, 16, 256…

컴퓨터가 2진수를 쓰는 이유는 전기 신호의 켜짐/꺼짐 두 상태로 모든 것을 표현하기 때문입니다. 이 한 자리가 비트(bit), 8개 묶음이 바이트(byte)입니다.

2진수 → 10진수: 자릿값 곱해 더하기

각 자리에 자릿값을 곱해 더하면 끝입니다. 2진수 1101을 바꿔 보면:

자리1101
자릿값8421
계산8401

8 + 4 + 0 + 1 = 13. 즉 2진수 1101 = 10진수 13입니다.

10진수 → 2진수: 2로 나누기

반대 방향은 2로 계속 나누며 나머지를 기록합니다. 13을 바꿔 보면:

  • 13 ÷ 2 = 6 … 나머지 1
  • 6 ÷ 2 = 3 … 나머지 0
  • 3 ÷ 2 = 1 … 나머지 1
  • 1 ÷ 2 = 0 … 나머지 1

나머지를 아래에서 위로 읽으면 1101. 검산은 위의 자릿값 덧셈으로 하면 됩니다.

진법 변환2·8·10·16진수를 즉시 양방향 변환 변환하기 →

16진수 — 색상 코드에 쓰이는 이유

16진수 한 자리는 정확히 2진수 4자리(4비트)와 대응합니다. 그래서 길고 읽기 힘든 2진수를 짧게 줄이는 용도로 컴퓨터 분야 전반에 쓰입니다.

  • 2진수 1111 1111 = 16진수 FF = 10진수 255
  • 코드에서는 0x를 앞에 붙여 16진수임을 표시합니다(예: 0x1A = 26).

대표적인 예가 색상 코드입니다. 빨강·초록·파랑 값은 각각 0~255(1바이트)인데 16진수로는 두 자리(00~FF)면 충분해서, #FF6600 여섯 자리로 색 하나(빨강 255, 초록 102, 파랑 0 — 주황색)가 완성됩니다.

자주 묻는 질문
Q. 2진수를 10진수로 어떻게 바꾸나요?

각 자리에 자릿값(오른쪽부터 1, 2, 4, 8, 16…)을 곱해 더합니다. 예를 들어 2진수 1101은 1×8 + 1×4 + 0×2 + 1×1 = 13입니다. 반대로 10진수를 2진수로 바꿀 때는 2로 계속 나누면서 나머지를 기록한 뒤 아래에서 위로 읽으면 됩니다.

Q. 컴퓨터는 왜 2진수를 쓰나요?

전기 신호의 켜짐(1)과 꺼짐(0) 두 상태로 모든 정보를 표현하는 것이 가장 안정적이기 때문입니다. 이 한 자리를 비트(bit)라고 하고, 8비트를 묶어 1바이트라고 부릅니다. 1바이트로는 2의 8제곱, 즉 256가지 값(0~255)을 표현할 수 있습니다.

Q. 색상 코드에는 왜 16진수를 쓰나요?

16진수 한 자리가 정확히 2진수 4자리(4비트)에 대응해서, 길고 읽기 힘든 2진수를 짧고 깔끔하게 줄여 주기 때문입니다. 색상의 빨강·초록·파랑 값은 각각 0~255(1바이트)인데, 16진수로는 딱 두 자리(00~FF)로 표현됩니다. 그래서 #FF6600처럼 여섯 자리면 색 하나가 완성됩니다.

함께 보면 좋은 가이드