진법 변환기란?
진법 변환기는 어떤 수를 한 위치 기수법에서 다른 기수법으로 바꿔 주는 도구입니다. 예를 들어 2진수(base 2)를 10진수(base 10)로, 또는 10진수를 16진수(base 16)로 변환할 수 있습니다. 컴퓨터는 모든 데이터를 2진수로 저장하고, 네트워크 엔지니어는 16진수를 즐겨 읽으며, 오래된 시스템에서는 8진수를 쓰기도 합니다. 그래서 진법 변환은 프로그래밍, 전자공학, 컴퓨터 과학 수업에서 거의 매일 마주치는 작업이죠. 이 계산기는 2진수, 8진수, 10진수, 16진수를 어느 방향으로든 변환할 수 있습니다.
사용 방법
변환하고 싶은 수를 입력하고, "변환 전 진법"에서 현재 진법을 선택한 다음 "변환 후 진법"에서 원하는 진법을 고르세요. 16진수 자릿수에는 A–F 알파벳을 사용하며, 대소문자는 구분하지 않습니다. 계산기는 선택한 출력 진법의 결과와 함께 10진수 값도 보여 주기 때문에, 언제든 결과를 검산할 수 있습니다.
공식 이해하기
변환은 두 단계로 이뤄집니다. 먼저 입력값을 자릿값(place value)을 이용해 10진수로 읽어 들입니다. 각 자릿수에 해당 진법을 자리 위치만큼 거듭제곱한 값을 곱하는 방식이죠.
$$\text{Decimal} = \sum_{i=0}^{k-1} d_i \cdot \text{From Base}^{\,i} \;\longrightarrow\; \text{Output in } \text{To Base}$$
$$\begin{gathered} \text{Decimal} = \sum_{i=0}^{k-1} d_i \cdot \text{From Base}^{\,i} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} d_i &= \text{digit } i \text{ of } \text{Number to Convert} \\ \text{Output} &= \text{Decimal converted to } \text{To Base} \end{aligned} \right. \end{gathered}$$
예를 들어 2진수 1010은 \(1\times2^3 + 0\times2^2 + 1\times2^1 + 0\times2^0 = 8 + 0 + 2 + 0 = 10\)이 됩니다. 다음으로 이 10진수 값을 반복 나눗셈(repeated division)으로 목표 진법으로 바꿉니다. 새 진법으로 계속 나누면서 나머지를 모은 뒤, 마지막 나머지부터 거꾸로 읽으면 됩니다.
풀이 예제
16진수 FF를 10진수로 변환해 봅시다. 자릿값으로 계산하면 \(F\times16^1 + F\times16^0 = 15\times16 + 15\times1 = 240 + 15 = 255\)입니다. 이 255를 다시 2진수로 표현하려면 2로 반복해서 나누면 되고, 그 결과는 11111111이 됩니다. 익숙한 8비트 바이트의 최댓값이죠.
일반적인 진법 변환 참고 테이블
이 표는 네 가지 표준 진법에서 자주 사용되는 값들을 나열합니다. 십진법(10진법)은 일상적인 계산 체계이고, 이진법(2진법), 팔진법(8진법), 십육진법(16진법)은 컴퓨팅에서 흔히 사용됩니다. 2의 거듭제곱인 16, 32, 64, 128, 256 각각이 십육진법에서 깔끔한 자릿수 변환을 만들고 이진법에서 정확한 거듭제곱이 되는 방식을 주목하세요.
| 십진법(10) | 이진법(2) | 팔진법(8) | 십육진법(16) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
| 32 | 100000 | 40 | 20 |
| 64 | 1000000 | 100 | 40 |
| 128 | 10000000 | 200 | 80 |
| 255 | 11111111 | 377 | FF |
주요 용어 설명
- 진법(기수)
- 수 체계가 사용하는 서로 다른 자릿수 기호의 개수입니다. 십진법은 열 개의 기호(0–9)를 사용하고, 이진법은 두 개(0–1)를 사용합니다. 진법은 또한 인접한 자릿수 사이의 승수를 결정합니다.
- 위치 기수법
- 자릿수의 값이 그 위치에 따라 달라지는 체계입니다. 각 위치는 진법의 연속적인 거듭제곱을 나타내며, 오른쪽에서 왼쪽으로 증가합니다.
- 자릿값
- 단일 자릿수가 기여하는 값으로, 자릿수에 진법을 그 위치의 거듭제곱으로 올린 것을 곱한 값과 같습니다. 예를 들어, 팔진법 745에서 맨 앞의 7의 자릿값은 \(7\times 8^2 = 448\)입니다.
- 자릿수
- 숫자 내에 있는 단일 기호입니다. 유효한 자릿수의 범위는 0부터 (진법 − 1)까지이며, 십육진법은 0–9에 값 10–15를 나타내는 문자 A–F를 확장합니다.
- 니블
- 4개의 비트로 이루어진 그룹입니다. 한 니블은 정확히 하나의 십육진 자릿수(0–F)에 대응되며, 이것이 이진-십육진 변환을 비트를 니블로 그룹화하여 수행하는 이유입니다.
- 바이트
- 8개의 비트(두 개의 니블)로 이루어진 그룹으로, \(2^8 = 256\)개의 값을 나타낼 수 있으며, 0부터 255까지(십육진법으로 00부터 FF까지)입니다.
- 최상위 자릿수(MSD)
- 숫자의 맨 왼쪽 자릿수로, 가장 높은 자릿값을 갖습니다.
- 최하위 자릿수(LSD)
- 가장 오른쪽 자릿수로, 가장 낮은 자릿값을 갖습니다(진법을 거듭제곱 0으로 올린 것, 즉 1).
- 이진법(2진법)
- 자릿수 0과 1을 사용합니다. 각 비트가 온/오프 상태인 디지털 전자장비의 기본 언어입니다.
- 팔진법(8진법)
- 자릿수 0–7을 사용합니다. 각 팔진 자릿수는 정확히 3개의 이진 비트에 대응되며, 역사적으로 컴퓨팅에서 흔했고 여전히 파일 권한에 사용됩니다.
- 십진법(10진법)
- 자릿수 0–9를 사용합니다. 일상적인 인간의 계산과 산술을 위한 표준 체계입니다.
- 십육진법(16진법)
- 자릿수 0–9와 A–F를 사용합니다. 각 십육진 자릿수가 정확히 4개의 비트와 같으므로 이진법을 간결하게 나타내며, 메모리 주소와 색상 코드에 널리 사용됩니다.
자주 묻는 질문
16진수의 알파벳은 무슨 뜻인가요? 16진법에서는 자릿수가 0~9 다음에 A=10, B=11, C=12, D=13, E=14, F=15로 이어집니다.
왜 2진수는 base 2인가요? 2진수는 0과 1 두 가지 숫자만 사용하는데, 이는 컴퓨터 내부 전자 스위치의 켜짐/꺼짐(on/off) 상태와 정확히 대응하기 때문입니다.
소수(분수)도 변환할 수 있나요? 이 계산기는 정수만 다룹니다. 소수 부분의 진법 변환은 진법을 곱해 나가는 별도의 방법을 사용합니다.