코드 ch23

16
CODE Ch 23

Upload: ukjin-kwoun

Post on 12-Jul-2015

249 views

Category:

Documents


1 download

TRANSCRIPT

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…..