컴퓨터에서 실수를 표현하는 방식은 고정 소수점(Fixed Point) 방식과 부동 소수점(Floating Point) 방식 두 가지가 존재한다.
🌟 가수부, 지수부
부동 소수점에서 가수부와 지수부는 숫자를 아주 효율적으로 표현하기 위해 사용하는 '과학적 표기법'의 구성 요소라고 생각하면 쉽다.
우리가 아주 큰 수를 쓸 때1.23 × 10^8처럼 쓰는 것과 같은 원리이다.
- 일상적인 예시로 이해하기
숫자 123.45를 부동 소수점 방식으로 표현해 보자.
- 표기 방식: 1.2345 × 10²
- 가수부(Mantissa):
1.2345→ 숫자의 실제 유효한 값들을 담당한다.- 지수부(Exponent):
2→ 소수점을 어디로, 얼마나 옮길지 결정하는 '크기(자릿수)'를 담당한다.이렇게 표현하면 소수점이 고정되지 않고 지수 값에 따라 앞뒤로 둥둥 떠다닐(Floating) 수 있게 된다.
- 컴퓨터 내부의 비트 구조
컴퓨터는 이 숫자들을 0과 1로 저장해야 하므로, 보통 32비트(float)를 다음과 같이 나누어 쓴다.
- 부호부 (1 bit): 0이면 양수(+), 1이면 음수(-)를 나타낸다.
- 지수부 (8 bits): 소수점의 위치를 결정한다. 이 값이 커질수록 숫자의 전체적인 크기(범위)가 커진다.
- 가수부 (23 bits): 숫자의 실제 정밀한 값을 저장한다. 이 비트가 많을수록 더 정확한(정밀도가 높은) 숫자를 표현할 수 있다.
- 왜 이렇게 나누어 쓸까?
이 방식의 가장 큰 장점은 표현 범위이다.
- 고정 소수점: 정해진 칸 안에 숫자를 다 적어야 해서, 아주 큰 수나 아주 작은 수를 적으려면 칸이 엄청나게 많이 필요하다.
- 부동 소수점: 지수부만 조절하면 소수점을 확 옮길 수 있어서, 적은 비트로도 엄청나게 큰 수나 미세한 소수점 아래 숫자까지 표현할 수 있게 된다.