27
Podstawy Informatyki Bo˙ zena Wo´ zna-Szcze´ sniak [email protected] Jan Dlugosz University, Poland Wyklad 5 Bo˙ zena Wo´ zna-Szcze´ sniak (AJD) Podstawy Informatyki Wyklad 5 1 / 23

Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

Embed Size (px)

Citation preview

Page 1: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

Podstawy Informatyki

Bozena [email protected]

Jan Długosz University, Poland

Wykład 5

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 1 / 23

Page 2: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

LICZBY RZECZYWISTE - Algorytm Hornera

Pozwala zakodowac dziesietna liczbe rzeczywista posiadajacazarówno czesc całkowita, jak i ułamkowa, w innym wybranymsystemie pozycyjnym.

Ma tylko jedno ograniczenie - nalezy z góry okreslic ilosc cyfr, naktórej (co najwyzej) bedziemy kodowali czesc ułamkowa – czyliilosc cyfr po przecinku.

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 2 / 23

Page 3: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

LICZBY RZECZYWISTE - Algorytm Hornera

Dana jest dziesietna liczba rzeczywista A. Aby zakodowac te liczbe wsystemie o podstawie q:

Przyjmujemy dokładnosc do n cyfr po przecinku z jaka chcemyprzedstawic liczbe A.

Mnozymy A przez podstawe systemu podniesiona do potegi n.

Zaokraglamy wynik mnozenia do liczby całkowitej, a nastepniekodujemy ja w wybranym systemie tak, jak koduje sie zwyczajneliczby całkowite.

Na koniec, zgodnie ze wstepnym załozeniem, oddzielamy ostatnien cyfr przecinkiem.

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 3 / 23

Page 4: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

LICZBY RZECZYWISTE - Algorytm Hornera

Dana jest dziesietna liczba rzeczywista A. Aby zakodowac te liczbe wsystemie o podstawie q:

Przyjmujemy dokładnosc do n cyfr po przecinku z jaka chcemyprzedstawic liczbe A.

Mnozymy A przez podstawe systemu podniesiona do potegi n.

Zaokraglamy wynik mnozenia do liczby całkowitej, a nastepniekodujemy ja w wybranym systemie tak, jak koduje sie zwyczajneliczby całkowite.

Na koniec, zgodnie ze wstepnym załozeniem, oddzielamy ostatnien cyfr przecinkiem.

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 3 / 23

Page 5: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

LICZBY RZECZYWISTE - Algorytm Hornera

Dana jest dziesietna liczba rzeczywista A. Aby zakodowac te liczbe wsystemie o podstawie q:

Przyjmujemy dokładnosc do n cyfr po przecinku z jaka chcemyprzedstawic liczbe A.

Mnozymy A przez podstawe systemu podniesiona do potegi n.

Zaokraglamy wynik mnozenia do liczby całkowitej, a nastepniekodujemy ja w wybranym systemie tak, jak koduje sie zwyczajneliczby całkowite.

Na koniec, zgodnie ze wstepnym załozeniem, oddzielamy ostatnien cyfr przecinkiem.

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 3 / 23

Page 6: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

LICZBY RZECZYWISTE - Algorytm Hornera

Dana jest dziesietna liczba rzeczywista A. Aby zakodowac te liczbe wsystemie o podstawie q:

Przyjmujemy dokładnosc do n cyfr po przecinku z jaka chcemyprzedstawic liczbe A.

Mnozymy A przez podstawe systemu podniesiona do potegi n.

Zaokraglamy wynik mnozenia do liczby całkowitej, a nastepniekodujemy ja w wybranym systemie tak, jak koduje sie zwyczajneliczby całkowite.

Na koniec, zgodnie ze wstepnym załozeniem, oddzielamy ostatnien cyfr przecinkiem.

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 3 / 23

Page 7: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

LICZBY RZECZYWISTE - Algorytm Hornera

Dana jest dziesietna liczba rzeczywista A. Aby zakodowac te liczbe wsystemie o podstawie q:

Przyjmujemy dokładnosc do n cyfr po przecinku z jaka chcemyprzedstawic liczbe A.

Mnozymy A przez podstawe systemu podniesiona do potegi n.

Zaokraglamy wynik mnozenia do liczby całkowitej, a nastepniekodujemy ja w wybranym systemie tak, jak koduje sie zwyczajneliczby całkowite.

Na koniec, zgodnie ze wstepnym załozeniem, oddzielamy ostatnien cyfr przecinkiem.

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 3 / 23

Page 8: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

Algorytm Hornera - PRZYKŁAD

Zakodowac liczbe A = 2875,1023 w systemie ósemkowym zdokładnoscia do 5 miejsc po przecinku.

