2진 부동소수점, 3진 컴퓨터, 그리고 최적 진법의 의미
핵심 요약
- 현대 컴퓨터가 주로 2진 부동소수점(binary floating point) 을 사용하는 이유는 수학적 우월성 때문만이 아니라, 전자 회로에서 0과 1의 두 상태를 가장 안정적으로 구현할 수 있기 때문이다.
- 10진 부동소수점(decimal floating point)도 존재하지만, 일반 CPU의 기본 연산 체계로 쓰기에는 회로 복잡도와 비용이 크다.
- 역사적으로 소련은 실제로 3진법 컴퓨터 Setun 을 만들었고, 이 컴퓨터는 균형 3진법(balanced ternary) 을 사용했다.
- 이론적으로는 진법의 표현 효율을 단순 모델로 계산할 때 최적 진법이 e ≈ 2.718 근처로 나오며, 정수 진법 중에서는 3진법이 가장 가깝다.
- 그러나 실제 컴퓨터에서는 정보 표현 효율보다 노이즈, 회로 안정성, 제조 비용, 산업 표준화가 더 큰 변수이므로 2진법이 표준이 되었다.
1. 왜 컴퓨터는 2진 부동소수점을 쓰는가
컴퓨터가 2진 부동소수점을 사용하는 기본 이유는 하드웨어 구조에 있다. 트랜지스터는 사실상 스위치처럼 작동한다. 전압이 낮으면 0, 전압이 높으면 1로 해석하는 방식이 가장 단순하고 안정적이다.
| 전압 상태 | 논리값 |
|---|---|
| 낮음 | 0 |
| 높음 | 1 |
이 구조에서는 회로가 구분해야 할 상태가 두 개뿐이다. 따라서 노이즈에 강하고, 연산 회로를 단순하게 만들 수 있으며, 전력과 속도 면에서도 유리하다.
반면 10진 회로를 만든다면 한 자리에서 0부터 9까지 총 10개의 상태를 구분해야 한다. 이는 전압 구간을 더 촘촘히 나누어야 한다는 뜻이다. 구간이 촘촘해질수록 노이즈에 취약해지고, 회로 설계도 복잡해진다.
2. 2진 연산과 10진 연산의 회로 차이
2진 덧셈의 기본 경우의 수는 다음 네 가지이다.
0 + 0
0 + 1
1 + 0
1 + 1
반면 10진 덧셈에서는 한 자리끼리만 계산해도 0부터 9까지의 조합이 생기므로 100가지 경우를 처리해야 한다.
0~9 + 0~9
이 차이는 단순한 표기법 차이가 아니라 실제 회로 규모의 차이로 이어진다. 회로가 커지면 전력 소비, 발열, 오류 가능성, 제조 비용이 모두 증가한다. 그래서 대부분의 현대 CPU는 내부적으로 2진 연산을 기본으로 삼는다.
3. 10진 부동소수점도 존재한다
다만 10진 부동소수점이 없는 것은 아니다. 금융 계산처럼 10진 기준의 정확성이 중요한 영역에서는 10진 표현을 사용한다.
대표적인 예는 다음과 같다.
- IEEE 754 decimal floating point
- Python
decimal - Java
BigDecimal
예를 들어 금액 계산에서는 0.1, 0.01 같은 10진 소수의 정확한 표현이 중요하다. 2진 부동소수점에서는 이런 값이 내부적으로 정확히 표현되지 않을 수 있으므로, 금융·회계 영역에서는 10진 기반 계산이 필요하다.
하지만 이것은 일반적인 CPU 산술의 기본 구조가 10진이라는 뜻은 아니다. 대부분의 범용 컴퓨터에서는 여전히 2진 부동소수점이 표준이다.
4. 소련의 3진법 컴퓨터 Setun
흥미로운 역사적 사례로 소련의 Setun 이 있다. Setun은 1958년 모스크바 국립대학교(Moscow State University)에서 개발된 3진법 컴퓨터이다. 개발자는 Nikolay Brusentsov 로 알려져 있다.
Setun은 비트(bit)가 아니라 트릿(trit)을 사용했다. 트릿은 세 가지 상태를 가진다.
| 값 | 의미 |
|---|---|
| -1 | 음 |
| 0 | 중립 |
| +1 | 양 |
Setun은 일반적인 3진법인 0, 1, 2 대신 균형 3진법(balanced ternary) 을 사용했다.
5. 균형 3진법의 특징
일반 3진법은 다음 세 기호를 사용한다.
0, 1, 2
반면 균형 3진법은 다음 세 값을 사용한다.
-1, 0, +1
이 방식의 장점은 음수를 표현하기가 자연스럽다는 점이다. 2진법에서는 일반적으로 부호 비트나 2의 보수(two's complement) 같은 별도의 체계가 필요하다. 그러나 균형 3진법에서는 음수와 양수가 표현 체계 안에 대칭적으로 들어간다.
예를 들어 10진수 일부는 균형 3진법으로 다음처럼 표현할 수 있다.
| 10진수 | 균형 3진 표현 |
|---|---|
| 1 | 1 |
| 2 | 1(-1) |
| 3 | 10 |
| 4 | 11 |
여기서 1(-1)은 3의 자리 하나와 -1의 자리 하나를 합쳐 2를 나타내는 방식이다.
6. 왜 3진법이 이론적으로 효율적이라고 말하는가
어떤 진법이 효율적이라는 말은 같은 정보를 더 적은 비용으로 표현할 수 있다는 뜻이다. 숫자 N을 b진법으로 표현할 때 필요한 자리수는 대략 다음과 같다.
\log_b N
로그 변환을 하면 다음과 같다.
\log_b N = \frac{\ln N}{\ln b}
즉 진법 b가 커질수록 필요한 자리수는 줄어든다. 그러나 진법이 커지면 각 자리에서 구분해야 하는 기호의 수도 늘어난다. 2진법은 두 상태만 필요하지만, 10진법은 열 상태가 필요하다.
따라서 단순 모델에서는 비용을 다음처럼 볼 수 있다.
\text{cost}(b) \propto b \times \frac{1}{\ln b}
즉 효율 함수는 다음과 같이 정리된다.
f(b) = \frac{b}{\ln b}
이 함수를 최소화하면 최적 진법이 나온다.
7. 최적 진법이 e가 되는 이유
함수는 다음과 같다.
f(b) = \frac{b}{\ln b}
이를 미분하면 다음과 같다.
f'(b) = \frac{\ln b - 1}{(\ln b)^2}
최소 조건은 다음이다.
\ln b - 1 = 0
따라서
\ln b = 1
이고,
b = e
가 된다.
즉 수학적 단순 모델에서 최적 진법은 다음과 같다.
e \approx 2.718
하지만 실제 진법은 보통 정수여야 하므로, 정수 진법 중에서는 3진법이 e에 가장 가깝다. 그래서 3진법이 이론적으로 효율적인 진법이라고 말한다.
8. 중요한 보정: 이론적 효율과 현실적 효율은 다르다
여기서 주의해야 할 점이 있다. “3진법이 가장 효율적이다”라는 말은 조건부 명제이다. 이 말은 다음 전제 아래에서만 성립한다.
- 각 상태를 구분하는 비용이 동일하다.
- 노이즈가 없거나 무시 가능하다.
- 상태 구분이 완벽하다.
- 구현 비용이 상태 수에 단순 비례한다.
하지만 실제 전자 회로에서는 이 전제가 깨진다. 상태 수가 늘어나면 전압 구간이 좁아지고, 전압 구간이 좁아지면 노이즈에 더 취약해진다. 오류를 줄이기 위해 더 복잡한 회로와 보정 장치가 필요해지고, 그 결과 실제 비용은 단순히 b / ln b로 계산되지 않는다.
즉 현실의 비용 함수는 다음과 같지 않다.
\text{cost}(b) \neq \frac{b}{\ln b}
현실에서는 정보 밀도보다 물리적 안정성이 더 큰 변수로 작동한다.
9. 왜 3진 컴퓨터는 표준이 되지 못했는가
Setun은 3진 컴퓨터가 기술적으로 가능하다는 것을 보여주었다. 그러나 기술적으로 가능하다는 것과 산업 표준이 된다는 것은 다른 문제이다.
3진 컴퓨터가 널리 퍼지지 못한 이유는 다음과 같이 정리할 수 있다.
- 3개의 전압 상태를 안정적으로 구분해야 한다.
- 노이즈에 더 취약하다.
- 회로 설계와 제조가 복잡하다.
- 반도체 산업과 CPU 생태계가 2진 중심으로 굳어졌다.
- 대량 생산과 표준화에서 2진 시스템이 압도적으로 유리했다.
Setun 이후 후속 모델인 Setun-70도 만들어졌지만, 세계적인 컴퓨터 산업은 2진 시스템을 중심으로 표준화되었다.
10. 최종 정리
이 논의의 핵심은 “어떤 진법이 본질적으로 우월한가”가 아니라, 효율의 기준이 무엇인가이다.
| 기준 | 유리한 진법 |
|---|---|
| 추상적 정보 표현 효율 | 3진법 |
| 전자 회로 안정성 | 2진법 |
| 산업 표준화 | 2진법 |
| 금융·회계상의 10진 정확성 | 10진 기반 계산 |
따라서 다음처럼 정리할 수 있다.
이론적 최적: e ≈ 2.718
정수 진법 중 이론적 최적: 3진법
현대 컴퓨터의 현실적 최적: 2진법
특정 금융 계산의 실용적 선택: 10진 계산
결국 컴퓨터가 2진 부동소수점을 사용하는 이유는 단순히 수학 때문이 아니라, 물리적 구현의 안정성, 회로 단순성, 제조 비용, 산업 생태계가 결합된 결과이다.
수학적으로는 3진법이 흥미로운 가능성을 보여주지만, 전자공학적으로는 2진법이 가장 현실적인 선택이었다.