uvod u racunarstvo, predstavljanje brojeva

14
Predstavljanje brojeva u računaru (sa primerima) Mr Martin Jovanović, asistent Elektronskog fakulteta u Nišu 1.1. Celobrojni podaci (integer) ____________________________________________ 3 1.1.1. Standardne situacije sa integerom ____________________________________________ 3 1.1.2. Granični slučajevi integera __________________________________________________ 5 1.2. Fixed-point format ___________________________________________________ 6 1.3. Floating-point format _________________________________________________ 7 1.3.1. Floating-point jednostruke tačnosti ___________________________________________ 7 1.3.2. Primeri za FP jednostruke tačnosti ____________________________________________ 9 1.3.3. Granični slučajevi za FP jednostruke tačnosti __________________________________ 10 6.1.1. Floating-point dvostruke tačnosti ____________________________________________ 12 6.1.2. Primeri za FP dvostruke tačnosti ____________________________________________ 13 6.1.3. Granični slučajevi za FP dvostruke tačnosti ____________________________________ 14 6.2. Kompleksni brojevi (tip complex) ______________________________________ 14 Verzija: 11.12.2010.

Upload: greedyf00x

Post on 22-Nov-2015

83 views

Category:

Documents


12 download

DESCRIPTION

Prezentacija iz uvoda u racunarstvo.

