컴퓨터에서 소수를 표현하는 것은 생각보다 어렵?다
263.3 같은 숫자는 이진수로 표현했을 때 무한히 나아가기 때문이다.
그래서 이를 표현하는데 대표적으로 두 방식이 있다.
고정 소수점 표현
정수를 표현하는 비트와 소수를 표현하는 비트를 고정하는 방식
32bit를 예로 1은 부호, 15는 정수, 16은 소수 이런식
5.625 = $2^2*1+2^1*0+2^0*1$.$2^{-1}*1+2^{-2}*0+2^{-3}*1$ = 000000000000101.101000000000000
이 방식을 사용하면 실수를 표현하는 방식이 단순하여 속도가 빠르지만 표현할 수 있는 범위가 그만큼 줄어듦
부동 소수점 표현(IEEE 754) -> 여기서 부동의 부는 아닐 부가 아닌 뜰 부다. 직역하면 떠서 움직인다는.. 둥둥
$부호, 가수, 밑수^{지수}$
부동 소수점 표현에서는 정규화라는 것이 있음
이는 가수의 첫번째 자리수를 밑수보다 작은 한자리수로 만드는 것임.
왜 Why?
2진수를 예로 가수부분의 첫번째 자리가 밑수 2보다 작은 한자리수면 0이나 1인데 결국에 값이 있다면 제일 첫번째로 오는 수는 1이 되고
1이 고정이라면 이를 생략해서 소수 부분을 한 bit 더 표현 가능해짐.
이러한 이점으로 부동 소수점을 최근을 사용을 한다.
$5.625 = 101.101 = 1.01101*2^2$