데브허브 | DEVHUB | [컴퓨터는 왜 부정확할까?] 04. Floating Point Representation (부동 소수점 방식)[컴퓨터는 왜 부정확할까?] 04. Floating Point Representation (부동 소수점 방식)
- 부동 소수점 방식은 소수점 위치를 고정하지 않고 움직여서 매우 크거나 작은 수를 표현하는 방법입니다. 🌊
- 핵심 아이디어는 숫자를 가수(유효 숫자)와 지수(소수점 위치)로 나누어 표현하는 것입니다. 💡
- 정규화(Normalization) 과정을 통해 모든 숫자를
1.xxxx * 2^n 형태로 통일하여 일관성을 유지합니다. 📏
- IEEE 754 표준은 부동 소수점 표현 방식을 정의하며, 이는 크로스 플랫폼 환경에서 결과의 일관성을 보장합니다. 🌍
- 표준 구조는 부호 비트(s), 가수(m), 지수(e)로 구성되며, 지수에는 바이어스(bias)가 더해져 저장됩니다. ➕➖🔢📈
- 5.7과 같은 십진수는 이진수로 변환 시 무한 소수가 되어, 제한된 비트 수로 인해 절단 오차가 발생하여 부정확성이 생깁니다. ✂️
- 단정도(Single Precision, 32비트)는 그래픽이나 센서 데이터에, 배정도(Double Precision, 64비트)는 과학, 통계, 금융, 머신러닝 등 높은 정밀도가 필요한 분야에 사용됩니다. 🎮🔬
- 현대 프로그래밍 언어(Python, JavaScript 등)는 대부분 기본적으로 64비트 배정도 실수를 채택하여 개발 편의성을 높이고 있습니다. 🚀
- 부동 소수점은 고정 소수점보다 넓은 표현 범위와 높은 정밀도를 제공하지만, 연산 속도가 느리고 하드웨어 자원 소모가 크다는 단점이 있습니다. 🐢
- 고정 소수점은 저전력 임베디드 시스템에 적합하며, 부동 소수점은 일반 컴퓨터 및 과학 연산에 주로 활용됩니다. 🔋🧠