MI-AAK(Aritmetika a kódy) Pohyblivářádováčárka c doc. Ing. Alois Pluháček, CSc., 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Evropský sociální fond Praha& EU: Investujeme do vaší budoucnosti
A5. pohyblivá řádová čárka definice základní operace normalizovaný tvar přeplnění a nenaplnění zaokrouhlování čísel bez znaménka na nejbližší hodnotu čísel se znaménkem zobrazení mezivýsledků(bity G, R a S) skrytá jednička IEEE Std 754-2008 MI-AAK c A. Pluháček 2011
pohyblivá řádová čárka definice pohyblivá řádová čárka A (M, E) = A=M z E [floating-point] M mantisa [significand, mantissa] řádová čárka zpravidla mezi 1. a 2. číslicí mantisy, popř. mezi 1. a 2. číslicí její absolutní hodnoty E exponent nebo charakteristika[exponent, characteristic] vždy celé číslo (proč?) z základ(báze) použité soustavy z=2 nebo z=2 i anebo z=10 mantisaiexponent nějakýkód(přímý,doplňkový,...) kódy mohou být stejné anebo různé uvědomíme si: znaménko A = znaménko M pohyblivá řádová čárka tzv. semilogaritmický tvar čísla např.1,23 10 4 MI-AAK A5 1 c A. Pluháček 2011
základní operace operace(sčítání,odčítání,násobenínebodělení) F(X) obrazčísla Xvpohyblivéřádovéčárce A B C F(A) (M A, E A ) F(B) (M B, E B ) (M A, E A ) (M B, E B ) (M C, E C ) (M C, E C ) F(C) MI-AAK A5 2 c A. Pluháček 2011
základní operace ii násobení: M A z EA M B z E B = M A M B z E A+E B (M A, E A ) (M B, E B ) (M A M B, E A +E B ) dělení: (M A z E A ) /(M B z E B )=M A /M B z E A E B (M A, E A ) /(M B, E B ) (M A / M B, E A E B ) sčítáníaodčítání: (M A z E ) ±(M B z E )=M A ±M B z E (M A, E A ) ±(M B, E B ) (M A, E) ±(M B, E) (M A ± M B, E) MI-AAK A5 3 c A. Pluháček 2011
normalizovaný tvar! Algoritmy operací je třeba upravit tak, aby se neztrácela přesnost, pokud to není nezbytně nutné!! zjednodušení algoritmů normalizovaný tvar normalizovaný tvar mantisu již nelze posunout doleva bude dále předpokládán!!! Výsledek každé operace nutno normalizovat! normalizovaný tvar nuly: mantisa = 0 exponent nejmenší možný MI-AAK A5 4 c A. Pluháček 2011
základní operace ii předpoklad: normalizovaný tvar sčítání: E A E B E = E A M A = M A M B = M B (E A E B ) E A < E B E = E B M A = M A (E B E A ) M B = M B odečítání: analogicky násobení: M A 1,2), M B 1,2) M A M B 1,4) dělení: M A 1,2), M B 1,2) M A /M B 1 2,2) porovnávání: E A > E B A > B MI-AAK A5 5 c A. Pluháček 2011
přeplnění a nenaplnění problém přeplnění dílčí operace: V některých případech lze přeplnění dílčí operace (zejm. operace s mantisami) předejít úpravou(posuvem) jedné z mantis nebo rozšířením řádové mřížky. Jindy lze přeplnění dílčí operace dodatečně eliminovat náležitě upravit. Úpravy je třeba náležitě kompenzovat změnou příslušného exponentu. výsledek nelze kompenzovat ani jinak vhodně upravit (atedyanizapsatdodanéřádovémřížky): přeplnění(přetečení)[overflow] příliš velký exponent příliš velká absolutní hodnota výsledku nenaplnění(podtečení)[underflow] exponent záporný s příliš velkou absolutní hodnotou výsledekseblížíknule(alenenítonula) MI-AAK A5 6 c A. Pluháček 2011
zaokrouhlování čísel bez znaménka(nezáporných čísel) zaokrouhlování dolů: A A m... oříznutína mmístzačárkou A m A < A m + ε, kde A m jecelistvýnásobek ε(jednotkyř.m.) př.: ε=0,001 3,141925. =3,141 = 3,141925 3 3,141025. =3,141 = 3,141025 3 zaokrouhlování nahoru: A A m A ε m < A A m, kde A m jecelistvýnásobek ε(jednotkyř.m.) př.: ε=0,001 3,141925. =3,142 = 3,141925 3 3,141025. =3,142 = 3,141025 3 MI-AAK A5 7 c A. Pluháček 2011
zaokrouhlování na nejbližší hodnotu zaokrouhlování na nejbližší hodnotu: { A m, je-li A A m + ε/2 A A m, je-li A A m + ε/2 př.: 3,141925. =3,142 3,141025. =3,141 Pod pojmem zaokrouhlování (bezpřívlastku dolů či nahoru ) se obvykle rozumí zaokrouhlování na nejbližší hodnotu. Co,kdyžje A = A m + ε/2? př.: 3,142500. = { 3,142 3,143? MI-AAK A5 8 c A. Pluháček 2011
zaokrouhlování na nejbližší hodnotu ii zaokrouhlování s preferencí většího čísla: { A m, je-li A A A m + ε/2 A m, je-li A > A m + ε/2 pak: A A+ε/2 m př.:3,141500. =3,142 = 3,141500+0,000500 3 3,142500. =3,143 = 3,142500+0,000500 3 zaokrouhlování s preferencí sudé číslice: A m, je-li A < A m + ε/2 A A m, je-li A= A m + ε/2aplatí(*) A m, je-li A= A m + ε/2aplatí(*) A m, je-li A > A m + ε/2 (*)... potomtozaokrouhleníbudeposledníčíslicesudá př.:3,141500. =3,142 3,142500. =3,142 MI-AAK A5 9 c A. Pluháček 2011
zaokrouhlování čísel se znaménkem aplikace, kombinace a modifikace předchozích způsobů: zaokrouhlování (nanejbližšíhodnotu) { spreferencívětšíhočísla s preferencí sudé číslice zaokrouhlování: směremk směremk+ směrem k nule směrem od nuly MI-AAK A5 10 c A. Pluháček 2011
zobrazení mezivýsledků(bity G, R a S) X... správnýmezivýsledek(můžemítaž míst) Y... dálepoužitáčástmezivýsledku,ato s případným použitím bitů: G [Guard] R [Round] S [Sticky] Bity G, RaSse(podleokolnosti)použijí vdalšídílčíoperacinebo pro úpravu výsledku(normalizace a zaokrouhlení). MI-AAK A5 11 c A. Pluháček 2011
skrytá jednička předpoklady: Obrazy čísel jsou normalizované. Mantisa Mjevpřímémkódu. důsledky: M 0 MSB( M )=1 Bit,kterýjevždyroven1,jezbytečnézapisovata zezápisusevypustí. skrytájednička problém: M=0 řešení: nulu zobrazit jinak(použít jinou reprezentaci) vizdále(a5 15) MI-AAK A5 12 c A. Pluháček 2011
IEEE Std 754-2008 princip skryté jedničky příklad dvojkový formát 32 bitů 8b E+127 24b ± M dvojkováčárka(pro Mipro E) 8b 23b S7 G 0-1 T -23 dvojkováčárkapro GiT Příklad: 5,5 10? 5,5 10 =101,1 2 =(1,011 10) 2 T=0,011000...000 2 G=(127+2) 10 =10000001 2 obrazčísla 5,5 10 : 110000001011000...000 2 = =1100000010110000... 0000 2 = =C0B00000 16 MI-AAK A5 13 c A. Pluháček 2011
IEEE Std 754-2008 ii dvojkové formáty uspořádání řádové mřížky jako u formátu 32 bitů standardně: mantisa přímý kód exponent aditivníkódtypu1 g početbitůvčásti G t početbitůvčásti T K=2 g 1 1 základní formáty: 32 bitů, 64 bitů, 128 bitů dalšíformáty:16bitů, kbitů,kde k=32 i 128,ajiné formát g t přesnost K= E max 16 bitů 5 10 11 b 15 32 bitů 8 23 24 b 127 64bitů 11 52 53b 1023 128bitů 15 112 113b 16383 MI-AAK A5 14 c A. Pluháček 2011
A zobrazenéčíslo F(A) obrazčísla A nulaajiné zvláštnosti IEEE Std 754-2008 iii G=0...0 2 ( 1) S T 2 K+1 G=1...1 2 a T=0 ( 1) S G=1...1 2 a T 0 NaN jinak (viza5 13) ( 1) S (1+T) 2 G K { 000...000 F(A)= A=±0 100...000 A ± přeplnění limita (např.5/0=+ ) NaN[NotaNumber] výsledeknelzeurčit(anipomocí ) (např.0/0=nan) MI-AAK A5 15 c A. Pluháček 2011
IEEE Std 754-2008 iv desítkovéformáty A=M 10 E Exponent E je zapsán dvojkově. Mantisa M může být zapsána dvojkově nebo desítkově(s použitím komprese). Obraz čísla nemusí být normalizován. Řádovémřížkyjerozdělenačásti S, GaT obdobnějako udvojkovýchformátů,alepřevodčástí GaTna Ea M je značně komplikovaný základní formáty: 64 bitů, 128 bitů dalšíformáty:32bitů, kbitů,kde k=32 i 128,ajiné formát g t přesnost E max 32bitů 11 20 24b/7číslic 96 64bitů 13 50 54b/16číslic 384 128bitů 17 110 114b/34číslic 6144 MI-AAK A5 16 c A. Pluháček 2011