진법 하는법의 핵심은 "숫자를 몇 개의 기호로 묶어서 표현하느냐"를 이해하는 것입니다. 우리가 일상에서 쓰는 10진법은 0부터 9까지 열 개의 숫자를 사용하지만, 컴퓨터는 0과 1만 쓰는 2진법을, 개발자는 16진법을 자주 사용합니다. 이 글에서는 진법의 기본 개념부터 실제 변환 과정까지 순서대로 설명합니다.
진법이란 무엇인가
진법(進法)이란 수를 표현할 때 자릿수가 올라가는 기준을 말합니다. N진법은 N개의 숫자를 사용하며, 각 자리가 N의 거듭제곱을 의미합니다. 예를 들어 10진법에서 '253'은 다음과 같이 분해됩니다.
- 2 × 10² = 200
- 5 × 10¹ = 50
- 3 × 10⁰ = 3
이처럼 각 자리의 값에 자리의 가중치를 곱한 뒤 모두 더하면 원래 수가 됩니다. 이 원리만 이해하면 어떤 진법이든 동일한 방식으로 계산할 수 있습니다.
다른 진법을 10진법으로 바꾸는 방법
가장 기본이 되는 변환은 모든 진법을 익숙한 10진법으로 바꾸는 것입니다. 방법은 위에서 설명한 가중치 합산과 동일합니다. 2진법 수 '1011'을 10진법으로 바꿔보겠습니다.
- 각 자리에 2의 거듭제곱을 가중치로 부여합니다: 2³, 2², 2¹, 2⁰
- 1×8 = 8
- 0×4 = 0
- 1×2 = 2
- 1×1 = 1
이들을 모두 더하면 8 + 0 + 2 + 1 = 11이 됩니다. 즉, 2진법 '1011'은 10진법 '11'과 같습니다. 16진법도 동일한 원리이며, 가중치만 16의 거듭제곱으로 바뀝니다.
10진법을 다른 진법으로 바꾸는 방법
반대로 10진법을 2진법이나 16진법으로 바꿀 때는 '나머지를 이용한 나눗셈'을 반복합니다. 10진법 '45'를 2진법으로 바꾸는 과정은 다음과 같습니다.
- 45 ÷ 2 = 22, 나머지 1
- 22 ÷ 2 = 11, 나머지 0
- 11 ÷ 2 = 5, 나머지 1
- 5 ÷ 2 = 2, 나머지 1
- 2 ÷ 2 = 1, 나머지 0
- 1 ÷ 2 = 0, 나머지 1
몫이 0이 될 때까지 나눈 뒤, 나머지를 아래에서 위로 거꾸로 읽으면 '101101'이 됩니다. 이것이 10진법 45의 2진법 표현입니다. 16진법으로 바꿀 때는 2 대신 16으로 나누면 됩니다.
2진법과 16진법을 빠르게 변환하기
2진법과 16진법은 서로 깊은 관계가 있습니다. 16은 2의 4제곱이기 때문에, 2진법 네 자리가 정확히 16진법 한 자리에 대응합니다. 이 성질을 이용하면 10진법을 거치지 않고도 즉시 변환할 수 있습니다.
| 10진법 | 2진법(4자리) | 16진법 |
|---|---|---|
| 0 | 0000 | 0 |
| 5 | 0101 | 5 |
| 10 | 1010 | A |
| 15 | 1111 | F |
예를 들어 2진법 '11010110'을 변환할 때는 네 자리씩 끊어 '1101'과 '0110'으로 나눕니다. 각각 16진법으로 바꾸면 'D'와 '6'이므로, 결과는 'D6'이 됩니다. 손으로 계산할 일이 많거나 큰 수를 다룰 때 이런 작업을 자동화하려면 진법 변환기를 활용하면 실수를 줄이고 시간을 아낄 수 있습니다.
연습으로 확실하게 익히기
진법 하는법은 개념을 한 번 이해한 뒤 직접 손으로 풀어보는 과정이 가장 중요합니다. 아래 순서로 연습하면 자연스럽게 익숙해집니다.
- 0부터 15까지의 수를 2진법과 16진법으로 외워둡니다.
- 임의의 10진법 두 자리 수를 2진법으로 바꿔봅니다.
- 그 결과를 다시 10진법으로 되돌려 검산합니다.
- 2진법 결과를 네 자리씩 끊어 16진법으로 변환합니다.
- 마지막으로 자동 변환 도구로 답을 확인합니다.
검산까지 습관화하면 계산 실수를 스스로 잡아낼 수 있어 정확도가 크게 올라갑니다. 진법은 한 번 원리를 잡아두면 프로그래밍, 네트워크, 디지털 회로 등 다양한 분야에서 두고두고 활용되는 기초 지식이므로 차근차근 익혀두는 것을 권합니다.