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 표준 (부동 소수점 표현)
✅ 정규화를 통해 부동 소수점 수를 일정한 형태로 변환