Day 3. 컴퓨터에서 실수를 저장하는 방법
2023. 3. 7. 16:43ㆍUnknown
컴퓨터는 숫자를 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 |