1. 수의 연산

1. 2진수의 사칙 연산

2진수의 사칙 연산은 10진수와 기본적으로 동일하지만, 뺄셈 연산은 직접 수행되지 않고 "보수"를 이용한 덧셈으로 처리된다는 점이 다르다.

  • 덧셈(Addition): 10진수처럼 자리 올림을 하며 계산
  • 뺄셈(Subtraction): 보수를 이용하여 덧셈으로 변환 후 연산
  • 곱셈(Multiplication): 여러 번의 덧셈 연산으로 구현 (소프트웨어적 처리)
  • 나눗셈(Division): 반복적인 뺄셈으로 구현 (소프트웨어적 처리)

2. 보수(Complement)에 의한 2진수의 감산

보수란 음수를 표현하는 방법으로, 디지털 시스템에서는 뺄셈을 보수를 이용한 덧셈 과정으로 변환하여 연산을 수행한다.

(1) 보수를 이용한 감산 원리

M−S=M+(−S)M - S = M + (-S)

여기서,

  • MM: 감수 (Minuend, 빼지는 수)
  • SS: 피감수 (Subtrahend, 빼는 수)
  • −S-S: 피감수의 보수를 이용해 변환한 음수 값

즉, 뺄셈을 직접 수행하는 것이 아니라, 피감수를 보수로 변환한 후 덧셈을 수행하는 방식이다.

(2) 보수의 종류

  • 1의 보수(1’s Complement): 모든 비트를 반전(0 → 1, 1 → 0)한 값
  • 2의 보수(2’s Complement): 1의 보수에 1을 더한 값

(3) 10진수에서의 보수 예제

10의 보수(Ten’s Complement)와 9의 보수(Nine’s Complement)

  • 45610456_{10} 의 보수를 구하면:
    • 9의 보수: 999−456=543999 - 456 = 543
    • 10의 보수: 1000−456=5441000 - 456 = 544

(4) 2진수에서의 보수 예제

1의 보수(One’s Complement)와 2의 보수(Two’s Complement)

  • 10101210101_2 의 보수를 구하면:
    • 1의 보수: 11111−10101=01010211111 - 10101 = 01010_2
    • 2의 보수: 100000−10101=010112100000 - 10101 = 01011_2

💡 2의 보수는 컴퓨터에서 가장 많이 사용되는 음수 표현 방식이다.


2. 2진수의 정수 표현법 (고정 소수점 표현)

1. 2진 음의 정수 표현

2진수에서 음수를 표현하는 방식에는 크게 세 가지가 있다.

2. 2진 음의 정수 표현 방법

표현 방식 특징 예제 (4비트 기준, -5 표현)

부호와 절대치 (Sign-Magnitude) MSB를 부호 비트로 사용 (0: 양수, 1: 음수) 10101 (5의 부호 비트 추가)
1의 보수 (One’s Complement) 모든 비트를 반전하여 표현 11010
2의 보수 (Two’s Complement) 1의 보수 + 1을 더한 값 11011

3. 2의 보수를 사용한 2진 정수의 표현 범위

N비트의 2의 보수 표현법에서 정수 범위는 다음과 같다.

−2N−1≤X≤2N−1−1-2^{N-1} \leq X \leq 2^{N-1} - 1

예제 (8비트 기준)

  • 최소값: −27=−128-2^{7} = -128
  • 최대값: 27−1=1272^{7} - 1 = 127

💡 2의 보수는 하드웨어적으로 덧셈과 뺄셈을 동일한 방식으로 처리할 수 있어 가장 널리 사용된다.


3. 2진수의 실수 표현법 (부동 소수점 표현)

1. 2진 부동 소수점의 표현

고정 소수점 방식은 소수점이 고정되어 있어 정수 표현에는 적합하지만 실수를 표현하는 데 한계가 있다.
이 문제를 해결하기 위해 부동 소수점 (Floating-Point) 표현을 사용한다.

부동 소수점 수는 IEEE 754 표준을 따른다.

부동 소수점 수=(−1)S×M×2E\text{부동 소수점 수} = (-1)^S \times M \times 2^E

  • S (Sign Bit): 부호 비트 (0: 양수, 1: 음수)
  • E (Exponent): 지수 (Exponent, 2의 거듭제곱)
  • M (Mantissa): 가수 (유효숫자)

2. 정규화 (Normalization)

부동 소수점 수를 표현할 때, 정규화(Normalization) 를 통해 일정한 형태로 변환한다.

  • 2진수의 정규화된 형태: 1.xxxxx×2n1.xxxxx \times 2^n

예제

  • 101.012=1.0101×22101.01_2 = 1.0101 \times 2^2

정규화를 통해 소수점의 위치를 조정하여 보다 정밀한 표현이 가능하다.


3. 컴퓨터에서의 부동 소수점 표현 범위

IEEE 754 표준에서는 부동 소수점 수를 32비트 (단정도)와 64비트 (배정도)로 표현한다.

형식 비트 수 지수 비트 가수 비트 표현 범위

단정도 (Single Precision) 32비트 8비트 23비트 ±1.18×10−381.18 \times 10^{-38} ~ ±3.4×10383.4 \times 10^{38}
배정도 (Double Precision) 64비트 11비트 52비트 ±2.23×10−3082.23 \times 10^{-308} ~ ±1.8×103081.8 \times 10^{308}

부동 소수점의 주요 개념

  • 지수(E)가 0보다 작으면 작은 수, 0보다 크면 큰 수
  • 가수(M)의 정밀도가 높을수록 정확한 수 표현 가능

📌 요약 정리

2진수의 뺄셈보수(Complement)를 이용한 덧셈으로 처리
2진수의 정수 표현 방식: 부호와 절대치, 1의 보수, 2의 보수
2진수의 실수 표현 방식: IEEE 754 표준 (부동 소수점 표현)
정규화를 통해 부동 소수점 수를 일정한 형태로 변환

+ Recent posts