Reprezentacja Liczb w Ststemach Komputerowych Aneta Wozniak

Embed Size (px)

Citation preview

Reprezentacja liczb w systemach komputerowychWykad 7 i 8 dr in. Aneta Wiktorzak

A. WIKTORZAK WDI W_7

Reprezentacja liczb w systemach komputerowychReprezentacja liczb

Staoprzecinkowa

Zmiennoprzecinkowa

bez znaku

pojedynczej precyzji

ze znakiem

podwjnej precyzji

rozszezrzonej precyzji

Zapis zmiennoprzecinkowy liczb rzeczywistychZapis bardzo duych lub bardzo maych liczb w normalnej notacji pozycyjnej jest niewygodny, gdy wymaga duej iloci cyfr np. dwanacie bilonw 12 000 000 000 000 trzydzieci trylionw: 30 000 000 000 000 000 000 jedna bilionowa: 0,000 000 000 001 Znacznie prostsze jest przedstawienie powyszych liczb w postaci zmiennoprzecinkowej (ang. floating point numbers) 12 000 000 000 000 30 000 000 000 000 000 000 0,000 000 000 001 Powyszy zapis nazywamy take zapisem w postaci wykadniczej lub te notacj naukow

Zapis zmiennoprzecinkowy liczby rzeczywistejZapis liczby zmiennoprzecinkowej ma posta: gdzie: L warto liczby M - mantysa B podstawa systemu E wykadnika, cecha Przykad:

Zapis zmiennoprzecinkowy liczby rzeczywistej:Przykad:

Przykad:

Znormalizowany zapis liczb rzeczywistych Pooenie przecinka w mantysie nie jest ustalone i moe si zmienia. Ponisze zapisy oznaczaj t sam liczb: Dla ujednolicenia zapisu i usunicia wielokrotnych reprezentacji tej samej liczby, przyjto tzw. posta znormalizowan zapisu liczby, w ktrej mantysa spenia nierwno:- to jest posta znormalizowana, gdy: - to nie jest posta znormalizowana, gdy: - to nie jest posta znormalizowana, gdy:

Jak zapisa liczb w postaci zmiennoprzecinkowej?Przykad: zapisujemy mantys przy wykadnika rwnym zero normalizujemy mantys modyfikujc wykadnik liczby dodatkowo moe nastpi obcicie (ang. truncate) albo zaokrglenie (ang. round) mantysy do zadanej iloci cyfr: - obcicie: - zaokrglenie:

Liczby zmiennoprzecinkowe w systemie binarnym W praktycznych realizacjach zapisu liczb zmiennoprzecinkowych przyjmuje si ograniczony zakres na mantys i cech. Z powyszego powodu liczba w zapisie zmiennoprzecinkowym jest okrelona z pewn dokadnoci i moe wystpowa tylko w okrelonym zakresie. Zakodowana liczba zmiennoprzecinkowa ma posta:

Warto liczby obliczana jest ze wzoru: gdzie: L warto liczby S znak liczby (ang. sign), przyjmuje warto 0 lub 1 M - znormalizowana mantysa (ang. mantissa), liczba uamkowa B podstawa systemu liczbowego ( ang. base) E wykadnika (ang. exponenet), cecha, liczba cakowita.

Liczby zmiennoprzecinkowe w systemie binarnym W systemie binarnym podstawa systemu jest staa: B=2 W binarnym systemie zmiennoprzecinkowym M, B i E zapisane s binarnie, a podstawa B jest zawsze rwna 2. Z racji, e podstawa jest zawsze znana, do zapisania dwjkowej liczby zmiennoprzecinkowej wystarczy podanie wartoci M i E oraz sposobu ich kodowania.

Przykad 1Zamy, e operujemy nastpujcym zmiennopozycyjnym formatem zapisu liczby rzeczywistej: na zapis przeznaczamy 8 bitw, najstarszy bit, to bit znaku, kolejne 3 to mantysa, ostatnie 4 to cecha. Warto staej KC przyjmujemy rwn 7. Mona te zauway, e nie trzeba pamita znaku cechy jeeli przyjmie si nastpujc notacj

gdzie KC jest sta zalen od konkretnej implementacji. W tej sytuacji ujemny wykadnik wystpi gdy warto cechy bdzie mniejsza od zadanej staej. Innym podejciem jest zapamitanie cechy w postaci liczby w systemie uzupenie do dwu (U2), wtedy w sposb naturalny omijamy problem znaku.

Przykad 2

