실수의 표현
▶ 실수의 표현 방식
- 컴퓨터에서는 실수를 정수와 마찬가지로 2진수로만 표현해야 하기 때문에 실수를 표현하는 방법은 정수에 비해 훨씬 복잡합니다.
- 실수를 표현하기 위한 방식은 고정 소수점(fixed point) 방식, 부동 소수점(floating point) 방식으로 사용되고 있습니다.
▶ 고정 소수점(fixed point) 방식
- 실수는 정수부와 소수부로 나눌 수 있습니다.
- 실수를 표현하는 가장 간단한 방식은 소수부의 자릿수를 미리 정하여 고정된 자릿수의 소수를 표현한 것입니다.
- 32비트 실수를 고정 소수점 방식으로 표현하면 다음과 같습니다.
- 고정 소수점 방식의 단점은 정수부와 소수부의 자릿수가 크지 않으므로 표현할 수 있는 범위가 매우 적습니다.
▶ 부동 소수점(floating point) 방식
- 실수는 보통 정수부와 소수부로 나누지만, 가수부와 주수부로 나누어 표현할 수도 있습니다.
- 부동 소수점 방식은 이렇게 하나의 실수를 가수부와 지수부로 나누어 표현하는 방식입니다.
- 부동 소수점 방식은 아래와 같은 수식을 이용하여 매우 큰 실수까지도 표현할 수 있습니다.
※ ±(1.가수부)x2^(지수부-127)
- 현재 대부분의 시스템에서는 부동 소수점 방식으로 실수를 표현하고 있습니다.
▶ IEEE 부동 소수점 방식
- 현재 사용되고 있는 부동 소수점 방식은 대부분 IEEE 754 표준을 따르고 있습니다.
- 32비트의 float형 실수를 IEEE 부동 소수점 방식 표현
- 64비트의 double형 실수를 IEEE 부동 소수점 방식 표현
▶ 부동 소수점 방식의 오차
- 부동 소수점 방식을 사용하면 고정 소수점 방식보다 훨씬 더 많은 범위까지 표현할 수 있지만, 부동 소수점에 의한 실수의 표현은 항상 오차가 존재합니다.
- 부동 소수점의 방식에서의 오차는 앞서 살펴본 공식에 의해 발생합니다.
- 이 공식을 사용하면 표현할 수 있는 범위는 늘어나지만, 10진수를 표현할수 없게 되기 때문에 컴퓨터에서 실수를 표현하는 방법은 정확한 표현이 아닌 언제나 근사치를 표현뿐임을 항상 명심해야 합니다.
출처 : http://tcpschool.com/java/java_datatype_floatingPointNumber
'Programing > JAVA' 카테고리의 다른 글
JAVA Exercise (1) (0) | 2021.07.16 |
---|---|
Java Type (타입 변환) (0) | 2021.07.16 |
Java Type (기본 타입) (0) | 2021.07.15 |
Java Type (상수) (0) | 2021.07.15 |
Java Type (변수) (0) | 2021.07.15 |