Mnozymy liczbe A przez 85:

2875,1023 · 85 = 2875,1023 ∗ 32768 = 94211352.1664

Kodujemy liczbe 94211352 w systemie o podstawie 8. Wynosiona: 547306430(8)

Ustalamy miejsce przecinka zgodnie z załozeniem, tj.5473,06430(8)

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 4 / 23

Page 9: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

Reprezentacja liczb rzeczywistych

Liczby rzeczywiste mozna przedstawiac:

w postaci kodu stałoprzecinkowego (stałopozycyjnego)

w postaci kodu zmiennoprzecinkowego (zmiennopozycyjnego)

Nie jest mozliwe przedstawienie nieskonczonych zbiorów zapomoca skonczonej liczby bitów. Do obliczen w komputerachstosuje sie reprezentacje skonczonych podzbiorów liczbrzeczywistych.

Zgodne jest to ze standardem IEEE 754, gdzie okreslony zostałstandard zapisu i działan arytmetycznych na liczbachzmiennoprzecinkowych.

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 5 / 23

Page 10: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

REPREZENTACJA STAŁOPOZYCYJNAW notacji stałopozycyjnej mozliwe jest reprezentowanie zakresudodatnich i ujemnych liczb całkowitych ze srodkiem w zerze.

Przy załozeniu ustalonego przecinka pozycyjnego format tenumozliwia równiez reprezentacje liczb ze składnikiem ułamkowym.

W notacji stałopozycyjnej nie moga byc reprezentowane anibardzo duze liczby, ani bardzo małe ułamki.

Ułamkowe składniki ilorazu przy dzieleniu dwóch duzych liczbmoga byc utracone.

Przykład:

11111111︸ ︷︷ ︸255

,00001111︸ ︷︷ ︸15256

= 255,06640625

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 6 / 23

Page 11: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

REPREZENTACJA ZMIENNOPOZYCYJNASYSTEM CECHA-MANTYSA

System jest oparty na podziale liczby na czesc ułamkowa zwanamantysa oraz na wykładnik potegi podstawy systemu zwanycecha.

Opracowany został na podstawie zapisu liczby w systemiepozycyjnym wagowym.

Umozliwia zapis liczb rzeczywistych z ustalonym błedemwzglednym.

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 7 / 23

Page 12: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

REPREZENTACJA ZMIENNOPOZYCYJNA

Przykład liczby binarnej zapisanej w postaci cecha-mantysa nadwóch bajtach

00000011︸ ︷︷ ︸cecha

,10100000︸ ︷︷ ︸mantysa

W praktyce zwykle na ceche przeznaczamy jeden bajt, namantyse minimum trzy bajty.

Ilosc bajtów przeznaczonych na ceche decyduje o zakresie.

Ilosc bajtów przeznaczonych na mantyse decyduje o błedzie.

Liczby ujemne w mantysie sa kodowane w systemie znak-moduł,zas dla cechy w systemie u2.

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 8 / 23

Page 13: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

Reprezentacja liczb w systemie cecha-mantysa

L = (−1)s ·m · Nc ,

gdzie:N-podstawa systemu

s -to bit znaku:

0 oznacza ′+′, bo (−1)0 = 1

1 oznacza ′−′, bo (−1)1 = −1

c – cecha, całkowity wykładnik potegi, dzieki któremu przecinek wliczbie zostaje przesuniety tak, aby utworzyc mantyse w zgodzie zpowyzsza definicja.

m – mantysa - liczba mniejsza od jednosci.

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 9 / 23

Page 14: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

Kod FP2 (ang. floating point)

Dla kodowania FP2 liczb zmiennoprzecinkowych przyjmuje siemantyse znormalizowana do przedziału 〈1;2), czyli 〈1(2);10(2)).

Mantyse zapisuje sie w postaci liczby całkowitej dodatniej orazbitu znaku, ceche przy pomocy kodu U2.

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 10 / 23

Page 15: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

Kodowanie FP2 - przykładZnak Cecha(c)− Mantysa(m)−

mantysy w kodzie U2 w kodzie ZM

Bit 7 6 5 4 3 2 1 0

Waga s −8 4 2 1 2−1 2−2 2−3

L = (−1)s · 1.m · 2c

dla liczby:

00010110(FP2) 0,875(10) = 0,111(2)

s = 0 L = (−1)0 · 1,11(2) · 2(−1)

c = 0010(U2) = 2 c = −1 = 1111(U2)

m = 1,110(2) = 134 m = 1,110(2)

L = (−1)0 · 134 · 2

2 = 7(10) 0,875(10) = 01111110(FP2)

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 11 / 23

Page 16: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

Kodowanie FP2 - przykładznak Cecha - kod U2

