생활계산기

진법 변환 계산기 — 2진수·8진수·10진수·16진수

수정2026-08-14
근거위치 기수법 — 각 자리의 값 × 밑^자릿수
작성운영자

직접 확인 · 2026-08 같은 값을 네 가지 진법으로 표기해 자릿수와 가독성 차이를 비교

계산 값을 바꾸면 결과가 바로 바뀝니다
2진수 -
8진수 -
10진수 -
16진수 -

정수만 변환합니다. 16진수는 A~F를 대소문자 구분 없이 인식합니다.

우리가 쓰는 숫자는 10진법입니다. 컴퓨터는 2진법을 쓰고, 사람이 읽기 쉽게 16진법으로 표기하는 경우가 많습니다.

결론부터

  • 진법은 몇 개의 숫자로 세는가를 뜻합니다
  • 10진법은 0~9, 2진법은 0~1, 16진법은 0~9와 A~F를 씁니다
  • 같은 값이어도 진법에 따라 표기가 달라집니다

같은 값, 다른 표기

10진수 2진수 8진수 16진수
10 1010 12 A
16 10000 20 10
100 1100100 144 64
255 11111111 377 FF
1024 10000000000 2000 400

255가 16진수로 FF인 것이 자주 나옵니다. 1바이트가 표현할 수 있는 최댓값이기 때문입니다.

변환 원리

다른 진법 → 10진법 — 각 자리의 값에 밑의 거듭제곱을 곱해 더합니다.

2진수 1011을 10진수로 바꾸면 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 0 + 2 + 1 = 11입니다.

10진법 → 다른 진법 — 밑으로 계속 나누며 나머지를 아래에서 위로 읽습니다.

11을 2진수로 바꾸면 11 ÷ 2 = 5 나머지 1 5 ÷ 2 = 2 나머지 1 2 ÷ 2 = 1 나머지 0 1 ÷ 2 = 0 나머지 1 → 아래에서 위로 읽어 1011입니다.

왜 컴퓨터는 2진법인가

전기 회로는 켜짐과 꺼짐 두 상태를 구분하는 것이 가장 안정적입니다. 10단계의 전압을 구분하려면 오차에 취약해집니다.

두 상태만 쓰면 노이즈가 조금 있어도 구분이 명확합니다. 그래서 컴퓨터의 모든 데이터는 결국 0과 1로 저장됩니다.

1비트가 0 또는 1 하나, 1바이트는 8비트로 256가지 값을 표현합니다.

16진법이 쓰이는 이유

2진수는 자릿수가 너무 깁니다. 255를 표현하는 데 11111111로 여덟 자리가 필요합니다.

16진법 한 자리가 2진법 네 자리와 정확히 대응합니다. 16 = 2⁴이기 때문입니다.

16진수 2진수
0 0000
5 0101
A 1010
F 1111

그래서 2진수를 네 자리씩 끊어 16진수로 바꾸면 됩니다. 11111111 → 1111 / 1111 → FF입니다.

변환이 쉬우면서 자릿수가 짧아, 사람이 읽는 표기로 널리 쓰입니다.

어디서 보게 되나

색상 코드 — #FF0000은 빨강입니다. RGB 각각을 16진수 두 자리(0~255)로 표현한 것입니다. FF는 255, 00은 0이므로 빨강만 최대입니다.

IP 주소와 MAC 주소 — MAC 주소는 16진수로 표기합니다.

메모리 주소 — 디버깅할 때 0x로 시작하는 값이 16진수입니다.

파일 권한 — 리눅스의 chmod 755는 8진수입니다. 읽기 4, 쓰기 2, 실행 1을 더한 값을 세 자리로 표현합니다.

유니코드 — U+AC00은 한글 '가'의 코드포인트입니다.

직접 확인해 본 것

같은 값을 네 진법으로 표기해 비교했습니다.

자릿수 차이가 큽니다. 10진수 1,000,000은 2진수로 20자리, 16진수로 5자리입니다. 사람이 다루기에는 16진수가 훨씬 편합니다.

8진법은 3비트씩 대응합니다. 8 = 2³이므로 2진수를 세 자리씩 끊으면 됩니다. 과거에는 널리 쓰였지만 지금은 파일 권한 정도에 남아 있습니다.

진법이 달라도 값은 같습니다. 표기 방식이 다를 뿐 수 자체가 바뀌는 것은 아닙니다. FF와 255와 11111111은 모두 같은 수입니다.

접두어 표기

프로그래밍에서는 진법을 표시하는 접두어를 씁니다.

  • 0b — 2진수 (0b1011)
  • 0o 또는 앞의 0 — 8진수 (0o17)
  • 0x — 16진수 (0xFF)
  • 없으면 10진수

