Liczby zmiennoprzecinkowe, Algorytmy

[ Pobierz całość w formacie PDF ]
Liczbyzmiennoprzecinkowe
1Liczbyzmiennoprzecinkowe
Najprostszymsposobemreprezentowanialiczbrzeczywistychby“abyreprezentacjasta“opozy-
cyjna:zak“adamy,»emamynbit
ó
wnaczƒ–¢ca“kowit¡orazmnaczƒ–¢u“amkow¡.Wad¡
takiegorozwi¡zaniajeststosunkowoniewielkiprzedzia“,zkt
ó
regoliczbymo»emyreprezentowa¢:
czƒstopodczasoblicze«u»ywamyzar
ó
wnowarto–cibardzodu»ychjakiibardzoma“ych.Dlatego
wkomputerachprzechowujesiÆ’liczbyrzeczywistewpostacizmiennoprzecinkowej(ang.
oating
point):mb
e
.Pamiƒtamyosobnoznak,mantysƒmorazwyk“adnike.Podstawabjest
ustalona(zazwyczaj2)iniejestjawnieprzechowywana.
Wkonkretnejreprezentacjinamantysƒiwyk“adnikprzeznaczones¡odpowiednie,ustalone
liczbybit
ó
w.Zatempotra
myreprezentowa¢sko«czon¡liczbƒwarto–ci.Imd“u»szamantysa,
ztymwiƒksz¡dok“adno–ci¡mo»emyreprezentowa¢liczby.Zkoleiimd“u»szywyk“adnik,tym
wiƒkszyprzedzia“zjakiegoliczbypotra
myreprezentowa¢.
Ka»d¡liczbƒmo»nazapisa¢wpostacizmiennopozycyjnejnawielesposob
ó
w.Wkonkretnych
reprezentacjachustalasiƒposta¢jednoznaczn¡,tzw.znormalizowan¡.Zazwyczajprzyjmuje
siƒ,»eprzecinekwmantysieustawionyjestbezpo–rednioprzedpierwsz¡cyfr¡znacz¡c¡lubza
ni¡.Wprzypadkupodstawyreprezentacjib=2pierwszacyfraznacz¡ca
1niejestzazwyczaj
jawniepamiÆ’tana.M
ó
wimywtedyoukrytej1.Zauwa»my,»eprzytakimza“o»eniuniemo»na
reprezentowa¢liczby0.Dlatego0jakikilkainnychwarto–citraktowanychjestwyj¡tkowoi
przypisywanes¡imspecjalneci¡gibit
ó
w.
1.1Prostamodelowareprezentacja
Rozwa»myprost¡modelow¡reprezentacjƒ,wkt
ó
rejliczbypamiƒtanes¡jakoci¡gisze–ciobi-
towezeemmm,gdziezoznaczabitznaku(0-plus,1
minus),eetodwubitowywyk“adnik
pamiÆ’tanyzprzesuniÆ’ciemo2(tzn.liczbaxjestpamiÆ’tanajakonaturalnykodbinarnyliczby
x+2;reprezentacjazprzesuniƒciemjeststandardemdlawyk“adnik
ó
w),ammmtotrzybity
znormalizowanejmantysy.Zak“adamy,»epierwszajedynkawmantysieniejestukryta,azero
reprezentowanejestjakospecjalnyci¡g000000.
Reprezentowalnewarto–ciprzedstawiones¡narysunku1.Najmniejszareprezentowalnawar-
to–¢dodatniato
1
8
wstawiamynajmniejsz¡mo»liw¡mantysƒ:0:100oraznajmniejszywyk“ad-
nik:2.Odpowiednici¡gbit
ó
wto000100.Podobnie,najwiƒksz¡warto–ci¡jest1
3
4
:011111.
Zauwa»my,»epomiƒdzyreprezentowalnymiliczbamipojawiaj¡siƒr
ó
»neodstƒpy
imwiÆ’ksze
warto–ci,tymwiƒkszeodstƒpy.Itaknajmniejszyodstƒpwynosi
1
32
(gdywyk“adnikjestr
ó
wny
-2izmieniamymantysÆ’o
1
8
,anajwiÆ’kszy
1
4
,gdywyk“adnikjestr
ó
wny2.ZatomniejwiÆ’cej
sta“ajestwzglƒdnaodleg“o–¢:stosunekwarto–ciliczbydowarto–cijejs¡siada.Zatemmo»emy
powiedzie¢,»ewnaszejreprezentacjimamymniejwiƒcejsta“ywzglƒdnyb“¡dprzybli»enia.
Zauwa»myteraz,»eniewszysktkieci¡gibit
ó
wwnaszejreprezentacjis¡poprawne:niepo-
prawnes¡te,kt
ó
remaj¡0jakopierwsz¡cyfrƒmantysy(zwyj¡tkiemci¡gu000000).Zatem
naszareprezentacjapozwalaprzechowywa¢33r
ó
»newarto–¢i.
1
Rysunek1:Liczbyreprezentowalnewnaszymmodelu
Jeszczejedn¡charakterystyczn¡cech¡reprezentacjizmiennopozycyjnej(znormalizowanej)
jeststosunkowodu»yodstƒppomiƒdzyzeremapierwsz¡reprezentowaln¡warto–ci¡.Przedzia“
pomiƒdzyzeremapierwsz¡warto–ci¡reprezentowaln¡nazywanyjestniedomiarem(odpowied-
niododatnimlubujemnym).M
ó
wimytak»eonadmiarze(r
ó
wnie»dodatnimlubujemnym)
jesttoprzedzia“powy»ej(poni»ej)najwiƒkszej(najmniejszej)reprezentowalnejwarto–ci.
OarytmetycezmiennopozycyjnejbÆ’dziemym
ó
wi¢niecodalej,terazspr
ó
bujmywykona¢w
naszejreprezentacjiprostedzia“aniea+bdlaa=0:2ib=0:7.Przekszta“¢mynaszeu“amkina
systembinarny:a=0:00110011:::0:1102
2
;b=0:10110:::0:1012
0
.Poniewa»mo»emy
pamiƒta¢tylkotrzybitymantysy,toju»napocz¡tkutracimyprecyzjƒ.Wyr
ó
wnujemywyk“adniki
zwiƒkaszaj¡cpierwszydo0:a=0:0012
0
.Ponownietracimyprecyzjƒ(wrzeczywisto–cimo»e
by¢ciutlepiej,boobliczeniapo–redniewykonywanes¡zazwyczajnarozszerzonejreprezentacji
zawieraj¡cejdodatkowebity).Dodajemymantysy:a+b=0:1102
0
.Otrzymujemyzatem
0:75.
Podobneb“ƒdynapotykamywrzeczywisto–ci.Otoprostyprzyk“adilustruj¡cyb“¡dwyni-
kaj¡cyzbrakudok“adnejreprezentacjidlapewnychliczb.Uruchomnastƒpuj¡ceprogramyw
jÆ’zykuC:
intmain{}
{
floatsuma=0;
longi;
for(i=0;i<100000;++i)
suma=suma+0.6;
printf{"%f",suma);
}
intmain{}
{
floatsuma=0;
longi;
for(i=0;i<100000;++i)
suma=suma+0.5;
2
printf{"%f",suma);
}
Wpierwszymprzypadkuwynikodbiegaodoczekiwanego,wdrugimjestpoprawny.Wynika
tozfaktu,»e0:6,wprzeciwie«stwiedo0:5niemadok“adnejreprezentacjiwsystemiedw
ó
jkowym
(zograniczon¡liczb¡bit
ó
wpoprzecinku).
2StandardIEEE754
NormaIEEE754jestpowszechnieobowi¡zuj¡cymstandardemwjakimprzechowywanes¡we
wsp
ó
“czesnychkomputerachliczbyzmiennopozycyjne.Opr
ó
czformatudanychokre–laonte»
pewnezasadywykonywaniaoblicze«arytmetycznych,dziƒkiczemumo»naza“o»y¢,»etensam
program,napisanynp.wjÆ’zykuC,uruchomionynar
ó
»nychmaszynachdatesamerezultaty.
Mamydwaformaty:32-bitowy
pojedynczejprecyzji(floatwC)i64-bitowy(podw
ó
jnej
precyzji)(doublewC).Dodatkowode
niowanes¡formatypomocnicze:rozszerzonypojedynczej
precyzjiirozszerzonypodw
ó
jnejprecyzji.S“u»¡onedowykonywaniaoblicze«po–rednich.
FormatpojedynczejprecyzjiMantysa:23bity(znormalizowana,ukryta1przedprzecin-
kiem),wyk“adnik:8bit
ó
w(przesuniÆ’cie127),zakresliczbdodatnich:10
38
;10
+38
,liczbarepre-
zentowalnychwarto–ci:1;982
31
.
Formatpodw
ó
jnejprecyzjiMantysa:52bity(znormalizowana,ukryta1przedprzecin-
kiem),wyk“adnik:11bit
ó
w(przesuniÆ’cie1023),zakresliczbdodatnich:10
308
;10
+308
,liczba
reprezentowalnychwarto–ci:1;992
63
.
Niekt
ó
resekwencjebit
ó
ws¡interpretowanewspecjalnyspos
ó
b.S¡tosekwencjezwyk“ad-
nikiemsk“adaj¡cymsiƒzsamychzerlubsamychjedynek:
same0wwyk“adniku,samezerawmantysie:reprezentuj¡0(dodatnielubujemne...)
same0wwyk“adniku,niezerowamantysa:liczbzdenormalizowana(bitnalewoodprze-
cinkajestzerem,wyk“adnikwynosi-126lub-1022);pomys“naredukcjƒodstƒpupomiƒdzy
zeremanajmniejsz¡dodatni¡(ujemn¡)liczb¡reprezentowaln¡.
same1wwyk“adniku,same0wmantysie:pluslubminusniesko«czono–¢
same1wwyk“adnkiu,niezerowamantysa:NaN(notanumber)sytuacjawyj¡tkowa
3Arytmetykazmiennoprzecinkowa
Zewzglƒdunazupe“nieinn¡reprezentacjƒzaoperacjearytemtycznenaliczbachzmiennopozy-
cyjnychodpowiedzialnes¡zupe“nieinneobwodyprocesorani»zaoperacjeca“kowitoliczbowe.
3.1Dodawanieiodejmnowanie
1.Sprawdzaniezer.
2.Wyr
ó
wnywaniewyk“adnik
ó
w
3.Dodawanielubodejmnowaniemantys
4.Normalizowaniewyniku.
3
3.2Mno»enieidzielenie
1.Sprawdzaniezer.
2.Dodawanielubodejmowaniewyk“adnik
ó
w
3.Mno»enielubdzieleniemantys,ustawianieznaku
4.Normalizowaniewyniku
5.Zaokr¡glanie
Rysunek2:Mno»eniezmiennopozycyjne
4
Rysunek3:Dzieleniezmiennopozycyjne
5
[ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • jausten.xlx.pl

  •