1 2 . čas pokretni zarez
DESCRIPTION
1 2 . čas Pokretni zarez. IEEE754-2008 ( dekadna osnova ). Standard IEEE 754-2008. Standard IEEE 754-2008 usvojen je avgusta 2008. godine. Zamenjuje prethodne verzije standarda IEEE 754 i IEEE 854 Standardnom se uvodi mogućnost zapisa brojeva pomoću dekadne osnove - PowerPoint PPT PresentationTRANSCRIPT
12. čas Pokretni zarez
IEEE754-2008 (dekadna osnova)
Standard IEEE 754-2008
Standard IEEE 754-2008 usvojen je avgusta 2008. godine.
Zamenjuje prethodne verzije standarda IEEE 754 i IEEE 854
Standardnom se uvodi mogućnost zapisa brojeva pomoću dekadne osnove
Dopune prethodnog standarda vezano za binarnu osnovu
Predstavljanje brojeva u dekadnoj osnovi
Softverski – brzina rada nije zadovoljavajuća jer se softver stara o zapisu brojeva i operacijama nad njima.
Hardverski BCD zapis (fiksni zarez – nedostaci su relativno
složeno izvođenje operacija, znatno sporije od binarne osnove)
Pokretni zarez (IEEE 754-2008) – trenutno samo neki od procesora hardverski podržavaju ovakav zapis (npr IBM z serija)
Zapis u registrima računara
Realne brojeve u dekadnoj osnovi u računaru treba zapisati u registre iste dužine kao i pri zapisu realnih brojeva u pokretnom zarezu pomoću binarne osnove.
Zapis treba da bude u obliku znak, frakcija i eksponent.
Zapis treba da bude moguć u jednostrukoj, dvostrukoj i četvorostrukoj tačnosti.
Zapis treba da omogući precizno zapisivanje dekadnih cifara bez konverzije
Zapis u registrima računara
Preciznost zapisa treba da bude uporediva sa preciznošću zapisa dekadnih brojeva pomoću binarne osnove.
Potrebno je primeniti kodiranje koje omogućuje zapisivanje svih potrebnih podataka u dovoljnoj tačnosti (u slučaju BCD kodiranja javlja se problem)
Treba predvideti zapis specijalnih vrednosti Definisati pravila za izvođenje operacija
Packed Decimal Encoding (PDP)
Mehanizam predstavljanja 3 dekadne cifre pomoću 10 bitova.
Dekadno kodiranje, Densely Packed Decimal (DPD) – IBM
Binarno kodiranje, Binary Integer Decimal (BID) – INTEL
Densely Packed Decimal kodiranje
Kodira 3 dekadne cifre u 10 bita20% efikasnije kodiranje od BCD zapisaDeli cifre na male (0-7) i velike (8-9) na
osnovu vrednosti prvog bita u BCD koduMale cifre zahtevaju tri bita za
predstavljanje, a velike jedan bit kako bi se međusobno razlikovale
Densely Packed Decimal kodiranje
Kodiranje razmatra svaku od kombinacija tri cifre: Sve tri cifre su male: potrebno je 10 bitova (3+3+3 za
cifre, 1 bit da označi ovu kombinaciju) Dve cifre su male: potrebno je 7 bitova za cifre (3+3+1);
preostala 3 bita označavaju kombinaciju Jedna cifra je mala: potrebno je 5 bitova za cifre
(3+1+1); preostalih 5 bitova označavaju kombinaciju Sve cifre su velike: potrebna su 3 bita za cifre (1+1+1);
preostalih 7 (mada je potrebno samo 5) označavaju kombinaciju
Brojevi
Brojevi mogu biti: Konačni Specijalne vrednosti
Brojevi su zapisani pomoću: Znaka broja (0 za pozitivne, 1 za negativne) Frakcije (zapisuje se kao celobrojna vrednost veća ili jednaka
nuli) eksponenta
U zavisnosti od komponenti, jedna ista vrednost može biti zapisana na različite načine!
Iz tog razloga, njegova reprezentacija ne mora da bude normalizovana.
Klase brojeva
Postoje iste klase brojeva kao i kod binarne osnove: Označena nula Subnormalni brojevi (denormalizovani brojevi) Normalni (normalizovani brojevi) Beskonačno NaN (tihi i signalni)
Napomene (DPD)
Kodiranje jedne ili dve dekadne cifre je uvek desno poravnato u grupi od 10 bitova, dok su ostali bitovi 0. Kodirane dekadne cifre se zato mogu zapisati u polju veće dužine dopunjavanjem nula sa leve strane, bez potrebe za ponovnim kodiranjem.
Svi brojevi u intervalu [0,79] se kodiraju desno poravnato na isti način kao u BCD (8421) kodu.
Šematski prikaz kodiranja
Cifre C1C2C3 zapisane u BCD zapisu (abcd)(efgh)(ijkm) postaju (pqr)(stu)(v)(wxy) gde je:
Šematski prikaz dekodiranja
Cifre (pqr)(stu)(v)(wxy) postaju (abcd)(efgh)(ijkm) koje predstavljaju BCD zapis cifara C1C2C3
Formati zapisa
Vrednost broja
Vrednost broja predstavljenog u pokretnom zarezu pomoću dekadne osnove se određuje na sledeći način: Ako su 5 bitova kombinacije u intervalu 00000-11101, u
pitanju je konačan broj. Ako su 5 bitova kombinacije jednaki 11110, vrednost
broja je ±∞, u zavisnosti od znaka broja. Ako su 5 bitova kombinacije jednaki 11111, vrednost
broja je NaN (SNaN ako je bit najveće težine polja NE jednak 1, inače QNaN).
Dekadno kodiranje
Dekadne cifre u nastavku frakcije kodirane su DPD algoritmom.
Dve cifre najveće težine eksponenta i cifra najveće težine frakcije određuju se na osnovu 5 bitova kombinacije.
Intervali brojeva
Primeri zapisa brojeva pomoću dekadnog kodiranja
Uporedni prikaz zapisa nekih brojeva pomoću binarne, heksadekadne i dekadne osnove
Uporedni prikaz zapisa nekih brojeva pomoću binarne, heksadekadne i dekadne osnove
Primer 1
Zapisati broj +123.4 u pokretnom zarezu pomoćcu dekadne osnove u jednostrukoj tačnosti, koristeći dekadno (DPD) kodiranje.
Rešenje: Broj koga treba zapisati predstavimo u obliku +1234*10−1. Vrednosti cifara u zapisu broja su:
1. Broj koga treba zapisati je pozitivan - znak broja je 0. 2. Frakcija broja je 1234. Dopunimo frakciju do maksimalnog broja
cifara za jednostruku tačnost (7). Dobijeni broj koga treba da kodiramo je 0001234. Kodiraju se 6 cifara manje težine u dva dekleta, dok se cifra najveće težine kodira u polju za kombinaciju. Primenom DPD kodiranja dobija se (npr. na osnovu tabele shematskog prikaza kodiranja):
0 0 1 2 3 4 Dekadni zapis abcd efgh ijkm abcd efgh ijkm 0000 0000 0001 0010 0011 0100 BCD zapis 000 000 0 001 010 011 0 100 DPD dekleti pqr stu v wxy pqr stu v wxy
Primer 1
3. Eksponent je jednak -1 i uz uvećanje 101 dobija se 100. Prevod dobijene vrednosti u binarni brojni sistem je 01100100. Odavde je nastavak eksponenta 100100, dok se prva dva bita 01 kodiraju u kombinaciji.
4. Kombinacija treba da kodira cifru 0 (cifra frakcije) i dva bita najveće težine eksponenta (binarne cifre 01). Kako je 0 cifra frakcije, na osnovu pravila za predstavljanje sledi da je kombinacija = 01000.
Odavde, zapis broja +123.4 je 0 01000 100100 0000 0000 0101 0011 0100
Primer 2
Primer 2: Zapisati broj -243/13 u pokretnom zarezu pomoću dekadne osnove u jednostrukoj
tačnosti, koristeći dekadno (DPD) kodiranje. Rešenje: Dobijeni količnik zapišimo pomoću 7 dekadnih cifara u
obliku znak, farkcija i eksponent. Kako je 243/13=18.69230769... pretpostavimo da je odabrano takvo
pravilo zaokruživanja da je rezultat zaokružen na 7 cifara jednak 18,69230 (primedba: i za zapis pomoću dekadne osnove važe ista pravila zaokruživanja!).
Broj koga treba zapisati predstavimo u obliku -1869230*10−5. Vrednosti cifara u zapisu broja su:
1. Broj koga treba zapisati je negativan → znak broja je 1. 2. Frakcija broja je 1869230. Kodiraju se 6 cifara manje težine u dva
dekleta, dok se cifra najveće težine kodira u polju za kombinaciju. Primenom DPD kodiranja dobija se (npr. na osnovu tabele shematskog prikaza kodiranja):
Primer 2
8 6 9 2 3 0 Dekadni zapis abcd efgh ijkm abcd efgh ijkm 1000 0110 1001 0010 0011 0000 BCD zapis 110 010 1 111 010 011 0 000 DPD dekleti pqr stu v wxy pqr stu v wxy
3. Eksponent je jednak -5, i uz uvećanje 101 dobija se 96. Prevod dobijene vrednosti u binarni brojni sistem je 01100000. Odavde je nastavak eksponenta 100000, dok se prva dva bita 01 kodiraju u kombinaciji.
4. Kombinacija treba da kodira cifru 1 (cifra frakcije) i dva bita najveće težine eksponenta (binarne cifre 01). Kako je 1 cifra frakcije, na osnovu pravila za predstavljanje sledi da je kombinacija = 01001.
Odavde, zapis broja -243/13 je 1 01001 100000 1100 1011 1101 0011 0000
Primer 3
Primer 3
Primer 4
Primer 4
Zadaci za vežbu
Zadaci za vežbu