bit 15 14 13 12 11 10waga s -16 8 4 2 1

Mantysa - kod ZMbit 9 8 7 6 5 4 3 2 1 0

waga 2−1 2−2 2−3 2−4 2−5 2−6 2−7 2−8 2−9 2−10

L = (−1)s · 1.m · 2c

Aby zapisac A = 1984,0415(10) w kodzie FP2:Ustalamy znak: s = 0.

Stosujac algorytm Hornera zapisujemy liczbe A w systemiebinarnym (na takiej liczbie bitów, ile bitów ma mantysa + 1).

1984,0415 · 211 = 4063316,992 ≈ 4063317

1984,0415 = 11111000000,00001010101

Dokonujemy normalizacji – czyli przesuwamy przecinek tak, abyprzed przecinkiem znajdowała sie tylko jedna niezerowa cyfra.Otrzymujemy: 1,111100000000001010101

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 12 / 23

Page 17: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

Kodowanie FP2 - przykład

Skoro jedyna mozliwa niezerowa cyfra w systemie dwójkowymjest 1, to mozemy zapamietac, ze ona tam jest i oszczedzic jedenbit nie zapisujac jej.

Mantyse tworza kolejne cyfry spisane poczawszy od przecinka, azpo cyfre, która zapisana zostanie na ostatnim biciezarezerwowanym dla mantysy (w tym przykładze 10 bitów). Jeslicyfr jest mniej niz bitów mantysy, to wolne bity uzupełniamy 0).

m = 1111000000

Poniewaz przecinek przesunelismy o 10 miejsc w lewo, jako cechetrzeba zapisac liczbe 10 w kodzie U2, tj.

c = 01010(U2)

Zatem1984,0415(10) = 0010101111000000(FP2)

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 13 / 23

Page 18: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

Dekodowanie - przykład

0010101111000000(FP2)

Zatem:

s = 0, stad mamy (−1)0

m = 1111000000, stad 2−1 + 2−2 + 2−3 + 2−4

c = 01010(U2) = 10, a wiec mamy 210

Podstawiamy do wzoru na L i otrzymujemy:

L = (−1)0 · (20 + 2−1 + 2−2 + 2−3 + 2−4) · 210 =

= (1 +12+

14+

18+

116

) · 1024 =

= 11516· 1024 =

3116∗ 1024 =

3174416

= 1984

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 14 / 23

Page 19: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

UWAGA

Standard kodu FP2 przewiduje dodatkowo wartosci specjalne:

Maksymalna wartosc cechy przy zerowej wartosci mantysy daje wzaleznosci od bitu znaku wartosc zwana −INF lub INFoznaczajaca odpowiednio −∞ i +∞.

Maksymalna wartosc cechy przy jakiejkolwiek niezerowej wartoscimantysy, to tzw. NaN(ang. Not a Number), czyli wartosc, która niejest poprawna liczba.

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 15 / 23

Page 20: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

Standard IEEE 754

Pojedyncza precyzja = 32 (4 Bajty)

kolejne bity (od lewej) liczba bitów znaczenie

1 1 bitznaku

2− 9 8 cecha(BIAS = 127)

10− 33 23 mantysa

Podwójna precyzja = 64 (8 Bajtów)

kolejne bity (od lewej) liczba bitów znaczenie

1 1 bitznaku

2− 12 11 cecha(BIAS = 1023)

13− 64 52 mantysa

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 16 / 23

Page 21: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

Standard IEEE 754

Bit znaku:pierwszy bit w zapisie liczby zwany jest bitem znaku. Stan 0oznacza liczbe dodatnia, stan 1 liczbe ujemna. Aby zatem zmienicznak liczby zmiennoprzecinkowej na przeciwny, wystarczy dokonacnegacji tego bitu.

Bity kodu cechy:Liczby zmiennoprzecinkowe IEEE 754 zapisuja ceche w kodzie znadmiarem.W pojedynczej precyzji cecha posiada 8 bitów, a nadmiar wynosi127. Zatem w polu cechy mozna zapisac wartosci od −127(wszystkie bity wyzerowane) do 128 (wszystkie bity ustawione na1).W podwójnej precyzji cecha posiada 11 bitów, a nadmiar wynosi1023. Zatem w polu cechy mozna zapisac wartosci od −1023 do1024.Wzrost ilosci bitów cech liczb zmiennoprzecinkowych wpływa na ichzakres.

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 17 / 23

Page 22: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

Standard IEEE 754

Bity mantysy:W pojedynczej precyzji mantysa posiada 23 bity, a w podwójnejprecyzji 52 bity.

Wzrost liczby bitów mantysy liczb zmiennoprzecinkowych wpływana ich precyzje, czyli dokładnosc odwzorowywania liczbrzeczywistych.

