진법 변환기
숫자를 2진수, 8진수, 10진수, 16진수, 그리고 2부터 36까지의 임의의 진법으로 변환합니다 — 아무리 큰 값이라도 정확합니다.
조회수 1,169회
진법 변환은 어떻게 작동하나요?
b진법 수 체계는 0부터 b−1까지의 숫자만 사용하며, 각 자리는 b의 거듭제곱 값을 가집니다 — 10진법과 같은 원리이며, 다만 기호의 개수만 다를 뿐입니다. 10진수를 다른 진법으로 변환할 때는 나눗셈-나머지 방법을 사용합니다: 목표 진법으로 숫자를 반복해서 나누고 각 나머지를 기록한 다음, 나머지를 역순으로 읽습니다. 10진수 100을 7진법으로 변환하면: 100÷7 = 14 나머지 2, 14÷7 = 2 나머지 0, 2÷7 = 0 나머지 2 — 나머지를 아래에서 위로 읽으면 7진법으로 202가 됩니다.
어떤 진법이든 10진수로 변환할 때는 반대의 개념인 자릿값 합산 방법을 사용합니다: 각 자릿수에 그 자리의 위치(오른쪽부터 0으로 세어)에 해당하는 진법의 거듭제곱을 곱한 다음 결과를 모두 더합니다. 따라서 7진법의 202는 2×7² + 0×7¹ + 2×7⁰ = 98 + 0 + 2 = 100으로 되돌아갑니다. 이 도구는 2에서 36 사이의 어떤 두 진법 사이에서도 두 방향을 동시에 처리하며, 큰 정수 연산을 사용하므로 아주 긴 숫자에서도 결과가 정확하게 유지됩니다 — 휴대용 계산기처럼 15자리에서 반올림되지 않습니다.
같은 두 가지 방법은 10진법이 아닌 진법 쌍 사이의 변환에도 그대로 일반화됩니다: 예를 들어 5진법에서 12진법으로 직접 변환할 때는 보통 먼저 10진수를 중간 단계로 거칩니다(자릿값 합산 방법으로 5진법 → 10진수, 그다음 나눗셈-나머지 방법으로 10진수 → 12진법) — 이 도구는 2에서 36 사이의 가능한 35가지 진법 조합 모두에 대해 이 과정을 내부적으로 자동화합니다.
알아두어야 할 사항
- 문자는 숫자 집합을 10 너머로 확장합니다: 어떤 진법이 10개보다 많은 기호를 필요로 하면, 숫자가 부족해지는 지점부터 문자를 빌려 씁니다 — A=10, B=11, 이 도구가 지원하는 가장 큰 진법인 36진법에서는 Z=35까지 사용합니다. 입력은 대소문자를 구분하지 않습니다.
- 16진수가 인기 있는 이유는 이진수와 깔끔하게 대응되기 때문입니다: 16진수 한 자리는 정확히 4비트에 대응되므로, 이진수↔16진수 변환은 4자리씩 묶어 단순히 대응표를 찾아보는 일에 불과합니다 — 반면 이진수↔10진수 변환은 완전한 자릿값 연산이 필요합니다.
- 8진법은 이진수를 3비트씩 묶습니다: 초기 컴퓨팅에서 흔히 쓰였으며(유닉스 파일 권한은 지금도 사용합니다, 예: 755), 이진수 3자리가 정확히 8진수 한 자리에 대응되기 때문입니다.
- 앞자리 0과 부호: 이 변환기는 부호 없는 크기 값을 다룹니다 — 음수는 명시적인 마이너스 기호와 함께 입력해야 합니다. 10보다 큰 진법 체계에는 이를 위해 따로 예약된 문자가 없기 때문입니다.
- 2 미만이나 36 초과 진법은 의도적으로 지원하지 않습니다: 1진법(단항)은 의미 있는 자릿값 개념이 없으며, 36을 넘어서면 더 높은 자릿값을 모호함 없이 나타낼 대소문자 구분 없는 한 글자짜리 기호가 라틴 알파벳과 숫자를 다 써도 더 이상 남지 않습니다.
자주 묻는 질문
프로그래머는 왜 16진수를 사용하나요?
16진수 한 자리는 정확히 4비트를 나타내므로, 1바이트는 항상 16진수 두 자리입니다(FF = 255 = 11111111). 이진 데이터, 메모리 주소, 색상 코드를 간결하고 읽기 쉽게 표현할 수 있습니다.
2진수 1010은 10진수로 얼마인가요?
1010₂ = 1×8 + 0×4 + 1×2 + 0×1 = 10입니다. 자리를 오른쪽에서 왼쪽으로 읽으면 각 자리가 2의 다음 거듭제곱을 나타냅니다 — 이는 어떤 진법이든 10진수로 변환할 때 사용하는 자릿값 합산 방법입니다.
10보다 큰 진법에서는 어떤 문자가 유효한가요?
숫자가 끝나는 지점부터 문자가 이어집니다: A=10, B=11 … Z=35. 따라서 36진법은 모든 숫자와 모든 문자를 사용하며, 입력은 대소문자를 구분하지 않습니다.
10진수를 손으로 직접 다른 진법으로 변환하려면 어떻게 하나요?
나눗셈-나머지 방법을 사용하세요: 목표 진법으로 숫자를 반복해서 나누고, 각 나머지를 기록한 다음, 나머지를 역순으로(마지막부터 처음까지) 읽으세요. 100을 7진법으로 변환하면 나머지 2, 0, 2가 나오며 — 아래에서 위로 읽으면 202입니다.
일반 계산기는 왜 다른 진법의 아주 큰 숫자에서 정밀도를 잃나요?
일반 계산기는 고정 정밀도 부동소수점 연산을 사용하며, 약 15~17자리 이후에는 반올림됩니다. 이 도구는 대신 큰 정수 연산을 사용하므로, 수십 자리에 걸친 숫자라도 반올림 오차 없이 정확하게 변환합니다 — 암호학이나 경쟁 프로그래밍 문제에서 흔히 요구되는 수준의 정밀도입니다.
비슷한 도구
문제 신고하기
진법 변환기
댓글
아직 댓글이 없습니다 — 첫 댓글을 남겨보세요!