본문 바로가기
카테고리 없음

소수점 표현 (고정, 부동)

by Mujae98 2024. 8. 11.

컴퓨터에서 소수를 표현하는 것은 생각보다 어렵?다

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$