happy coding

[c] 실수의 표현 본문

self study/언어의 기본부터

[c] 실수의 표현

yeoonii 2022. 11. 30. 17:11
TCP school 을 보고 정리한 내용입니다.

실수의 표현 방식

실수를 표현하는 방법은 정수에 비해 훨씬 복잡한데, 컴퓨터에서는 실수를 정수와 마찬가지로 2진수로만 표현해야 하기 때문이다. 따라서 실수를 표현하기 위한 다양한 방법들이 연구되었으며, 1. 고정 소수점 방식 2. 부동 소수점 방식 이 사용되고 있다.

고정 소수점 (fixed point) 방식

실수는 보통 정수부와 소수부로 나눌 수 있는데, 이것을 이용해 소수부의 자릿수를 미리 정해 놓고, 고정된 자릿수로 소수를 표현하는 방식을 사용할 수 있다.

32 비트 실수를 고정 소수점 방식으로 표현

하지만 이 방식은 정수부와 소수부의 자릿수가 크지 않으므로, 표현할 수 있는 범위가 매우 적다는 단점이 있다.

부동 소수점 (floating point) 방식

실수는 보통 정수부와 소수부로 나눌 수도 있고, 가수부와 지수부로 나누어 표현할 수도 있다. 부동 소수점 방식은 이렇게 하나의 실수를 가수부와 지수부로 나누어 표현하는 방식이다. 위에서 말한 고정 소수점 방식은 제한된 자릿수로 인해 표현할 수 있는 범위가 매우 작지만 부동 소수점 방식은 다음 수식을 사용해 매우 큰 실수까지도 표현할 수 있게 된다.

IEEE 부동 소수점 방식

32 비트의 float 형 실수를 IEEE 부동 소수점 방식으로 표현
64 비트 double 형 실수를 IEEE 부동 소수점 방식으로 표현

부동 소수점 방식의 오차

부동 소수점 방식은 고정 소수점 방식보다 훨씬 더 많은 범위까지 표현할 수 있지만, 항상 오차가 존재한다는 단점을 가지고 있다. 위의 공식을 사용하면 표현할 수 있는 범위는 늘어나지만, 10진수를 정확하게 표현할 수 없게 된다. 따라서 컴퓨터에서 실수를 표현하는 방법은 정확한 표현이 아닌 언제나 근사치를 표현할 뿐이다.

'self study > 언어의 기본부터' 카테고리의 다른 글

[python] 입출력함수와 주석  (1) 2022.12.24
[python] python에 대해  (0) 2022.12.24
[c] 음수의 표현  (0) 2022.11.30
[c] 비트 단위 연산  (0) 2022.11.30
[c] 바이트 저장 순서  (0) 2022.11.30
Comments