16
CODE Ch 23

코드 Ch23

Embed Size (px)

Citation preview

CODE

Ch 23

Chapter 23

고정소수점과 부동소수점

숫자….?

일상 생활에서 정수, 분수, 퍼센트 같은 숫자들과 생활함

정수분수 간의 변환?

컴퓨터 메모리 상에선 간단하지 않다!

수의 범위?

복소수 = 실수 + 허수(음수의 제곱근)

실수 = 정수 + 유리수 + 무리수

정수 : 양의 정수 , 0 , 음의 정수

정수를 이진수로 표현할 때의 범위

유리수 : 두 수의 비율로 나타낼 수 있는 수

Ex) ¾ , 0.25, 42705.684

무리수 : 실수 중에서 유리수가 아닌 수

Ex) 파이, 루트2

파이 =

에서 n이 무한대로 늘어날경우 근사값

32비트를 이용해 양의 정수를 표현할 경우

4294967295 까지 표현 가능

4.5 의 경우? 다른 접근 방법이 필요 => BCD 사용

고정 소수점 형식

-4325120.25 를 BCD 표기법으로 표기할 경우

BCD 표기법 :

각 자리의 10진 숫자를 동등한 2진수

(4비트) 로 대체하여 표기하는 것

고정소수점 형식 : 소수점의 위치가 특정 위치로 고정되어 있음

장점 :

1) 소수점 이하 자릿수를 얼마든지 만들 수 있음

2) 하나의 컴퓨터 프로그램에서도 다양한 자리의

소수를 가지는 고정 소수점 수를 만들 수 있음

단점 :

1) 산술 연산이 일어나는 경우 소수점의 위치를 반드시 알아야 함

2) 수가 너무 크거나 작을 경우 저장 공간의 크기가 커짐

부동 소수점 형식

490,000,000,000 =

정규 형식이라고 부름

4.9 : 가수부

11 : 지수부 => 가수부에 있는 소수점이 얼마나 이동할 지 알려줌

부동소수점 형식을 컴퓨터에서 사용할 경우

이진수 101.1101 의 경우

십진수 5.8125

가수부는 1과 같거나 크며 10보다 작음

가수부에서 소수점 윗자리의 수는 항상 1

IEEE에서 발표한 부동 소수점 표준

단정도 :

e = 0, f = 0 => 0

e = 0, f != 0 => 정규화 되지 않은 경우

e = 255, f = 0 => 양수 혹은 음수 무한대

e = 255, f != 0 => 숫자가 아님 (NaN) 연산이 잘못되어서 알 수 없는 숫자

단정도 부동소수점 형식에서 나타낼 수 있는 가장 작은 수

단정도 부동소수점 형식에서 나타낼 수 있는 가장 큰 수

10자리 이진수를 대략 3자리 십진수와 비슷하다고 가정

단정도 형식은 24비트, 7자리 십진수 정도의 정밀도를 제공

24비트 정밀도?????????????

16777216 , 16777217 , 16777216.5

4B800000h 로 동일하게 저장

0 10010111 00000000000000000000000

다음으로 표시할 수 있는 가수 값은 16777218

정밀도를 높이기 위한 표준법 배정도

정밀도를 높였을뿐 가수부 소수부분을 넘어가면

어떤 숫자는 다른 숫자와 동일하게 저장될 수 있음

따라서 돈의 금액과 같이 정확도가 매우 중요한 값을 저장할 때는 고정소수점 사용

부동소수점 연산에 대한 연산 ? 정수에 대한 사칙연산으로 나누어짐

연산에 대한 속도를 높이기 위해 하드웨어에서 보조 프로세서 제공

The End…..