TRANSCRIPT

  • PPrreeddssttaavvlljjaannjjee bbrroojjeevvaa uu rraauunnaarruu ((ssaa pprriimmeerriimmaa)) Mr Martin Jovanovi, asistent Elektronskog fakulteta u Niu

    1.1. Celobrojni podaci (integer) ____________________________________________ 3 1.1.1. Standardne situacije sa integerom ____________________________________________ 3 1.1.2. Granini sluajevi integera __________________________________________________ 5

    1.2. Fixed-point format ___________________________________________________ 6

    1.3. Floating-point format _________________________________________________ 7 1.3.1. Floating-point jednostruke tanosti ___________________________________________ 7 1.3.2. Primeri za FP jednostruke tanosti ____________________________________________ 9 1.3.3. Granini sluajevi za FP jednostruke tanosti __________________________________ 10 6.1.1. Floating-point dvostruke tanosti ____________________________________________ 12 6.1.2. Primeri za FP dvostruke tanosti ____________________________________________ 13 6.1.3. Granini sluajevi za FP dvostruke tanosti____________________________________ 14

    6.2. Kompleksni brojevi (tip complex) ______________________________________ 14

    Verzija: 11.12.2010.

  • Elektronski fakultet u Niu Katedra za raunarsku tehniku i informatiku Uvod u raunarstvo Raunske vebe

    Mr Martin Jovanovi 2

    O verzijama POZIVAJU SE SVI ITAOCI DA O UOENIM GREKAMA OBAVEZNO OBAVESTE AUTORA U NAJKRAEM ROKU! [email protected]

    22.11.2004. Ispravljena tea tamparska greka predstavljanje najmanjeg pozitivnog

    broja u pokretnom zarezu. Hvala studentima koji su uoili i prijavili tu greku. Rad od ovog trenutka smatram "recenziranim" od strane studenata.

    20.11.2004. Ispravke tamparskih greaka. Stilske promene. Nije recenzirana. 18.11.2004. Prva verzija. Kompletna. Nije recenzirana. 15.10.2007. Na strani 11, kod dela "Najmanji pozitivan broj", stajalo je "a poto je broj

    negativan, s=1", a broj nije negativan i s je 0. Ispravio sam.

  • Elektronski fakultet u Niu Katedra za raunarsku tehniku i informatiku Uvod u raunarstvo Raunske vebe

    Mr Martin Jovanovi 3

    PPrreeddssttaavvlljjaannjjee bbrroojjeevvaa uu rraauunnaarruu ((ssaa pprriimmeerriimmaa))

    U ovom delu bie prikazani primeri standardnih naina predstavljanja numerikih podataka u raunaru, kao i odgovarajua uvodna objanjenja.

    Numeriki podaci se dele u sledee kategorije: celobrojni (integer), i razlomljeni, koji se dele na

    o podatke u fiksnom zarezu (fixed point), i o podatke u pokretnom zarezu (floating point), koji mogu biti

    jednostruke, ili dvostruke tanosti.

    11..11.. CCeelloobbrroojjnnii ppooddaaccii ((iinntteeggeerr))

    11..11..11.. SSttaannddaarrddnnee ssiittuuaacciijjee ssaa iinntteeggeerroomm

    Celobrojni podaci se, u standardnom formatu, predstavljaju kao binarna dvostruka re (doubleword), odnosno u vidu niza od 32 binarne cifre. Ova reprezentacija broja odgovara jednoj memorijskoj lokaciji 32-bitnog raunara (moderni raunari).

    Pozicije cifara broje se sa desna u levo i to poevi od nule. Dakle: krajnja desna cifra ima poziciju 0, pa prva levo od nje poziciju 1 itd, dok krajnje leva cifra ima poziciju 31 (vidi sliku).

    31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    Krajnja leva pozicija (31-va) je podebljana. Ova pozicija ima posebnu

    funkciju, i ne uestvuje u predstavljanju smog broja. Ona nosi znak broja. Znak je, naravno, predstavljen (kodiran) takoe binarnom cifrom, jer u memorijsku lokaciju nije mogue upisati plus ili minus, ve samo binarnu cifru: 0 ili 1.

    Integer je u optem sluaju oznaen, osim ako se drugaije ne naglasi (postoji i neoznaena varijanta koja se u programskim jezicima naziva "unsigned integer"). Ukoliko bi broj bio neoznaen, to nas ovde ne zanima, sve binarne cifre uestvovale bi u njegovoj reprezentaciji. Tada bi opseg moguih vrednosti bio od 0 (u svim pozicijama nule) do 232-1 (sve jedinice). To je ukupno 232 razliitih vrednosti, taman koliko ima i moguih kombinacija od 32 nule i jedinice.

    Meutim realan sluaj je: poslednja ("najtea") pozicija slui da sadri informaciju o znaku broja, a ostalih 31 slui da predstavi sm broj (njegovu apsolutnu vrednost, ako emo precizno). Samim tim, suen je i opseg (apsolutnih vrednosti) brojeva koji se mogu predstaviti na ovakav nain, ali je zato omogueno predstavljanje i negativnih brojeva.

    Broj predstavljen na ovaj nain stoji u potpunom komplementu. To znai da je, ukoliko je pozitivan, on u nepromenjenom obliku, pri emu je na

  • Elektronski fakultet u Niu Katedra za raunarsku tehniku i informatiku Uvod u raunarstvo Raunske vebe

    Mr Martin Jovanovi 4

    poziciji znaka NULA, koja oznaava da je broj pozitivan. Ovo je takoe i matematiki ispravno, jer ispred svakog broja moe se upisati proizvoljan broj nula, te se ovo moe gledati i na taj nain. Ukoliko je broj negativan, u poziciji znaka stoji... ta?

    Logino je da stoji jedinica, i lako je zapamtiti napamet da nula oznaava pozitivan broj a jedinica negativan, ali uenje napamet treba izbegavati u ovoj struci. Ono to valja zapamtiti je sledee: negativan broj, kao i pozitivan, stoji u potpunom komplementu, dakle formira se po pravilima formiranja potpunog komplementa. A kod potpunog komplementa, kao to znamo, minus se zamenjuje najveom cifrom brojnog sistema (to je kod binarnog 1), te zato kod negativnih brojeva jedinica stoji u poziciji znaka.

    Zapravo samo pamtimo da je re o potpunom komplementu, a takoe moramo da pamtimo i kako se taj komplement formira, a ostalo su samo posledice.

    1.1.1.1 Primeri:

    1. Na standardni nain predstaviti broj 73842.

    Reenje: Prvo treba da prevedemo broj u binarni brojni sistem:

    i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

    xi

    73842

    36921

    18460

    9230

    4615

    2307

    1153

    576

    288

    144

    72

    36

    18

    9 4 2 1 0

    yi 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 0 1

    Setimo se da se rezultat ita sa desna na levo, dakle binarna varijanta

    broja 73842 je: 10010000001110010.

    Onda ga jednostavno upiemo u 32-bitnu lokaciju: 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0

    2. Na standardni nain predstaviti broj -32711.

    i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

    xi

    32711

    16355

    8177

    4088

    2044

    1022

    511

    255

    127

    63

    31

    15

    7 3 1 0

    yi 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1

    Binarna varijatna pozitivnog broja 32711 je 111111111000111. Unesimo to u memorijsku lokaciju:

    31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1

  • Elektronski fakultet u Niu Katedra za raunarsku tehniku i informatiku Uvod u raunarstvo Raunske vebe

    Mr Martin Jovanovi 5

    Nepotpuni komplement broja:

    31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0

    Potpuni komplement broja i konano reenje:

    31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1

    11..11..22.. GGrraanniinnii sslluuaajjeevvii iinntteeggeerraa

    Granini sluajevi su najmanje i najvee mogue vrednosti, i to vai za bilo koju reprezentaciju broja. Poto je i nula karakteristian sluaj, i nju emo podvesti od ovo.

    Kod integera je situacija najprostija. Pokazae se posle da su granini sluajevi kod realnih brojeva (floating-point) za nijansu komplikovaniji.

    Integer poznaje sledee granine sluajeve: 1. nulu, 2. najmanji pozitivan broj, 3. najvei pozitivan broj, 4. najmanji (po modulu) negativan broj i 5. najvei (po modulu) negativan broj.

    Nula se reprezentuje kao niz nula, ukljuujui i znak.

    31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    Ovo se moe interpretirati i na ovaj nain: poto je (pre predstavljanju

    nule) u poziciji znaka nula, to zapravo (predstavljena) nula uzima jednu kombinaciju od skupa kombinacija rezervisanih za pozitivne brojeve. Nula "skrauje" opseg pozitivnih brojeva za jedan. Zato opseg pozitivnih ide od 1 do 231-1, a ne skroz do 231.

    Najmanji pozitivan celi broj je 1. To je sasvim prosto. Nula u

    znaku, sve nule, samo jedinica u poziciji najmanje teine.

    31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

    Najvei pozitivan broj to su sve same jedinice u delu za zapis

    broja, a nula ostaje u poziciji znaka. To je broj 231-1, odnosno 2147483647.

    31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

  • Elektronski fakultet u Niu Katedra za raunarsku tehniku i informatiku Uvod u raunarstvo Raunske vebe

    Mr Martin Jovanovi 6

    Najmanji (po modulu) negativan broj je -1. Hajde da doemo do njegovog oblika, korak po korak. Pozitivan broj 1 bio bi: 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

    Njegov nepotpuni komplement je: 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0

    A njegov potpuni komplement (dodajemo 1 u poziciju najmanje teine): 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

    Ovo je najmanji (po modulu) negativni broj koji se moe predstaviti na standardni nain (-1 u potpunom komplementu).

    Najvei (po modulu) negativan broj je -231. Doimo opet do njega

    postupno. Pozitivna varijanta (+231) izgledala bi ovako (zaboravimo za trenutak da je pozicija 31 rezervisana za znak, zamislimo da je slobodna): 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    Nepotpuni komplement od ovoga je: 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

    A potpuni kompelemt (dodamo jedinicu u nultu poziciju): 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    Ovo je po modulu najvei negativan broj koji se moe predstaviti u standardnom integer formatu.

    Ovim su predstavljene sve mogue varijante predstavljanja integera u

    standardnom formatu za internu reprezentaciju u raunaru. itaocu su predoena dva sluajna primera, pozitivan i negativan, kao i svi granini sluajevi. Preporuuje se itaocu da sam sebe testira odreenim skupom proizvoljnih primera.

    11..22.. FFiixxeedd--ppooiinntt ffoorrmmaatt

    Ovaj format predstavlja jednostavniju varijantu reprezentacije razlomljenih brojeva. U njemu se tano (i uvek) zna broj "decimalnih" mesta1. Zato se ovi brojevi zovu brojevi u fiksnom zarezu (fixed point), jer zarez ne menja svoje mesto.

    U optem sluaju fixed point izgleda ovako:

    n-1

    n-2... . . . . . . . . . . . . . . . . . . . . . . . ...0 -1....... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ......-m

    0 0 0 0 0 \ \ 0 0 0 0 0 0 0 0 0 0 0 0 \ \ 0 0 0 0 0 0 0 0 0 0 1

    1 PANJA: to su zapravo binarne "decimale", a izraz "decimale" koristim da bih slikovitije opisao o emu se radi. Preciznije reeno, to su razlomljene pozicije u binarnom BS.

  • Elektronski fakultet u Niu Katedra za raunarsku tehniku i informatiku Uvod u raunarstvo Raunske vebe

    Mr Martin Jovanovi 7

    Broj pozicija za celi deo (n-1, odnosno n ukljuujui i poziciju za znak) i broj pozicija za razlomljeni deo (iza zareza), nisu u optem sluaju odreeni, i odreuje ih programer kada definie tip podataka koje koristi u programu. U svakom sluaju mora biti m+n=32.

    Ovaj format je banalno jednostavan, i za njega nee biti raeni primeri. Od studenta se oekuje da zna kako format uopteno izgleda (gornja slika).

    11..33.. FFllooaattiinngg--ppooiinntt ffoorrmmaatt

    Daleko ozbiljniji (i kompleksniji) format za prikazivanje realnih brojeva je format u pokretnom zarezu. Ime formata potie odatle to broj razlomljenih pozicija (iza zareza) moe biti razliit, pa kao da zarez "pliva", odnosno "pluta" levo-desno od broja do broja.

    Ve je reeno da postoji dve varijante ove reprezentacije: 1. brojevi u pokretnom zarezu jednostruke tanosti, i 2. brojevi u pokretnom zarezu dvostruke tanosti. Kod obe ove varijante princip je isti, samo se razlikuje broj bitova koji

    su u igri, pa se samim tim razlikuje i opseg, ali i preciznost. Prvo e biti obraena varijanta u jednostrukoj tanosti, a zatim e biti date razlike koje postoje kod dvostruke.

    11..33..11.. FFllooaattiinngg--ppooiinntt jjeeddnnoossttrruukkee ttaannoossttii

    I kod jednostruke i kod dvostruke tanosti osnovna ideja za format broja je sledea: prikazati broj u eksponencijalnoj formi! A eksponencijalna forma broja je ovakva:

    R=smBE

    s znak broja

    R realni broj

    m mantisa2

    B osnova brojnog sistema

    E eksponent.

    Primer za ovo, u dekadnom brojnom sistemu, bio bi recimo -3.56106.

    U smislu predstavljanja u raunaru, to bi praktino znailo sledee: Jedan bit (i to krajnji levi) se rezervie za znak broja, kao i u prethodnim sluajevima. Oznaka: s (kao sign, odnosno znak). Ostatak (31 bit) se podeli na dva dela:

    jedna grupa bitova se proglasi eksponentom, a ostatak bitova se proglasi tzv. normalizovanom mantisom.

    Pre nego to preemo na konkretni izgled formata, moramo na

    naglasimo tri stvari: format mantise, format eksponenta i predstavljanje negativnog broja. Ovi formati su malo komplikovaniji nego to na prvi pogled izgleda.

    2 Ko je zaboravio: mantisa je ime za ono to se die na eksponent.

  • Elektronski fakultet u Niu Katedra za raunarsku tehniku i informatiku Uvod u raunarstvo Raunske vebe

    Mr Martin Jovanovi 8

    Format mantise: jedan deo mantise se, prilikom raunanja vrednosti zapisa broja, podrazumeva. Konkreno, mantisa uvek izgleda ovako:

    fffffffffm .......1

    Ovo znai da se uvek podrazumeva jedinica ispred take (panja: ona jedinica je BINARNA, kao i sve cifre!!!). Ostale binarne cifre (fff...fff) to su one cifre koje zaista stoje u memoriji (u delu za mantisu).

    Ba iz tog razloga: to u toj grupi bitova koji su odreeni za mantisu, ne stoji cela mantisa, nego samo njen razlomljeni deo (onaj koji se ne podrazumeva), ta grupa bitova se obeleava sa f (i cifre sa fffffff...fff), to vue koren od engleske rei fraction (razlomak). Znai u f delu stoji razlomljeni deo mantise.

    Ovakav izgled mantise naziva se "normalizovani". O formatu eksponenta: problem sa eksponentom je zapravo znak

    eksponenta, koji je posebna pria. Umesto da se za njega koristi potpuni komplement, to bi bila komplikacija (a i jedan bit eksponenta bi morao da ide na njegov znak, ime bi ionako uzak prostor za eksponent bio "skraen" za jedan bit), eksponent je organizovan na sledei nain.

    Uveden je tzv. pomeraj (engl. offset), u vrednosti od 127 dekadno, koji se uvek oduzima od prave vrednosti koja stoji u zoni eksponenta, kada se vrednost eksponenta rauna. Samim tim: ako u zoni eksponenta stoji 00000001 (dekadno 1) rauna se da je eksponent zapravo -126 dekadno.

    Sluaj eksponenta 00000000 je poseban sluaj, koji e biti objanjen posle, i zbog toga nije naveden za primer.

    A ukoliko eksponent, na primer, treba da bude 0, onda e u zoni eksponenta stajati 01111111 (to je 127 dekadno).

    Ako pak u zoni eksponenta stoji 10000000 (128 dekadno), rauna se da je eksponent +1 dekadno.

    Eksponent iz gornjeg izraza (obeleen velikim slovom E, zapravo ima vrednost e-127, gde je sa malo e obeleena vrednost u zoni eksponenta). Realni eksponent (u oznaci veliko E) i zona za eksponent u zapisu broja (u oznaci malo e) stoje u sledeem odnosu, dakle:

    E=e-127 Izraz za vrednost broja mogao bi se, dakle, napisati ovako:

    R=s(1.ffffff)2e-127

    Format negativnog broja nije potpuni komplement, kao to je to bio

    sluaj sa integerom. Ovde nema nikakve razlike u zapisu pozitivnog i negativnog broja, osim bita u poziciji znaka (pozicija 31), koji je 0 za pozitivne, odnosno 1 za negativne brojeve.

  • Elektronski fakultet u Niu Katedra za raunarsku tehniku i informatiku Uvod u raunarstvo Raunske vebe

    Mr Martin Jovanovi 9

    Konano, evo i konkretnog izgleda floating point-a u jednostrukoj tanosti: s e (exponent) f (fraction, razlomak)

    31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    Krajnja leva pozicija nosi znak broja. Od pozicije 30 do 23 je deo za

    eksponent broja, a od pozicije 22 do 0-te pozicije je deo za razlomljeni deo mantise (f).

    11..33..22.. PPrriimmeerrii zzaa FFPP33 jjeeddnnoossttrruukkee ttaannoossttii

    Primer 1: Predstaviti u standardnom floating-point formatu jednostruke tanosti broj: 5.8871953125103.

    Reenje: Postupak je sledei: 1. U dekadnom sistemu prvo uklonimo eksponent, tako da dobijemo

    isto razlomljeni broj: 5.8871953125103=5887.1953125 2. Prevedemo ovaj broj u binarni brojni sistem na nain koji smo ve

    nauili (posebno celi deo, posebno razlomljeni, pa ih spojimo). Rezultat treba da bude: (5887.1953125)10=(1011011111111.0011001)2

    3. Sada ovaj broj "normalizujemo", odnosno svodimo ga na normalizovani oblik mantise. To znai da taku treba toliko da pomerimo ulevo, da nam ispred take ostane samo jedna jedinica. Kako pomeramo taku u levo, tako nam raste eksponent....

    1011011111111.0011001=101101111111.1001100121 1011011111111.0011001=10110111111.11001100122 1011011111111.0011001=1011011111.111001100123 1011011111111.0011001=101101111.1111001100124 1011011111111.0011001=10110111.11111001100125 itd... i konano: 1011011111111.0011001=1.0110111111110011001212

    4. Poto smo mantisu sveli na normalizovani oblik, ono to je desno od take e ispuniti f-zonu u formatu broja: f=01101111111100110010000. PANJA: prevoenjem u binarni sistem pa normalizacijom dobili smo 19 cifara iza take, a standardni format za to podrazumeva 23 pozicije. Dobijeni razlomljeni binarni broj dopunimo s desne strane nulama, to je i matematiki ispravno. Te nule su podebljane.

    5. Eksponent je dekadno +12. Ali to je realni eksponent, ono veliko E iz izraza, a nama treba ono to ulazi u e-zonu formata broja. Setimo se da kod raunanja eksponenta postoji onaj pomeraj (offset) u vrednosti od 127. Dakle realni eksponent i onaj koji je upisan u memoriju stoje u odnosu (respektivno):

    3 FP Floating-Point

  • Elektronski fakultet u Niu Katedra za raunarsku tehniku i informatiku Uvod u raunarstvo Raunske vebe

    Mr Martin Jovanovi 10

    E=e-127 odnosno (ono to nama treba):

    e=E+127 e=12+127=139

    Ovo e se fiziki upisuje u memoriju, u zonu za eksponent (139); zapravo ne bukvalno 139, nego njegov binarni ekvivalent:

    (139)10 = (10001011)2. Dakle imamo sledeu sitaciju:

    s=0 nula, broj je pozitivan e=10001011 polje za "eksponent" f=0110111111110011001 polje za "mantisu"

    6. Preostaje nam samo da "napunimo" nau zamiljenu memorijsku

    lokaciju, ime dobijamo konano reenje: 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    0 1 0 0 0 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 0 0 0

    Primer 2: Predstaviti u standardnom floating-point formatu

    jednostruke tanosti broj: -3.051757812510-5. Reenje: pa radimo iste korake. Eventualne razlike u odnosu na

    prethodni sluaj e biti naglaene. 1. U dekadnom sistemu prvo uklonimo eksponent, tako da dobijemo

    isto razlomljeni broj: -3.051757812510-5=-0.000030517578125. 2. Prevedemo ovaj broj u binarni brojni sistem na nain koji smo ve

    nauili (posebno celi deo, posebno razlomljeni, pa ih spojimo). (-0.000030517578125)10=(-0.000000000000001)2

    3. Normalizujemo ovo: (-0.000000000000001)2=1.02-15

    4. Bie: f=00000000000000000000000 (jer desno od take je 0) 5. Eksponent:

    E=-15 e=E+127=112

    (112)10=(01110000)2 e=01110000

    6. Konano reenje (poto je broj negativan, znak e biti 1): 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    Na ovom primeru jasno se vidi da se negativnost broja obeleava samo

    tako to se u 31-vu poziciju stavi jedinica.

    11..33..33.. GGrraanniinnii sslluuaajjeevvii zzaa FFPP jjeeddnnoossttrruukkee ttaannoossttii

    Kod floating-point brojeva postoje sledei granini sluajevi: 1. najvei pozitivan broj 2. najmanji pozitivan broj 3. nula 4. namanji (po modulu) negativan broj

  • Elektronski fakultet u Niu Katedra za raunarsku tehniku i informatiku Uvod u raunarstvo Raunske vebe

    Mr Martin Jovanovi 11

    5. najvei (po modulu) negativan broj 6. specijalni sluajevi.

    Najvei pozitivan broj bio bi:

    R+max=+mmax2

    Emax

    Potrebno je da mantisa bude najvea mogua, kao i eksponent

    (pozitivan i najvei mogui). Znak broja je pozitivan, dakle s=0. mmax=1.111....1 pa je: f=11111111111111111111111. Emax=+127 Odavde sledi da je emax=Emax+127=254 Dakle: emax=11111110. Zato e ne ide do 11111111 (255)? Zato to je vrednost za eksponent

    255 slubena, i kada to stoji u eksponentu to spada u specijalne sluajeve (vidi dalje u tekstu).

    Konano: 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

    Najmanji pozitivan broj bio bi: R+min=+mmin2

    -Emax. Dakle mantisa treba da je to manja, a eksponent treba da ode to vie u minus.

    Minimalna mantisa: mmin=1.000...0 dakle f=000000.....00. Poto je broj (kao celina) pozitivan, znak s=0. -Emax=-126. -emax=-Emax+127=1=(00000001)2. Konano:

    31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    Nula: sve su nule.

    31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    To je lako zapamtiti. Meutim postoji neto naizgled nelogino. Poto po normalizovanom formatu mantisa ipak ima tu jednu podrazumevanu jedinicu (faktiki ona je 1.000..0), a eksponent je praktino 127 (jer E=e+127, a e je 00000000), to bi trebalo da je krajnji rezultat:

    1.02127

    Zbog toga, prema standardu, vrednost 00000000 u eksponentu se ne

    smatra matematikom nulom (koja bi prouzrokovala da pravi eksponent bude 127), nego rezervisanom, slubenom vrednou, predvienom da oznai da trenutni zapis ima vrednost 0. Da bi broj bio interpretiran kao nula, ne samo da mora da bude 0 u e-zoni, nego i sve nule u f-zoni, inae nastaje jedan drugi specijalan sluaj ("denormalizovana mantisa"), videti dalje u tekstu.

  • Elektronski fakultet u Niu Katedra za raunarsku tehniku i informatiku Uvod u raunarstvo Raunske vebe

    Mr Martin Jovanovi 12

    Najmanji po modulu negativan broj: R-modmin=-mmin2-Emax. Dakle

    njemu treba mantisa da bude minimalna, i da mu eksponent maksimalno ide u minus, da bi sama apsolutna vrednost bila to minimalnija.

    mmin=1.0000.0 f=00000000000000000000000

    -Emax=-126 -emax=-Emax+127=1 emax=(00000001)2 Znak s=1 za negativan broj. Konano reenje:

    31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    Najvei po modulu negativan broj: R-modmax=-mmax2

    Emax. Dakle mantisa treba da bude najvea mogua, i eksponent treba maksimalno da ide u plus, i naravno u poziciji za znak treba da stoji 1.

    mmax=1.1111...1 f=1111111111111111111111

    Emax=127 emax=127+127=254 emax=(11111110)2 s=1 Konano reenje:

    31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

    Specijalni sluajevi nastaju kada eksponent ima neke rezervisane

    vrednosti, a to su 255 (11111111) i 0 (00000000). Kada ima jednu od te dve vrednosti, vrednost broja se ne rauna na klasian nain. Evo koji sluajevi mogu da nastanu (u zavisnosti od eksponenta i od f-polja):

    1. e=255 (tj. 11111111) a. f0 sluaj "NaN" ("Not a Number"), slui u nekim

    specijalnim situacijama kada se tom memorijskom lokacijom, koja je, recimo, predviena da prikae floating point broj, treba predstaviti neki nenumeriki podatak

    b. f=0 ova kombinacija slui za predstavljanje situacije , kada negde, grekom ili ne, doe do deljenja nulom. Da li je + ili - to odreuje znak s (31-va pozicija), kao i za normalne brojeve.

    2. e=0 (tj. 00000000) a. f0 za predstavljanje tzv. "denormalizovane" mantise. U

    tom sluaju, prilikom raunanja vrednosti broja, umesto da se za mantisu podrazumeva 1.fff...f, podrazumevae se 0.fffffff...f, a uz to e i offset u eksponentu biti 126.

    b. f=0 za predstavljanje nule.

    66..11..11.. FFllooaattiinngg--ppooiinntt ddvvoossttrruukkee ttaannoossttii

    Ovde je apsolutno sve isto kao kod jednostruke, sa tom razlikom to se za ovaj format odvaja 64 bita (dve dvostruke rei), tako da na raspolaganju imamo duplo vie bitova.

    Evo kako to izgleda:

  • Elektronski fakultet u Niu Katedra za raunarsku tehniku i informatiku Uvod u raunarstvo Raunske vebe

    Mr Martin Jovanovi 13

    s e f ....... i u sledeem redu...

    63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    .... se nastavljaju f-bitovi, tj. razlomljena mantisa.

    31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    Dakle imamo: - 11 bitova za eksponent, i - 52 bita za razlomljeni deo mantise. Poveanje broja bitova za eksponent daje vei opseg moguih

    vrednosti, dok poveanje broja bitova za razlomljeni deo mantise omoguava zapis brojeva sa mnogo vie razlomljenih cifara, odnosno sa mnogo veom preciznou (zato se ovaj tip i naziva tip sa dvostrukom tanou, odnosno na engleskom double precision floating point type).

    Pomeraj eksponenta (offset) se sada menja, u skladu sa poveanjem broja bitova za eksponent, i sada iznosi 1023.

    Formula za raunanje vrednosti broja je sada:

    R=s(1.ffffffffffffffffffffffffffffffffffffffffffffffffffff)2e-1023

    66..11..22.. PPrriimmeerrii zzaa FFPP ddvvoossttrruukkee ttaannoossttii

    U standardnom floating-point formatu dvostruke tanosti predstaviti broj:

    -1209845399.7154541015625 Reenje:

    Postupak je potpuno isti kao u sluaju floating-point-a u jednostrukoj tanosti, samo to je razliit broj bitova i za eksponent, i za mantisu, i razliit je pomeraj (offset) pri raunanju prave vrednosti eksponenta. Primer e biti reen istim koracima kao i primeri za jednostruku tanost.

    1. U prvom koraku smo, u dekadnom sistemu, uklanjali eksponent, tako da dobijemo isto razlomljeni broj. Ovde je ve dat takav oblik broja, tako da prvi korak preskaemo.

    2. Prevedemo ovaj broj u binarni brojni sistem na nain koji smo ve

    nauili (posebno celi deo, posebno razlomljeni, pa ih spojimo). (-1209845399.7154541015625)10=(-101000000111001100011010010111.1011011100101)2

    3. Normalizujemo ovo: -1.010000001110011000110100101111011011100101229

    4. Bie:

    f=0100000011100110001101001011110110111001010000000000

  • Elektronski fakultet u Niu Katedra za raunarsku tehniku i informatiku Uvod u raunarstvo Raunske vebe

    Mr Martin Jovanovi 14

    Broj je s desne strane dopunjen nulama kako bi imao ukupno 52 cifre.

    5. Eksponent: E=29

    e=E+1023=1052 (1052)10=(10000011100)2

    e=10000011100 6. Konano reenje (poto je broj negativan, znak e biti 1):

    63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32

    1 1 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 1 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    0 1 0 0 1 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0

    66..11..33.. GGrraanniinnii sslluuaajjeevvii zzaa FFPP ddvvoossttrruukkee ttaannoossttii

    Granini sluajevi za FP dvostruke tanosti su identini kao oni kod jednostruke, uz, naravno, opisane razlike. Da bi se ilustrovala ova analogija, ovde e biti dat opis specijalnih sluajeva kod dvostruke tanosti. Podebljane su jedine razlike koje postoje u odnosu na jednostruku tanost.

    1. e=2047 (tj. 11111111111) c. f0 sluaj "NaN" ("Not a Number"), slui u nekim

    specijalnim situacijama kada se tom memorijskom lokacijom, koja je, recimo, predviena da prikae floating point broj, treba predstaviti neki nenumeriki podatak

    d. f=0 ova kombinacija slui za predstavljanje situacije , kada negde, grekom ili ne, doe do deljenja nulom. Da li je + ili - to odreuje znak s (31-va pozicija), kao i za normalne brojeve.

    2. e=0 (tj. 00000000000) e. f0 za predstavljanje tzv. "denormalizovane" mantise. U

    tom sluaju, prilikom raunanja vrednosti broja, umesto da se za mantisu podrazumeva 1.fff...f, podrazumevae se 0.fffffff...f, a uz to e i offset u eksponentu biti 1022.

    f. f=0 za predstavljanje nule.

    66..22.. KKoommpplleekkssnnii bbrroojjeevvii ((ttiipp ccoommpplleexx))

    Kompleksni broj se pamti kao dva broja, jedan za realni deo (Re) a drugi za imaginarni (Im). I za jedan i za drugi obino se koristi floating-point format, u jednostrukoj ili dvostrukoj tanosti, zavisno od konkretnog problema. Ovo je sve to se oekuje da student upamti o kompleksnom formatu u okviru ovog kursa.