Tym razem bdziemy operowali 8-mio bitowych dwjkowych liczbach zmiennoprzecinkowych (FP), w ktrych 4 najstarsze bity s przeznaczone na zapis cechy w kodzie U2, pozostae 4 bity s przeznaczone na zapis mantysy rwnie w kodzie U2. Przyjmiemy te, e mantysa jest liczb staoprzecinkow (w kodzie U2) z dwoma miejscami po przecinku.

Zakres liczb zmiennoprzecinkowych Wzr L(FP) = M* 2E przyjmuje warto maksymaln dla maksymalnej cechy i maksymalnej mantysy.Cecha przyjmie warto maksymaln dla kodu: 0111(U2) = 7(10) Mantysa najwiksz warto przyjmie dla kodu: 01,11(U2) = 13/4 = 7/4 Zatem max(FP) = 7/4* 27 = 7/4* 128 = 7 * 32 = 224

Warto najmniejsz uzyskamy dla maksymalnej cechy i minimalnej mantysy.Cech maksymaln: 0111(U2) = 7(10) Minimaln mantys reprezentuje kod: 10,00(U2) = -2(10) Zatem min(FP) = -2 * 27 = -2 * 128 = -256

Std wszystkie liczby reprezentowane przez nasz kod (U2) zawieraj si w przedziale: Z(FP) = -256 ... 224

Dokadno reprezentacji zmiennoprzecinkowej

Powysza tabela zawiera wszystkie wartoci, jakie moe reprezentowa zmiennoprzecinkowy kod przeznaczajcy po 4 bity na zapis cechy i mantysy w kodzie U2 (w mantysie dwa miejsca s po przecinku). S to JEDYNE liczby maszynowe, czyli liczby jakie przy tej reprezentacji mona dokadnie zapisa w komputerze. Pozostae liczby wymierne s wyraane z pewnym przyblieniem poprzez wykorzystanie liczb maszynowych.

Nadmiar i niedomiar Naley zwrci uwag, e liczb maszynowych w okolicy zera jest stosunkowo wiele, a im dalej od zera tym rzadziej si one pojawiaj (inaczej ni przy reprezentacji staoprzecinkowej, gdzie poszczeglne liczby maszynowe byy od siebie rwno oddalone). W reprezentacji zmiennoprzecinkowej nadmiarem nazywamy sytuacj, gdy liczba jest tak dua (co do moduu), e nie zawiera si w przedziale liczb reprezentowalnych, a niedomiarem sytuacj, gdy liczba jest tak maa (co do moduu), e musi by reprezentowana przez zero.

Zamy, e liczba skada si z: m cyfr mantysy n+1 cyfr wykadnika (n- cyfr wartoci i 1 cyfry znaku) 1 cyfry znaku caej liczby

Wartoci minimalne i maksymalne: wykadnik:

mantysa:

W takim przypadku najmniejsza i najwiksza warto moliwa do zapisania w tej reprezentacji wynosz:

Zakres liczb, ktre mog by reprezentowane w danym zapisie:

Zero jest wartoci specjaln, ktra nie jest bezporednio reprezentowana w tym zapisie. Zazwyczaj istniej take inne wartoci specjalne, ktre s reprezentowane w inny sposb, np. Nie wszystkie liczby rzeczywiste mona przedstawi za pomoc zapisu zmiennoprzecinkowego

Przesunicie wykadnikaW celu uniknicia kodowania znaku wykadnika jest on zapisywany jako warto przesunita o pewn sta (ang. biased exponent) zapis wykadnika z nadmiarem, z przesunitym wykadnikiem. Waciwa warto wykadnika otrzymuje si poprzez odjcie od zakodowanego wykadnika wartoci przesunicia (ang. bias). Warto liczby zmiennoprzecinkowej oblicza si zatem ze wzoru: gdzie: L warto liczby S znak liczby M - mantysa E wykadnik BIAS przesunicie (nadmiar) Typowe wartoci przesunicia wynosz: dla formatu 32 bitowego: dla formatu 64-bitowego:

Podsumowanie Zapis zmiennoprzecinkowy liczb rzeczywistych Znormalizowany zapis liczb rzeczywistych Liczby zmiennoprzecinkowe w systemie binarnym Zakres liczb zmiennoprzecinkowych Dokadno reprezentacji zmiennoprzecinkowej Nadmiar i niedomiar Arytmetyka liczb zmiennoprzecinkowych

Dzikuj za uwagwww.aneta_wiktorzak.republika.pl [email protected]

A. WIKTORZAK WDI W_7 i 8