고정 소수점과 부동 소수점은 이진수만을 사용하는 컴퓨터에서 소수점이 포함된 실수를 표현하는 방식이다.
고정 소수점(Fixed Point)
-
소수점이 고정된 형태이다.
-
상위 1비트 부호비트(양수 0, 음수 1)와 정수부, 소수부로 구성된다.
-
16bit의 경우 부호비트 1bit, 정수부 7bit, 소수부 8bit로 구성된다.
-
표현법
- 정수부 - 2진수 변환 방법 사용
- 소수부 - 정수부의 반대(2를 곱해가면서 진행), 소수점부터 오른쪽으로 채워서 나머지는 0으로 채운다.
# 10.375 (결과는 위에서 아래로) 0.375 * 2 = 0.75 # 0 0.75 * 2 = 1.5 # 1 0.5 * 2 = 1 # 1 # 10.375 => 1010.011
부동 소수점(Floating Point)
-
고정 소수점 방식에 비해 더 다양한 범위의 숫자를 표현할 수 있으며 비트 수 대비 정밀도 측면에서 높기 때문에 대부분의 컴퓨터 시스템에서 사용한다. 그러나 근사값을 저장하기 때문에 정확하지는 않다.
-
표현 방식
대부분 언어에서 4byte float 형식이 32 bit를 따른다.
-
단정밀도(Single-Precision)
-
실수형 중 4byte float 형
-
32bit(부호-1bit, 지수부-8bit, 가수부-23bit)
-
지수부가 2^8 = 256개의 수 표현 가능, bias = 127
0~127 구간은 음수를, 128~255 구간은 양수를 표현한다.
-
-
배정밀도(Double-Precision)
-
실수형 중 8byte double 형
-
64bit(부호-1bit, 지수부-11bit, 가수부-52bit)
-
지수부가 2^11 = 2048개의 수 표현 가능, bias = 1023
0~1023 구간은 음수를, 1024~2047 구간은 양수를 표현한다.
-
-
4배정밀도 - 128bit(부호-1bit, 지수부-15bit, 가수부-112bit)
-
-
표현법
-
고정 소수점 방법을 이용하여 변환 후 정수부에 1만 남을 때까지 소수점을 왼쪽으로 이동(정수부가 0일 경우 오른쪽)
# 10.375 -> 1010.011 -> 1.010011 * 2^3 # 지수부 : 2, 가수부 : 010011
-
지수부
IEEE 754 표준을 따라 32비트를 사용하는 경우 bias=127을 더해서 사용한다.
지수부가 음수일 경우 ex) 2^-10 일 경우 127-10 = 117 -> 1110101 지수부가 양수일 경우 ex) 2^3 일 경우 127+3 = 130 -> 10000010
-