1. 10진법, 2진법, 8진법, 16진법

1. 수의 정의

수란 양(量)을 표현하기 위한 추상적인 개념으로, 우리가 숫자로 표기하고 연산할 수 있는 대상이다.

2. R진법(기수법, Radix Notation)

진법이란 수를 표기하는 기본 체계를 의미하며, 기수(radix, R) 라고 불리는 기본수를 기반으로 숫자를 표현한다.

  • R진법에서 표현되는 수 NN은 다음과 같이 나타낼 수 있다.N=DmDm−1...D1D0.D−1D−2...D−nN = D_m D_{m-1} ... D_1 D_0 . D_{-1} D_{-2} ... D_{-n}여기서,
    • DiD_i : 각 자리의 숫자 (digit value)
    • RR : 기수 (base number)
    • RiR^i : 각 자리의 가중치 (weight of digit)
    • 0≤Di<R0 \leq D_i < R

즉, 진법이 다르면 같은 수라도 다른 방식으로 표현된다.


3. 주요 진법과 특징

진법 기수(R) 사용 가능한 숫자 가중치의 증가 예시

2진법 (Binary) 2 0, 1 2n2^n 10112=1×23+0×22+1×21+1×20=11101011_2 = 1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0 = 11_{10}
8진법 (Octal) 8 0 ~ 7 8n8^n 578=5×81+7×80=471057_8 = 5 \times 8^1 + 7 \times 8^0 = 47_{10}
10진법 (Decimal) 10 0 ~ 9 10n10^n 45210=4×102+5×101+2×100452_ {10} = 4 \times 10^2 + 5 \times 10^1 + 2 \times 10^0
16진법 (Hexadecimal) 16 0 ~ 9, A ~ F 16n16^n 2F16=2×161+15×160=47102F_ {16} = 2 \times 16^1 + 15 \times 16^0 = 47_{10}

💡 8진법과 16진법은 2진수를 그룹으로 묶어 표현하기 때문에 컴퓨터에서 효율적으로 사용된다.


2. 진법 변환

1. 2ⁿ진법 → 10진법 변환

각 자리 숫자에 해당 진법의 가중치를 곱한 후 모두 더한다.

예제 1: 2진수 → 10진수

11012=(1×23)+(1×22)+(0×21)+(1×20)1101_2 = (1 \times 2^3) + (1 \times 2^2) + (0 \times 2^1) + (1 \times 2^0) =8+4+0+1=1310= 8 + 4 + 0 + 1 = 13_{10}

예제 2: 8진수 → 10진수

3458=(3×82)+(4×81)+(5×80)345_8 = (3 \times 8^2) + (4 \times 8^1) + (5 \times 8^0) =192+32+5=22910= 192 + 32 + 5 = 229_{10}

예제 3: 16진수 → 10진수

1A316=(1×162)+(A×161)+(3×160)1A3_ {16} = (1 \times 16^2) + (A \times 16^1) + (3 \times 16^0)

(A = 10)

=256+160+3=41910= 256 + 160 + 3 = 419_{10}


2. 10진법 → 2ⁿ진법 변환

1) 10진수 → 2진수 변환 (나머지 방식 사용)

예제: 191019_{10} 을 2진수로 변환

나눗셈 몫 나머지

19 ÷ 2 9 1
9 ÷ 2 4 1
4 ÷ 2 2 0
2 ÷ 2 1 0
1 ÷ 2 0 1

위쪽에서 아래로 나머지를 읽으면 19의 2진수 표현: 10011_2


2) 10진수 → 8진수 변환

예제: 831083_{10} 을 8진수로 변환

나눗셈 몫 나머지

83 ÷ 8 10 3
10 ÷ 8 1 2
1 ÷ 8 0 1

결과: 123_8


3) 10진수 → 16진수 변환

예제: 27510275_{10} 을 16진수로 변환

나눗셈 몫 나머지

275 ÷ 16 17 3
17 ÷ 16 1 1
1 ÷ 16 0 1

결과: 113_{16}


3. 8진수 ↔ 16진수 변환 (2진수를 거쳐 변환)

8진수와 16진수는 2진수를 거쳐 변환하면 간단하다.

1) 8진수 → 2진수 → 16진수

예제: 3458345_8 을 16진수로 변환

  1. 8진수를 2진수로 변환 (각 자리 숫자를 3비트로 변환)
    38=0112,48=1002,58=10123_8 = 011_2, 4_8 = 100_2, 5_8 = 101_2
    즉, 3458=0111001012345_8 = 011100101_2
  2. 2진수를 16진수로 변환 (4비트씩 묶음)
    0111 0010 1 → 0111 0010 0001 (앞에 0 추가)
    0111 = 7, 0010 = 2, 0001 = 1
  3. 결과: 72_16

📌 요약 정리

2ⁿ진법 → 10진법: 각 자리 숫자 × 해당 진법의 가중치 → 모두 더하기
10진법 → 2ⁿ진법: 해당 진법으로 나누고 나머지 기록 → 나머지를 역순으로 읽기
8진수 ↔ 16진수: 2진수를 거쳐 변환 (8진수는 3비트, 16진수는 4비트씩 묶기)

+ Recent posts