Day 3. 컴퓨터에서 실수를 저장하는 방법

2023. 3. 7. 16:43Unknown

컴퓨터는 숫자를 2진수로 표현한다.

하지만 실수 중에 소수점이 무한한 실수가 존재한다.

ex)

10 / 3 = 3.333333333333..... 무한하게 소수가 존재

이 소수들도 저장을 해줘야 정확한 값이 된다.

하지만 소수의 끝도 모르는데, 어떻게 저장을 다 할 수 있을까 (컴퓨터 비트는 한정적)

 

BUT !

컴퓨터 비트수가 한정적이기때문에 무한한 실수를 그대로 표현할 수 없다.

따라서 컴퓨터에는 표현할 수 있는 가장 근사치 값이 저장된다.

 

컴퓨터에 실수를 저장할 수 있는 대안

 

1) 고정 소수점 표기법(fixed point notation)

뜻) 소수점 위치가 고정적이다. 

 

기준 :32bit(4byte)

 

각각 자리에 해당되는 값만 저장한다.

 

단점: 크고 정밀한 숫자를 저장하지 못한다. (= 범위가 작다)

         컴퓨터에서 잘 사용하지 않는 표기법

부호 / 정수 / 소수
1bit / 15bit / 16bit

 

 

2) 부동 소수점 표기법 (floating point notation)

뜻) 소수점 위치가 유동적으로 변할 수 있다 (떠다니면서 움직인다.)

 

표현법

 

부호 / 지수 / 가수
1bit / 8bit / 23bit
예시) 123.456 1.23456 * 10^2

부호 = + / - (양수면 0, 음수면 1)
지수 = 123456
가수  = 2 (10의 2제곱에서 2)
예시) 1234.56 1.23456 * 10^3

부호 = + / - (양수면 0, 음수면 1)
지수 = 123456
가수  = 3 (10의 3제곱에서 3)

 

특징)

 

> 고정 소수점 표기보다 더 정밀하고 큰 실수를 저장 할 수 있다.

> 소수점 연산은 정확히 할 수없다. (역시 근삿값으로 대체)

> 컴퓨터는 부동 소수점 IEEE 754를 주로 사용한다.

728x90

'Unknown' 카테고리의 다른 글

Day 6 공부  (0) 2023.03.10
Day 5 나머지 공부방  (0) 2023.03.09
백준 1427번  (0) 2023.03.09
Day2 나머지 공부방  (0) 2023.03.06
Day 1 나머지 공부방  (0) 2023.03.03