암산 팁

진법 변환 쉽게 하는 법

각 자리의 값이 몇 배씩 커지는지 이해하면 2진수·8진수·16진수 변환을 단계적으로 계산할 수 있습니다.

진법이 필요한 이유

우리는 보통 0부터 9까지 열 개의 숫자를 사용하는 10진수로 수를 읽습니다. 컴퓨터 내부의 정보는 전기 신호의 두 상태를 나타내기 편한 0과 1로 표현되므로, 2진수도 자주 사용됩니다. 2진수는 길어지기 쉬워서 세 자리씩 묶은 8진수나 네 자리씩 묶은 16진수로 간단하게 나타내기도 합니다.

진법 변환을 익히면 컴퓨터가 다루는 수를 읽고, 같은 값을 여러 표기법으로 확인할 수 있습니다. 특정 수를 외우는 것보다 자리값을 따라 계산하는 것이 중요합니다. 변환할 때는 원래 수와 바꾼 수의 크기가 같은지 검산하면 자릿수나 나머지 순서에서 생긴 실수를 찾기 쉽습니다.

2진수·8진수·16진수의 원리

진법의 밑은 한 자리에 사용할 수 있는 숫자의 개수입니다. 10진수는 10을 밑으로 하므로 각 자리는 오른쪽부터 1, 10, 100, 1,000의 값을 가집니다. 2진수는 2를 밑으로 하므로 자리값이 오른쪽부터 1, 2, 4, 8, 16, 32처럼 두 배씩 커집니다. 각 자리에 적힌 0 또는 1을 해당 자리값과 곱해 모두 더하면 10진수 값이 됩니다.

8진수는 한 자리에 0부터 7까지 사용하고 자리값은 1, 8, 64, 512 순서입니다. 16진수는 한 자리에 열여섯 가지 값을 표현해야 하므로 0부터 9 다음에 A, B, C, D, E, F를 사용합니다. 이 문자는 각각 10, 11, 12, 13, 14, 15를 뜻하고, 16진수의 자리값은 1, 16, 256처럼 커집니다.

2진수와 8진수는 3비트씩 묶어 바꿀 수 있습니다. 000부터 111까지 여덟 조합이 0부터 7에 대응하기 때문입니다. 2진수와 16진수는 4비트씩 묶습니다. 네 비트 조합은 0부터 15까지 표현하므로 16진수 한 자리에 정확히 대응합니다. 묶음이 모자라면 맨 왼쪽에만 0을 채웁니다. 이 0은 값에 영향을 주지 않습니다.

일반 m진수와 10진수 사이의 변환

m진수를 10진수로 바꿀 때는 오른쪽 끝자리부터 m⁰, m¹, m²처럼 자리값을 붙입니다. 각 자리의 숫자에 해당 자리값을 곱한 뒤 모두 더하면 10진수 값입니다. 반대로 10진수를 m진수로 바꿀 때는 수를 m으로 계속 나누어 나머지를 적고, 몫이 0이 되면 나머지를 마지막부터 거꾸로 읽습니다.

3진수 예제: 1202₃를 10진수로

풀이: 1202₃의 자리값은 오른쪽부터 3⁰, 3¹, 3², 3³입니다. 따라서 1 × 3³ + 2 × 3² + 0 × 3¹ + 2 × 3⁰ = 27 + 18 + 0 + 2 = 47이므로 1202₃ = 47₁₀입니다.

검산: 47을 3으로 나누면 차례로 나머지 2, 0, 2, 1이 나옵니다. 이를 거꾸로 읽은 1202가 처음의 3진수와 같으므로 계산이 맞습니다.

5진수 예제: 83을 5진수로

풀이: 83 ÷ 5 = 16 나머지 3, 16 ÷ 5 = 3 나머지 1, 3 ÷ 5 = 0 나머지 3입니다. 나머지를 마지막부터 읽으면 313₅이므로 83₁₀ = 313₅입니다.

검산: 313₅ = 3 × 5² + 1 × 5¹ + 3 × 5⁰ = 75 + 5 + 3 = 83입니다.

10진수에서 2진수로: 2로 나누기

