고정소수점과 부동소수점은 컴퓨터에서 실수를 표현하는 두 가지 방법입니다. 이 두 가지 방법은 각각의 장단점이 있으며, 특정 용도에 따라 적합한 방법이 다릅니다. 아래에서 이 두 가지 개념을 자세히 설명하겠습니다.
고정소수점(Fixed-Point)
고정소수점은 소수점의 위치가 고정되어 있는 형태로, 정수와 소수 부분을 고정된 비율로 나누어 표현합니다. 예를 들어, 8비트로 표현할 경우, 4비트는 정수 부분, 나머지 4비트는 소수 부분으로 할당할 수 있습니다. 이 경우 표현할 수 있는 값의 범위는 다음과 같습니다.
- 최대 값: 2^(정수 비트 수) - 1 (예: 4비트 정수 부분의 경우 15)
- 최소 값: -(2^(정수 비트 수)) (예: 4비트 정수 부분의 경우 -16)
장점:
- 정확성: 고정된 소수점 위치로 인해 계산 시 정밀도가 높습니다.
- 연산 속도: 하드웨어적으로 구현이 간단하여 연산 속도가 빠릅니다.
단점:
- 범위 제한: 표현할 수 있는 값의 범위가 제한적입니다. 특히 소수 부분의 정밀도가 떨어질 수 있습니다.
- 유연성 부족: 다양한 크기의 수치를 표현하기 어려워 특정 용도에 맞춰야 합니다.
부동소수점(Floating-Point)
부동소수점은 소수점의 위치가 가변적인 형태로, 숫자를 지수와 가수의 곱으로 표현합니다. IEEE 754 표준에 따라 일반적으로 사용되는 포맷은 단정도(32비트)와 배정도(64비트)입니다.
장점:
- 넓은 범위: 매우 큰 수와 작은 수를 모두 표현할 수 있어 범위가 넓습니다.
- 유연성: 다양한 크기의 수치를 표현할 수 있어 다양한 계산에 적합합니다.
단점:
- 정확도 손실: 소수점 이하의 값이 근사치로 표현되기 때문에 정확성이 떨어질 수 있습니다.
- 연산 속도: 고정소수점에 비해 연산이 복잡하여 속도가 느릴 수 있습니다.
결론
고정소수점과 부동소수점은 각각의 용도에 따라 선택할 수 있습니다. 고정소수점은 주로 정밀도가 중요한 제어 시스템이나 임베디드 시스템에서 사용되며, 부동소수점은 과학적 계산이나 그래픽 처리와 같이 범위가 넓고 유연한 수치 표현이 필요한 분야에서 주로 사용됩니다. 각각의 특성을 이해하고 적절한 상황에 맞춰 사용하는 것이 중요합니다.
이 글이 고정소수점과 부동소수점의 차이와 개념을 이해하는 데 도움이 되길 바랍니다!
이런 자료를 참고했어요.
[1] 티스토리 - 컴퓨터에서의 실수 표현: 고정소수점 vs 부동소수점 (https://gsmesie692.tistory.com/94)
[2] 티스토리 - 고정소수점과 부동소수점 - 컴퓨터과학/공학 (https://jiminish.tistory.com/81)
[3] 티스토리 - 고정 소수점과 부동 소수점의 오차 알아보기 - 더기 (https://dev-monkey-dugi.tistory.com/163)
[4] 티스토리 - 고정소수점과 부동소수점의 이해 (https://hwangameinformation.tistory.com/m/4)