부동소수점이란 실수를 표현할 때 소수점의 위치를 고정하지 않는것이다.
[고정소수점]
123.456
을 고정 소수점으로 표현한다면 123
과 456
을 나눠서 표현해야 하기 때문에 정수 부분과 소수 부분을 분할해 배치해야 한다. 이로인해 나타낼 수 있는 범위가 한정적이게 된다.
[2진법과 부동소수점]
-9.6875
를 2진법으로 나타내기 위해서 부호, 정수, 소수로 나눠보자.
[정규화]
정규화: 정수부를 1로 맞추고 적절하게 소수점 위치를 조정하는 것
-1001.1011(2) → -1.0011011×2³
부호부: 음수
지수부: 3
가수부: 0011011
float: [ 부호부 1Bit | 지수부 8bit | 가수부 23Bit ]
double: [ 부호부 1Bit | 지수부 11bit | 가수부 52Bit ]
double은 float에 비해 실수부를 표현하는 크기가 커져 상대 오차가 작아짐