카테고리 없음
고정소수점 표현법
오감도축
2024. 8. 11. 03:10
.
고정소수점(Fixed-Point) 표현법은 실수를 표현하는 방법 중 하나로, 소수점의 위치가 고정된 상태로 숫자를 표현하는 방식입니다. 이 방법은 부동소수점 표현법에 비해 연산이 빠르고 간단하며, 주로 임베디드 시스템, DSP(디지털 신호 처리), 게임 개발 등에서 사용됩니다.
1. 고정소수점 표현법의 기본 구조
고정소수점 표현법에서는 주어진 숫자를 두 부분으로 나눕니다:
- 정수 부분: 소수점의 왼쪽에 있는 숫자 부분.
- 소수 부분: 소수점의 오른쪽에 있는 숫자 부분.
소수점의 위치는 고정되어 있으며, 일반적으로 정해진 비트 수 내에서 정수 부분과 소수 부분을 나눕니다.
예를 들어, 16비트 고정소수점 형식에서 8비트는 정수 부분을, 나머지 8비트는 소수 부분을 나타낼 수 있습니다. 이 경우, 소수점은 8비트 뒤에 고정됩니다.
2. 고정소수점 수의 표현
- Q 형식: 고정소수점 수를 나타내는 일반적인 방식으로, Q포맷이라고도 합니다. Qm.n 형식으로 표현되며, 여기서 m은 정수 부분의 비트 수, n은 소수 부분의 비트 수를 나타냅니다.
예를 들어:
- Q8.8: 8비트 정수 부분과 8비트 소수 부분을 가지는 고정소수점 표현입니다. 이 경우, 숫자는 ±127.99609375의 범위를 가질 수 있습니다.
- Q16.16: 16비트 정수 부분과 16비트 소수 부분을 사용합니다. ±32767.999984741의 범위를 가질 수 있습니다.
3. 고정소수점의 변환
고정소수점 수를 표현하거나 변환하기 위해, 소수 부분을 정수처럼 처리합니다. 예를 들어, Q8.8 형식에서 1.5를 표현하려면, 1을 8비트 정수로, 0.5를 8비트 소수로 변환합니다.
- 1.5는 정수 부분이 1이고, 소수 부분이 0.5입니다.
- 1은 이진수 00000001이고, 0.5는 이진수 10000000입니다.
- 이를 결합하면, 00000001 10000000가 됩니다. 이는 16비트 정수로 384(10진수)로 변환됩니다.
4. 고정소수점의 장단점
장점:
- 연산 속도: 부동소수점에 비해 덧셈, 뺄셈, 곱셈 등의 연산이 빠릅니다.
- 단순성: 하드웨어 구현이 간단하고, 정밀도를 제어하기 쉽습니다.
- 예측 가능성: 소수점의 위치가 고정되어 있어 정밀도와 범위를 쉽게 예측할 수 있습니다.
단점:
- 정밀도 제한: 소수점의 위치가 고정되어 있어 표현할 수 있는 범위와 정밀도가 제한됩니다.
- 범위 제한: 소수 부분이 클수록 정수 부분의 범위가 줄어들어 매우 큰 수를 표현하기 어렵습니다.
5. 고정소수점 사용 사례
- 디지털 신호 처리(DSP): 신호 처리에서 실시간으로 고정된 정밀도가 필요할 때 주로 사용됩니다.
- 임베디드 시스템: 자원이 제한된 환경에서 부동소수점 연산을 피하고자 할 때 사용됩니다.
- 게임 개발: 게임 물리 엔진 등에서 정확한 소수점 연산이 필요할 때 사용됩니다.
고정소수점 표현법은 정밀도와 성능을 고려해야 하는 상황에서 매우 유용한 방법입니다.