10진수를 2진수로 바꿀 때는 수를 2로 계속 나누고 매 단계의 나머지를 기록합니다. 나머지는 0 또는 1입니다. 몫이 0이 되면 계산을 멈추고, 적어 둔 나머지를 아래에서 위로 읽습니다. 가장 먼저 나온 나머지가 가장 오른쪽 자리(1의 자리)가 되고, 마지막 나머지가 가장 왼쪽 자리가 되는 이유는 나누기를 거듭할수록 더 높은 자리의 정보를 얻기 때문입니다.

  1. 변환할 10진수를 2로 나누고 몫과 나머지를 적습니다.
  2. 몫을 다시 2로 나누어 새로운 몫과 나머지를 기록합니다.
  3. 몫이 0이 될 때까지 같은 과정을 반복합니다.
  4. 나머지를 마지막 줄부터 거꾸로 읽어 2진수로 씁니다.
  5. 2진수의 자리값을 더해 원래 10진수로 돌아오는지 확인합니다.

2진수에서 10진수로: 자리값 더하기

2진수에서 오른쪽 끝은 2⁰, 그 왼쪽은 2¹이며 그 다음은 2², 2³ 순서입니다. 각 자리의 숫자가 1이면 해당 자리값을 더하고, 0이면 더하지 않습니다. 지수가 0부터 시작하므로 자리 번호를 왼쪽부터 세지 않도록 주의합니다. 오른쪽 끝자리의 값은 언제나 1입니다.

2진수와 16진수: 네 비트씩 묶기

2진수를 16진수로 바꿀 때는 오른쪽에서 네 자리씩 끊습니다. 왼쪽 묶음에 자릿수가 모자라면 앞에 0을 붙인 뒤, 각 묶음을 0부터 F까지의 16진수 한 자리로 바꿉니다. 반대로 16진수에서 2진수로 갈 때는 각 문자를 네 자리의 2진수로 바꿔 이어 붙입니다. 이 방법은 10진수로 변환했다가 다시 계산하는 것보다 짧습니다.

8진수 변환도 같은 구조로 세 자리씩 묶습니다. 2진수 101101을 8진수로 바꾸면 101과 101로 묶이고, 각각 5와 5이므로 55₈입니다. 자리값으로 검산하면 5 × 8 + 5 = 45로 원래 값과 같습니다. 밑에 맞춰 묶음 크기를 고르면 변환 규칙을 일관되게 적용할 수 있습니다.

예제 1: 45를 2진수로 바꾸기

1단계: 45 ÷ 2 = 22, 나머지 1입니다.

2단계: 22 ÷ 2 = 11, 나머지 0입니다. 이어서 11 ÷ 2 = 5, 나머지 1입니다.

3단계: 5 ÷ 2 = 2, 나머지 1입니다. 이어서 2 ÷ 2 = 1, 나머지 0입니다.

4단계: 1 ÷ 2 = 0, 나머지 1입니다. 나머지를 거꾸로 읽으면 101101₂입니다.

검산: 32 + 8 + 4 + 1 = 45이므로 101101₂는 45입니다.

예제 2: 1101011₂를 10진수로 바꾸기

1단계: 오른쪽부터 자리값을 붙이면 2⁰, 2¹, 2², 2³, 2⁴, 2⁵, 2⁶입니다.

2단계: 숫자가 1인 자리는 2⁶, 2⁵, 2³, 2¹, 2⁰입니다.

3단계: 값을 더하면 64 + 32 + 8 + 2 + 1 = 107입니다.

검산: 107을 2로 나눈 나머지를 거꾸로 쓰면 1101011이 되어 원래 표기로 돌아옵니다.

예제 3: 11010110₂를 16진수로 바꾸기

1단계: 오른쪽부터 네 자리씩 나누면 1101과 0110입니다.

2단계: 1101₂는 13이므로 16진수 D이고, 0110₂는 6입니다.

3단계: 두 자리를 이어 붙이면 D6₁₆입니다.

검산: D6₁₆ = 13 × 16 + 6 = 214이고, 11010110₂도 128 + 64 + 16 + 4 + 2 = 214입니다.

예제 4: 83을 8진수로 바꾸기

1단계: 83 ÷ 8 = 10, 나머지 3입니다.

