카테고리 없음

고정소수점 표현법

오감도축 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): 신호 처리에서 실시간으로 고정된 정밀도가 필요할 때 주로 사용됩니다.
  • 임베디드 시스템: 자원이 제한된 환경에서 부동소수점 연산을 피하고자 할 때 사용됩니다.
  • 게임 개발: 게임 물리 엔진 등에서 정확한 소수점 연산이 필요할 때 사용됩니다.

고정소수점 표현법은 정밀도와 성능을 고려해야 하는 상황에서 매우 유용한 방법입니다.