Mantysy sa zapisywane w stałoprzecinkowym kodzie znak-moduł.Poniewaz mantysa jest prawie zawsze znormalizowana, tj. zawierasie w 〈1,2). Wynika stad, iz pierwszy bit całkowity mantysy zawszewynosi 1. Skoro tak, to nie musi on byc zapamietywany - bedzieautomatycznie odtwarzany w czasie wykonywania obliczen naliczbie zmiennoprzecinkowej.

W polu mantysy zapamietujemy tylko bity ułamkowe. Dzieki tejprostej sztuczce zyskujemy jeden dodatkowy bit mantysy -zwiekszamy jej rozdzielczosc do 24 bitów dla formatu pojedynczejprecyzji i do 53 bitów dla formatu podwójnej precyzji.

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 18 / 23

Page 23: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

IEEE 754 -przykład

Obliczyc wartosc dziesietna liczby zmiennoprzecinkowej:

01000010110010000000000000000000(IEEE754)

Kod binarny dzielimy na poszczególne pola zawierajace kolejno znak,ceche oraz bity ułamkowe mantysy:

01000010110010000000000000000000

s = 0

c = 10000101(BIAS=127) = 133− 127 = 6

m = 01,10010000000000000000000(ZM) =1916

Wartosc liczby L(IEEE754):

(−1)s ·m · 2c = (−1)0 · 1916· 26 =

2516· 26 = 25 · 22 = 25 · 4 = 100(10)

01000010110010000000000000000000(IEEE754) = 100(10)

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 19 / 23

Page 24: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

IEEE 754 -przykład

Obliczyc wartosc dziesietna liczby zmiennoprzecinkowej:

11000001110110000000000000000000(IEEE754)

Kod binarny dzielimy na poszczególne pola zawierajace kolejno znak,ceche oraz bity ułamkowe mantysy:

11000001110110000000000000000000

s = 1

c = 1000011(BIAS=127) = 131− 127 = 4

m = 01,10110000000000000000000(ZM) = 11116

Wartosc liczby:

L(IEEE754) = (−1)s ·m · 2c = (−1)1 · 11116· 24 = −27

16· 24 = −27(10)

11000001110110000000000000000000(IEEE754) = −27(10)

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 20 / 23

Page 25: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

Wartosci specjalne w IEEE 745Wartosc zero

W formacie IEEE 754 nie mozna zapisac w normalny sposóbwartosci 0, poniewaz mantysa ma domyslna czesc całkowitarówna 1 - w polu mantysy zapamietywane sa jedynie bityułamkowe.

Dlatego zero jest specjalnym przypadkiem liczbyzmiennoprzecinkowej, gdzie zarówno pole wykładnika jak imantysy zawiera same 0. Bit znaku moze przyjmowac dowolnawartosc (stad mozemy dostac dodatnie lub ujemne 0, jednakzeprzy porównaniu sa one traktowane jak równe sobie).

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 21 / 23

Page 26: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

Wartosci specjalne w IEEE 745Wartosc zdenormalizowana

Jesli wszystkie bity cechy maja wartosc 0, lecz mantysa zawierabity o wartosciach 1 (w przeciwnym razie liczba zostaniepotraktowana jak opisane wczesniej zero), to jest to tzw.zdenormalizowana liczba zmiennoprzecinkowa. W takimprzypadku mantysa nie posiada domyslnej czesci całkowitej 1,lecz jest liczba ułamkowa, której bity zawarte sa w polu formatuIEEE 754.

Wartosc zdenormalizowana liczby zmiennoprzecinkowej liczymywedług wzoru:

Pojedyncza precyzja: L = (−1)s ·m · 2−126,

gdzie m = 00,(pole mantysy)(ZM)

Podwójna precyzja: L = (−1)s ·m · 2−1022,

gdzie m = 00,(pole mantysy)(ZM)

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 22 / 23

Page 27: Bozena Wozna-Szcz´ e˙ sniak´ bwozna@gmail · LICZBY RZECZYWISTE - Algorytm Hornera Pozwala zakodowac dziesietn˛ a˛liczbe˛ rzeczywista˛posiadajac˛ a˛´ zarówno cze˛s´c

Wartosci specjalne w IEEE 745

Pojedyncza precyzja – najmniejsza wartosc:

00000000000000000000000000000001(IEEE754)

m = 00,00000000000000000000001(U1) = 2−23

min(IEEE754) = 2−23 · 2−126 = 2−149

min(IEEE754) = 1,4012984643248170709237295832899 · 10−45

min(IEEE754) = 1,4 · 10−45

Bozena Wozna-Szczesniak (AJD) Podstawy Informatyki Wykład 5 23 / 23