728x90
고정 소수점과 부동 소수점은 이진수만을 사용하는 컴퓨터에서 소수점이 포함된 실수를 표현하는 방식이다.
고정 소수점(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 - 지수부지수부가 음수일 경우
ex) 2^-10 일 경우 127-10 = 117 -> 1110101
지수부가 양수일 경우
ex) 2^3 일 경우 127+3 = 130 -> 10000010 - IEEE 754 표준을 따라 32비트를 사용하는 경우 bias=127을 더해서 사용한다.
- 고정 소수점 방법을 이용하여 변환 후 정수부에 1만 남을 때까지 소수점을 왼쪽으로 이동(정수부가 0일 경우 오른쪽)# 10.375 -> 1010.011 -> 1.010011 * 2^3
728x90
'백엔드' 카테고리의 다른 글
[Javascript] Javascript Date → Java LocalDate/LocalDateTime 변환 오류 (0) | 2021.08.12 |
---|---|
[Error 해결법] Spring Boot - https to http redirect 에러 (0) | 2021.08.06 |
[Network] RestAPI, Restful이란? (1) | 2021.07.12 |
[Java] Overloading과 Overriding 공통점과 차이점 (0) | 2021.07.11 |
JPA란? (Spring Boot + JPA 환경설정 및 사용법) (0) | 2020.03.18 |
댓글