2단계: 10 ÷ 8 = 1, 나머지 2입니다. 이어서 1 ÷ 8 = 0, 나머지 1입니다.

3단계: 나머지를 아래에서 위로 읽으면 123₈입니다.

검산: 1 × 8² + 2 × 8¹ + 3 × 8⁰ = 64 + 16 + 3 = 83입니다.

예제 5: 9C₁₆를 2진수로 바꾸기

1단계: 16진수 9는 2진수 1001이고, C는 12이므로 2진수 1100입니다.

2단계: 각 네 자리 묶음을 그대로 이어 붙이면 10011100₂입니다.

검산: 9C₁₆ = 9 × 16 + 12 = 156이고, 10011100₂ = 128 + 16 + 8 + 4 = 156입니다.

자주 하는 실수

나눗셈 나머지를 위에서 아래로 읽는 실수가 많습니다. 45를 2진수로 바꿀 때 나머지를 적은 순서는 1, 0, 1, 1, 0, 1이지만 정답은 이를 거꾸로 쓴 101101입니다. 나머지를 쓰는 즉시 마지막 줄부터 읽으라는 표시를 해 두면 방향을 놓치지 않습니다.

2진수 자리값을 왼쪽에서부터 1, 2, 4로 붙이는 것도 오류입니다. 1의 자리는 오른쪽 끝에서 시작하며, 왼쪽으로 갈 때마다 두 배가 됩니다. 2진수의 0 자리는 계산에 더하지 않되, 그 자리를 건너뛰지 않아야 그 왼쪽 자리의 값이 한 단계씩 맞게 커집니다.

16진수의 C나 F를 숫자 한 자리로만 보고 12나 15라는 값으로 바꾸지 않는 경우도 있습니다. 16진수 한 자리 안에서도 A부터 F까지가 각각 10부터 15를 뜻합니다. 16진수를 2진수로 바꿀 때는 문자를 하나씩 네 비트로 치환하고, 앞자리 0은 전체 수의 값과 표현 방식에 따라 유지하거나 생략합니다.

마지막으로, 8진수에 8이나 9를 쓰거나 2진수에 2를 쓰면 그 표기법의 숫자 규칙에 맞지 않습니다. 변환 뒤에는 사용한 진법의 밑보다 작은 숫자만 들어 있는지 확인하세요. 변환 결과를 원래 진법의 자리값으로 다시 계산하는 검산까지 하면 표기 오류도 발견할 수 있습니다.

SumGym에서 진법 연습하기

SumGym 홈으로 이동해 설정 화면에서 ‘진법’을 선택한 뒤 방향과 m, 난이도를 고르세요. 연습은 ‘10진수 → m진수’ 또는 ‘m진수 → 10진수’ 변환만 출제됩니다. 첫 번째 방향에서는 m=2~9만 선택할 수 있고, 답은 0~9 숫자로 입력합니다. 따라서 10진수→16진수처럼 A~F 문자를 답으로 입력하는 문제는 나오지 않습니다. m=11~16은 ‘m진수 → 10진수’ 방향에서만 선택할 수 있으며, 이때 A~F는 문제에 나오는 진법 숫자이고 답은 10진수입니다. 2진수 덧셈과 16진수→2진수 변환은 연습 모드에 포함되지 않습니다.

정답을 입력하면 다음 문제가 나오고, 오답이면 같은 문제에서 다시 입력할 수 있습니다. 연습 모드에서 선택한 변환을 시간 제한 없이 익힌 뒤 60초 챌린지로 풀어 보세요. 쉬움·보통·어려움 난이도는 m진수의 자릿수 범위를 바꾸므로 단계별로 연습할 수 있습니다.

한 줄 요약

10진수는 m으로 반복해서 나눈 나머지를 거꾸로 읽고, m진수는 각 자리 숫자에 m의 거듭제곱을 곱해 더하세요.

관련 글

분수와 소수 변환하는 법

나눗셈과 자릿값으로 수를 바꾸는 방법.

11~19단 곱셈 암산 요령

분배법칙으로 곱셈을 나누어 계산하기.

제곱수 암산 요령

자리값과 기준 수를 이용한 계산법.