본문 바로가기

수학 이것저것

[수학] 진법 변환

728x90

진법이란?

진법이란 숫자를 표현하는 체계로, 위치값 기수법(Positional System)을 사용하는 수의 표현 방식입니다. 기수법은 수를 눈으로 볼 수 있는 표현 방식이며, 위치값 기수법은 숫자의 위치와 계수를 이용하여 수를 나타내는 방법입니다.

예를 들어, 우리가 일상적으로 사용하는 숫자 표현은 10진법으로, 0부터 9까지의 숫자를 사용합니다. 위치값 기수법에서 각 자리수는 해당 위치에 따라 다른 가중치를 갖고, 그 위치의 값에 계수를 곱한 값을 모두 더한 것이 숫자의 값이 됩니다.

10진법 구조

10진법에서는 각 자릿수의 이름이 1의 자리, 10의 자리, 100의 자리...로 정해져 있으며, 각 자리의 값을 구하는 방법은 다음과 같습니다:

  • 2901을 예시로 들면:
    • 1000의 자리: 2 * 1000 = 2000
    • 100의 자리: 9 * 100 = 900
    • 10의 자리: 0 * 10 = 0
    • 1의 자리: 1 * 1 = 1
    • 전체 값: 2000 + 900 + 0 + 1 = 2901

모든 진법에서 이와 같은 방식으로 숫자의 전체 값을 계산할 수 있습니다. 이는 각 진법에서 각 자릿수의 값을 기준으로 계산되는 방식이 동일하기 때문입니다.

 

 

2진법

2진법은 0과 1의 두 가지 숫자만을 사용하는 진법입니다. 10진법에서 10이 되는 순간 자릿수가 올라가는 것처럼, 2진법에서는 2가 되는 순간 자릿수가 올라갑니다. 2진법의 구조는 다음과 같습니다:

  • 10진법: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ...
  • 2진법: 0, 1, 10, 11, 100, 101, 110, ...

2진법 -> 10진법 변환

2진수를 10진수로 변환하려면 각 자릿수에 해당하는 2의 제곱수를 곱한 후 더하면 됩니다.

  • 예시: 1010 (2진법)
    • 8의 자리: 1 * 8 = 8
    • 4의 자리: 0 * 4 = 0
    • 2의 자리: 1 * 2 = 2
    • 1의 자리: 0 * 1 = 0
    • 전체 값: 8 + 0 + 2 + 0 = 10 (10진법)
  • 예시: 10101 (2진법)
    • 16의 자리: 1 * 16 = 16
    • 8의 자리: 0 * 8 = 0
    • 4의 자리: 1 * 4 = 4
    • 2의 자리: 0 * 2 = 0
    • 1의 자리: 1 * 1 = 1
    • 전체 값: 16 + 0 + 4 + 0 + 1 = 21 (10진법)

 

 

n진법 -> 10진법 변환

모든 진법에서 10진법으로 변환하는 방법은 동일합니다. 각 자릿수에 해당하는 n의 제곱수를 곱한 후 더합니다:

  • 예시: n진법에서 num = n^4의 자리 num * n^4 + num * n^3 + ... + num * 1

10진법 -> 2진법 변환

10진수를 2진수로 변환하려면 수를 2로 계속 나누면서 나머지를 저장하고, 그 나머지를 역순으로 읽습니다.

  • 예시: 11 (10진법)
    • 11 / 2 = 5, 나머지 1
    • 5 / 2 = 2, 나머지 1
    • 2 / 2 = 1, 나머지 0
    • 1 / 2 = 0, 나머지 1
    • 결과: 1011 (2진법)
  • 예시: 40 (10진법)
    • 40 / 2 = 20, 나머지 0
    • 20 / 2 = 10, 나머지 0
    • 10 / 2 = 5, 나머지 0
    • 5 / 2 = 2, 나머지 1
    • 2 / 2 = 1, 나머지 0
    • 1 / 2 = 0, 나머지 1
    • 결과 : 101000(2진법)

10진법 -> n진법 변환

10진수를 n진수로 변환하는 방법도 비슷합니다. 10진수를 n으로 나누고, 나머지를 저장한 후 역순으로 읽으면 n진법의 수가 됩니다.

 

  • 10진법 41을 3진법으로 변환 :
    • 41 / 3 = 13, 나머지 2
    • 13 / 3 = 4, 나머지 1
    • 4 / 3 = 1, 나머지 1
    • 1 / 3 = 0, 나머지 1
    • 결과 : 1112(3진법)
  • 10진법 41을 4진법으로 변환:
    • 41 / 4 = 10, 나머지 1
    • 10 / 4 = 2, 나머지 2
    • 2 / 4 = 0, 나머지 2
    • 결과 : 221(4진법)

 

 

11~16진법에서의 숫자 표현

11진법부터 16진법까지는 10 이상의 숫자를 표현하기 위해 알파벳을 사용합니다.

  • 11진법에서 10을 초과하는 값은 A, B, C, D, E 등의 알파벳으로 표현됩니다.
    예시: A = 10, B = 11, ... F = 15
  • 16진법은 흔히 사용되며, A는 10, B는 11, C는 12, D는 13, E는 14, F는 15를 의미합니다.
    예시: 10진법 255를 16진법으로 변환하면 FF(= 15 * 16^1 + 15 * 16^0)로 표현됩니다.
728x90