이 계산기는 접두어가 붙어 있어도 인식합니다.

2진법 연산

덧셈은 10진법과 같은 원리입니다. 1 + 1 = 10 (2가 되면 자리올림)

비트 연산이 자주 쓰입니다. AND는 둘 다 1일 때 1, OR은 하나라도 1이면 1, XOR은 다를 때 1입니다.

시프트는 자리를 옮기는 연산입니다. 왼쪽으로 한 칸 밀면 값이 두 배가 되고, 오른쪽으로 밀면 절반이 됩니다. 10진법에서 0을 붙이면 열 배가 되는 것과 같은 원리입니다.

자릿수 계산

n진법에서 k자리로 표현할 수 있는 값의 개수는 nᵏ입니다.

2진수 8자리(1바이트) — 2⁸ = 256가지, 0~255입니다. 2진수 16자리 — 65,536가지입니다. 2진수 32자리 — 약 43억 가지입니다.

이 숫자들이 프로그래밍에서 자주 보이는 이유입니다. 색상값이 0~255인 것도 1바이트로 표현하기 때문입니다.

거꾸로 어떤 값을 표현하는 데 몇 자리가 필요한지도 구할 수 있습니다. 1,000,000을 2진수로 표현하려면 2²⁰ = 1,048,576 이므로 20자리가 필요합니다.

컴퓨터 저장 단위

1바이트는 8비트이고, 그 위로는 1,024배씩 올라갑니다.

단위 크기
1 KB 1,024 바이트
1 MB 1,024 KB
1 GB 1,024 MB
1 TB 1,024 GB

1,000이 아니라 1,024인 이유는 2¹⁰ = 1,024이기 때문입니다. 2진법 체계에서 자연스러운 단위입니다.

다만 하드디스크 제조사는 1,000 단위로 표기하는 경우가 많아 "1TB 디스크를 샀는데 931GB로 보인다"는 차이가 생깁니다. 1,000⁴ ÷ 1,024⁴ = 약 0.909이므로 약 9%가 줄어 보입니다.

이를 구분하기 위해 1,024 단위를 KiB, MiB, GiB로 표기하기도 합니다.

손으로 변환해 보기

10진수 → 2진수 — 2로 계속 나누고 나머지를 아래에서 위로 읽습니다.

2진수 → 10진수 — 각 자리에 1, 2, 4, 8, 16… 을 대응시켜 1인 자리의 값을 더합니다.

10110이면 오른쪽부터 1, 2, 4, 8, 16이므로 1이 있는 자리는 2, 4, 16 → 합해서 22입니다.

2진수 ↔ 16진수 — 네 자리씩 끊어 대응시킵니다. 가장 빠른 변환이라 실무에서 자주 씁니다.

익숙해지면 1, 2, 4, 8, 16, 32, 64, 128 정도는 외워지고, 그 뒤로는 암산이 가능해집니다.

진법은 표기 방식일 뿐이라, 어느 쪽으로 적어도 값은 같습니다.

자주 묻는 질문

Q. 소수점이 있는 수도 되나요? A. 이 계산기는 정수만 다룹니다. 소수 부분은 밑을 곱해 정수 부분을 읽어 내려가는 방식으로 변환합니다.

Q. 음수는요? A. 컴퓨터에서는 2의 보수 방식으로 표현합니다. 이 계산기는 양의 정수를 기준으로 합니다.

Q. 16진수의 A는 왜 10인가요? A. 10부터 15까지를 한 자리로 나타내야 하는데 0~9로는 부족해 알파벳을 빌려 쓴 것입니다.

함께 보면 좋은 계산

경우의 수는 경우의 수 계산기에서 다룹니다. n비트가 표현할 수 있는 값의 개수가 2ⁿ입니다.

단위 환산은 단위 변환기를 쓰세요.

글자수와 바이트는 글자수 세기에서 확인할 수 있습니다.

정리

  • 진법은 몇 개의 숫자로 세는가를 뜻합니다
  • 16진수 한 자리가 2진수 네 자리에 대응합니다
  • 표기가 달라도 값 자체는 같습니다

2026년 8월 기준으로 작성했습니다.

이 계산기를 내 블로그에 퍼가기 (무료)

아래 코드를 붙여 넣으면 그대로 동작합니다. 출처 링크만 남겨 주세요.

이 계산기가 도움이 되었나요?

#진법변환#2진수#16진수

댓글

계산이 안 맞거나 빠진 조건이 있으면 남겨 주세요. 확인 후 반영합니다. (등록 후 검토를 거쳐 공개됩니다)

댓글 기능은 준비 중입니다. 설정 파일의 comments.app_id를 채우면 이 자리에 열립니다.