Wprowadzenie do informatyki - ć wiczenia

Podobne dokumenty
Wprowadzenie do informatyki - ć wiczenia

Wprowadzenie do informatyki - ć wiczenia

Wprowadzenie do informatyki - ć wiczenia

Pracownia Komputerowa wykład VI

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Wprowadzenie do informatyki ćwiczenia

Pracownia Komputerowa wyk ad VI

Podstawy Informatyki

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Teoretyczne Podstawy Informatyki

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Kod IEEE754. IEEE754 (1985) - norma dotycząca zapisu binarnego liczb zmiennopozycyjnych (pojedynczej precyzji) Liczbę binarną o postaci

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika

Arytmetyka binarna - wykład 6

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Metoda znak-moduł (ZM)

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI

Systemy zapisu liczb.

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Naturalny kod binarny (NKB)

Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci:

Zapis liczb binarnych ze znakiem

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

Technologie Informacyjne

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Wstęp do informatyki- wykład 1 Systemy liczbowe

LICZBY ZMIENNOPRZECINKOWE

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Kod U2 Opracował: Andrzej Nowak

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

Podstawy Informatyki

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Podstawy Informatyki. Wykład 2. Reprezentacja liczb w komputerze

RODZAJE INFORMACJI. Informacje analogowe. Informacje cyfrowe. U(t) U(t) Umax. Umax. R=(0,Umax) nieskończony zbiór możliwych wartości. Umax.

Prefiksy binarne. kibibit (Kibit) mebibit (Mibit) gibibit (Gibit) tebibit (Tibit) pebibit (Pibit) exbibit (Eibit) zebibit (Zibit) yobibit (Yibit)

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Wstęp do informatyki- wykład 1 Systemy liczbowe

Architektura komputerów

SYSTEMY LICZBOWE 275,538 =

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łan Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Informatyka 1. Wykład nr 5 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Architektura komputerów

SYSTEMY LICZBOWE. SYSTEMY POZYCYJNE: dziesiętny (arabski): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Arytmetyka stało i zmiennoprzecinkowa

Stan wysoki (H) i stan niski (L)

Pracownia Komputerowa wykład V

Technologie Informacyjne Wykład 4

LICZBY ZMIENNOPRZECINKOWE

Adam Korzeniewski p Katedra Systemów Multimedialnych

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Pozycyjny system liczbowy

Dodatek do Wykładu 01: Kodowanie liczb w komputerze

Wstęp do Informatyki. Reprezentacja liczb w komputerze Arytmetyka stało- i zmiennoprzecinkowa Przechowywanie danych pliki i foldery

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Architektura komputerów

Liczby zmiennoprzecinkowe i błędy

Adam Korzeniewski p Katedra Systemów Multimedialnych

BŁĘDY OBLICZEŃ NUMERYCZNYCH

Wstęp do Informatyki

Zwykle liczby rzeczywiste przedstawia się w notacji naukowej :

Arytmetyka stałopozycyjna

Operacje arytmetyczne

Pracownia Komputerowa wykład IV

Metody numeryczne. Postać zmiennoprzecinkowa liczby. dr Artur Woike. Arytmetyka zmiennoprzecinkowa. Uwarunkowanie zadania.

Kodowanie informacji. Kody liczbowe

Arytmetyka liczb binarnych

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

Pracownia Komputerowa wyk ad V

Sposób reprezentacji informacji w systemie. Reprezentacja informacji. Dzięki kodowaniu informacji.

architektura komputerów w. 2

ARCHITEKTURA KOMPUTERÓW Systemy liczbowe

1.1. Pozycyjne systemy liczbowe

Pracownia komputerowa. Dariusz Wardecki, wyk. VI

PODSTAWY INFORMATYKI. Informatyka? - definicja

Systemem liczenia systemach addytywnych !!" Pozycyjny system liczbowy podstawą systemu pozycyjnego

Wstęp do informatyki- wykład 2

Systemy liczbowe Plan zaję ć

1. Operacje logiczne A B A OR B

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura

1259 (10) = 1 * * * * 100 = 1 * * * *1

Pracownia Komputerowa wyk ad IV

Informatyka 1. Wykład nr 4 ( ) Plan wykładu nr 4. Politechnika Białostocka. - Wydział Elektryczny

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Kodowanie liczb całkowitych w systemach komputerowych

Metody numeryczne II. Reprezentacja liczb

Komputerowa reprezentacja znaków i liczb. dr inż. Izabela Szczęch Politechnika Poznańska Podstawy informatyki

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Transkrypt:

Zmiennoprzecinkowy zapis liczb wymiernych dr inż. Izabela Szczęch WSNHiD Ćwiczenia z wprowadzenia do informatyki Reprezentacja liczb wymiernych Stałoprzecinkowa bez znaku ze znakiem Zmiennoprzecinkowa pojedynczej precyzji podwó jnej precyzji Izabela Szczęch

Zapis zmiennoprzecinkowy - definicja i konwersje Zakresy liczb w reprezentacji zmiennoprzecinkowej Dokładność reprezentacji zmiennoprzecinkowej Arytmetyka w reprezentacji zmiennoprzecinkowej Problem utarty precyzji Plan zajęć Standardy reprezentacji zmiennoprzecinkowej Zapis zmiennoprzecinkowy - definicja i konwersja Izabela Szczęch

Wady zapisu stałoprzecinkowego zapis bardzo duż ych lub bardzo małych liczb w notacji stałoprzecinkowej jest niewygodny ponieważ wymaga duż ej liczby znakó w jeś li chcemy rozszerzyć zakres czy precyzję (liczbę miejsc po przecinku) musimy uż yć większej liczby znakó w dwanaś cie bilionó w: 000 000 000 000 trzydzieś ci trylionó w: 0 000 000 000 000 000 000 jedna bilionowa: 0,000 000 000 00 5 Zapis zmiennoprzecinkowy Zapis zmiennoprzecinkowy (ang. floating point numbers) zwany ró wnież postacią wykładniczą, notacją naukowa składa się z następujących elementó w: m mantysy, czyli liczby stałoprzecinkowej p podstawy systemu c cechy, czyli wykładnika potęgowego, do któ rego podnosimy podstawę systemu Wartość liczby zmiennoprzecinkowej L obliczamy według wzoru: c L ( FP) = m* p 6 Izabela Szczęch

Zapis zmiennoprzecinkowy Zapis zmiennoprzecinkowy wymaga znacznie mniejszej liczby znakó w niż stałoprzecinkowy przy zapisie bardzo duż ych lub bardzo małych liczb. Przykład dla systemu dziesiętnego: 000 000 000 000 =,x0 0 000 000 000 000 000 000 =,0x0 9 0,000 000 000 00 =,0x0-7 Zapis zmiennoprzecinkowy Położ enie przecinka w mantysie nie jest ustalone i moż e się dowolnie zmieniać. Poniż sze zapisy oznaczają tą samą liczbę: 5 x 0 0 =,5 x 0 =,5 x 0 = 0,05 x 0 4, itd. Zmiana położ enia przecinka w mantysie wpływa na wartość cechy liczby: przesunięcie przecinka o pozycję w lewo wymaga zwiększenia cechy o. przesunięcie przecinka o pozycję w prawo wymaga zmniejszenia cechy o. 8 Izabela Szczęch 4

Znormalizowany zapis Znormalizowana liczba zmiennoprzecinkowa to taka, w któ rej mantysa spełnia nieró wność: p > m Według tej definicji postacią znormalizowaną dla zapisó w: 5 x 0 0 =,5 x 0 =,5 x 0 = 0,05 x 0 4 jest jedynie zapis,5 x 0. 9 Binarny zapis zmiennoprzecinkowy W binarnym systemie zmiennoprzecinkowym m, p oraz c zapisane są dwó jkowo, a podstawa p jest zawsze ró wna. Z racji, ż e podstawa jest zawsze znana, do zapisania dwó jkowej liczby zmiennoprzecinkowej wystarczy podanie wartoś ci m, c oraz sposobu ich kodowania. 0 Izabela Szczęch 5

Binarny zapis zmiennoprzecinkowy W ramach ć wiczeń będziemy operować na 8-mio bitowych dwó jkowych liczbach zmiennoprzecinkowych (FP), w któ rych: 4 najstarsze bity są przeznaczone na zapis cechy w kodzie U, pozostałe 4 bity są na zapis mantysy ró wnież w kodzie U. Przyjmijmy też, ż e mantysa jest liczbą stałoprzecinkową (w kodzie U) z dwoma miejscami po przecinku. cecha mantysa b 7 b 6 b 5 b 4 b b b b 0 Konwersja binarnego zapisu FP na system dziesię tny Przykład: Oblicz wartość dziesiętną zmiennoprzecinkowej dwó jkowej liczby 00 (FP). c = (U) (U) = -8+4++= - (0) m = 0,0 (U) 0,0 (U) = + / 4 L (FP) = m* c = 5 / 4 * - = 5 / 4 * / = 5 / 8 00 (FP) = 5 / 8 (0) Izabela Szczęch 6

Konwersja binarnego zapisu FP na system dziesię tny Zadania: Oblicz wartość dziesiętną następujących zmiennoprzecinkowych liczb dwó jkowych: a) 000000 (FP) b) 00 (FP) c) 00 (FP) Konwersja z systemu dziesię tnego na zapis FP Algorytm przeliczania liczby dziesiętnej na liczbę zmiennoprzecinkową w innym systemie pozycyjnym: Przeliczamy daną liczbę dziesiętną na liczbę w systemie docelowym. Wynik jest wartoś cią mantysy przy cesze ró wnej 0. Normalizujemy mantysę modyfikując przy tym odpowiednio cechę liczby. 4 Izabela Szczęch 7

Konwersja z systemu dziesię tnego na zapis FP Przykład : Wyznacz dwó jkową zmiennoprzecinkową reprezentację liczby,5 (0),5 (0) =? (U) Z racji, ż e jest to stałoprzecinkowa liczba dodatnia, to z kodzie U wygląda tak samo jak w Znak-moduł. Konwertujemy ją zatem na ZM. Dostajemy:,5 (0) =00, (U) Tak by wyglądała reprezentacja przy cesze = zero czyli 0000 (U). Ale chcemy reprezentację z dwoma miejscami po przecinku, musimy więc przesunąć wszystkie bity o jedną pozycję w prawo i zwiększyć cechę o jeden. Wynik:,5 (0) =00000 (FP) c=000 (U), m=00 (U) 5 Konwersja z systemu dziesię tnego na zapis FP Sprawdzenie wyniku: L = 00000 (U) c = 000 (U) = (0) m = 0,0 (U) = 0*(- ) + * 0 + 0* - + - = / 4 L = m* c = / 4 * = 5 / 4 * = 0 / 4 =,5 00000 (FP) =,5 (0) 6 Izabela Szczęch 8

Konwersja z systemu dziesię tnego na zapis FP Przykład : Wyznacz dwó jkową zmiennoprzecinkową reprezentację liczby -, (0) -, (0) =? (U) Z racji, ż e jest to stałoprzecinkowa liczba UJEMNA, to aby ją przedstawić w kodzie U, szukamy najpierw zapisu wartoś ci, w kodzie U (któ ry jest toż samy z zapisem w kodzie Znak-moduł), a następnie szukamy liczby przeciwnej (przepisać wszystkie bity łącznie z pierwszą napotkaną jedynką a pozostałe bity zanegować ). +, (0) = 0,000000... (U)=(ZM) Jest to oczywiś cie wartość przybliż ona (,89 ), bo, nie jest liczbą maszynową. -, (0) = 0,0 (U) Tak by wyglądała reprezentacja przy cesze = zero czyli 0000 (U). 7 Konwersja z systemu dziesię tnego na zapis FP Przykład : -, (0) = 0,0 (U) Tak by wyglądała reprezentacja przy cesze = zero czyli 0000 (U). Mamy tylko dwa miejsca przed przecinkiem (nie zawierające samych zer), nie musimy zatem przesuwać bitó w. Cecha pozostanie bez zmian. Wynik: -, (0) = 00000 (FP) c=0000 (U), m=0 (U) 8 Izabela Szczęch 9

Konwersja z systemu dziesię tnego na zapis FP Sprawdzenie wyniku: L = 00000 (U) c = 0000 (U) = 0 (0) m = 0, (U) = *(- ) + 0* 0 + * - + * - = -+ / + / 4 = - 8 / 4 + / 4 = - 5 / 4 L = m* c = - 5 / 4 * 0 = - 5 / 4 * = -,5 00000 (FP) = -,5 ª -, 9 Konwersja z systemu dziesię tnego na zapis FP Zadania: Wyznacz dwó jkową zmiennoprzecinkową reprezentację poniż szych liczb dziesiętnych : a) -,5 b) 0, c) 9,5 d) - 0 Izabela Szczęch 0

Zakresy liczb w reprezentacji zmiennoprzecinkowej Zakresy liczb zmiennoprzecinkowych Wyznacz zakres dwó jkowych liczb zmiennoprzecinkowych reprezentowanych na 8-miu bitach (cecha w U to najstarsze 4 bity, pozostałe to mantysa w U z dwoma miejscami po przecinku). Poró wnaj wynik z zakresem liczb stałoprzecinkowych reprezentowanych na 8-miu bitach w kodzie znak-moduł z 4 miejscami po przecinku. Izabela Szczęch

Zakresy liczb zmiennoprzecinkowych Wzó r L (FP) = m* c przyjmuje wartość maksymalną dla maksymalnej cechy i maksymalnej mantysy. Cecha przyjmie wartość maksymalną dla kodu: 0 (U) = 7 (0) Mantysa największą wartość przyjmie dla kodu: 0, (U) = / 4 = 7 / 4 Zatem max (FP) = 7 / 4 * 7 = 7 / 4 * 8 = 7 * = 4 Zakresy liczb zmiennoprzecinkowych Wartość najmniejszą uzyskamy dla maksymalnej cechy i minimalnej mantysy. Cechę maksymalną: 0 (U) = 7 (0) Minimalną mantysę reprezentuje kod: 0,00 (U) = - (0) Zatem min (FP) = - * 7 = - * 8 = -56 Stąd wszystkie liczby reprezentowane przez nasz kod zawierają się w przedziale: Z (FP) = -56... 4 Na 8-miu bitach w kodzie znak-moduł z 4 miejscami po przecinku moż na reprezentować liczby w przedziału <, (ZM) ; 0, (ZM) > czyli z przedziału od -7 5 / 6 (0) do 7 5 / 6 (0). 4 Izabela Szczęch

Dokładność reprezentacji zmiennoprzecinkowej mantysa 0000 000 000 00 000 00 00 0 000 00 00 0 000 0 0000 0 / 4 / / 4 / 4 / / 4 - - / 4 - / - / 4 - - / 4 - / - / 4 000 0 / / / / -4 - / - - / - - / - - / 000 0 4 5 6 7-8 -7-6 -5-4 - - - 00 0 4 6 8 0 4-6 -4 - -0-8 -6-4 - 000 0 4 8 6 0 4 8 - -8-4 -0-6 - -8-4 c e c h a 00 0 8 6 4 40 48 56-64 -56-48 -40 - -4-6 -8 00 0 6 48 64 80 96-8 - -96-80 -64-48 - -6 0 0 64 96 8 60 9 4-56 -4-96 -80-8 -96-64 - 000 0 / 04 / 5 / 04 / 5 56 / 04 / 7 5 / 04 - / 8-7 / 04 - / 5-5 / 04 - / 56 - / 04 - / 5 - / 04 00 0 / 5 / 56 / 5 / 8 5 / 5 / 56 7 / 5 - / 64-7 / 5 - / 56-5 / 5 - / 8 - / 5 - / 56 - / 5 00 0 / 56 / 8 / 56 / 64 5 / 56 / 8 7 / 56 - / - 7 / 56 - / 8-5 / 56 - / 64 - / 56 - / 8 - / 56 0 0 / 8 / 64 / 8 / 5 / 8 / 64 7 / 8 - / 6-7 / 8 - / 64-5 / 8 - / - / 8 - / 64 - / 8 00 0 / 64 / / 64 / 6 5 / 64 / 7 / 64 - / 8-7 / 64 - / - 5 / 64 - / 6 - / 64 - / - / 64 0 0 / / 6 / / 8 5 / / 6 7 / - / 4-7 / - / 6-5 / - / 8 - / - / 6 - / 0 0 / 6 / 8 / 6 / 4 5 / 6 / 8 7 / 6 - / - 7 / 6 - / 8-5 / 6 - / 4 - / 6 - / 8 - / 6 0 / 8 / 4 / 8 / 5 / 8 / 7 4 / 8 - - 7 / 8 - / 4-5 / 8 - / - / 8 - / 4 - / 6 8 Izabela Szczęch

Dokładność reprezentacji FP Powyż sza tabela zawiera wszystkie wartoś ci, jakie moż e reprezentować zmiennoprzecinkowy kod przeznaczający po 4 bity na zapis cechy i mantysy w kodzie U (w mantysie dwa miejsca są po przecinku). Są to JEDYNE liczby maszynowe, czyli liczby jakie przy tej reprezentacji moż na dokładnie zapisać w komputerze. Pozostałe liczby wymierne są wyraż ane z pewnym przybliż eniem poprzez wykorzystanie liczb maszynowych. 7 Zadania: Dokładność reprezentacji FP Przeanalizuj gęstość ułoż enia na osi wartoś ci dziesiętnych odpowiadających dwó jkowym zmiennoprzecinkowym liczbom maszynowym. Zwróć uwagę, ż e liczb maszynowych w okolicy zera jest stosunkowo wiele, a im dalej od zera tym rzadziej się one pojawiają (inaczej niż przy reprezentacji stałoprzecinkowej, gdzie poszczegó lne liczby maszynowe były od siebie ró wno oddalone). Okreś l, któ ry element zapisu zmiennoprzecinkowego (cecha czy mantysa) odpowiada za zakres reprezentowanych liczb, a któ ry za ich precyzję? Odpowiedź uzasadnij. 8 Izabela Szczęch 4

Nadmiar i podmiar W reprezentacji zmiennoprzecinkowej nadmiarem nazywamy sytuację, gdy liczba jest tak duż a (co do modułu), ż e nie zawiera się w przedziale liczb reprezentowalnych, a podmiarem sytuację, gdy liczba jest tak mała (co do modułu), ż e musi być reprezentowana przez zero. 9 Arytmetyka w reprezentacji zmiennoprzecinkowej Izabela Szczęch 5

Dodawanie i odejmowanie Suma lub różnica dwó ch liczb zmiennoprzecinkowych L i L wynosi: c c L ± L = m ± m * * c c * c m * c c L ± L = m * ± c * c c c * c m * m L ± L = ± c L L ± L ± L m = c = Ê Á Ë m c * c + c m ± c m ± c ˆ * c + c * c + c * * c Dodawanie i odejmowanie Mantysa sumy (lub różnicy) jest sumą (lub różnicą) mantys liczb wyjś ciowych po wyró wnaniu ich cech czyli po sprowadzeniu ich do wspó lnej cechy c+c. Cecha sumy (lub różnicy) jest ró wna sumie cech dodawanych (lub odejmowanych) liczb. Po wykonaniu operacji arytmetycznej mantysa wyniku jest sprowadzana do postaci znormalizowanej i zapamiętywana w kodzie liczby zmiennoprzecinkowej. Izabela Szczęch 6

Dodawanie i odejmowanie W systemie dwó jkowym operacja dzielenia przez jest ró wnoważ na przesunięciu wszystkich bitó w zapisu liczby o jedną pozycję w prawo (jak w systemie dziesiętnym podział przez 0). Z kolei mnoż enie przez odpowiada przesunięciu wszystkich cyfr o jedną pozycję w lewo. Dzielenie lub mnoż enie przez potęgi liczby jest zatem przesuwaniem wszystkich bitó w o odpowiednią liczbę pozycji (ró wną wykładnikowi potęgi liczby ) w lewo (mnoż enie) lub w prawo (dzielenie). Obie operacje są bardzo proste i nie wymagają wykonywania ż adnych działań arytmetycznych (w procesorze realizują je układy zwane rejestrami przesuwnymi - ang. shift registers). Zadania Zadania: Wykonaj poniż sze działania na liczbach zmiennoprzecinkowych, a następnie sprawdź poprawność obliczeń konwertując liczby na system dziesiętny: a) 000 (FP) + 000 (FP) b) 000000 (FP) + 0000 (FP) c) 000 (FP) - 0000 (FP) d) 0000 (FP) - 000 (FP) 4 Izabela Szczęch 7

c + c = 0 (U) 6 Wprowadzenie do informatyki - ć wiczenia Rozwią zanie (b) 000000 (FP) + 0000 (FP) Z zapisu zmiennoprzecinkowego wydobywamy cechy i mantysy obu liczb: c = 000 (U) = 4; m = 0,00 (U) c = 00 (U) = ; m =,00 (U) Pierwszą mantysę musimy podzielić przez zatem bity przesuwamy o pozycje w prawo (brakujące pozycje z przodu wypełniamy jedynkami, bo jest to liczba ujemna; odpowiada to dopisywaniu zer przed liczbą dodatnią): m =,000 (U) Drugą mantysę musimy podzielić przez 4, zatem bity przesuwamy o 4 pozycję w prawo: m =,00 (U) 5 Obliczamy mantysę sumy:,000 +,00 -------------,000 Rozwią zanie (b) m + m =,000 (U) Obliczamy cechę sumy: 000 + 00 ------------ 0 Izabela Szczęch 8

Rozwią zanie (b) Mantysę sumy sprowadzamy do postaci znormalizowanej: c = 0 (U) ; m =,000 (U) jedynki z przodu liczby ujemnej są nieznaczące (tak jak zera przed liczbą dodatnią), pierwszym miejscem znaczącym jest druga od lewej jedynka. Mamy mieć dwie pozycje przed przecinkiem, musimy zatem przesunąć bity o pozycje lewo i zmniejszyć cechę o c = 0 (U) -000 (U) =00 (U) ; m = 0, (U) Otrzymaną cechę i mantysą łączymy w jeden kod i otrzymujemy wynik operacji dodawania: 000000 (FP) + 0000 (FP) = 000 (FP). 7 Sprawdźmy, czy wynik jest prawidłowy. W tym celu posługując się tabelką wyznaczamy wartoś ci poszczegó lnych liczb zmiennoprzecinkowych: 000000 (FP) = - 0000 (FP) = -8 000 (FP) =-40 Rozwią zanie (b) -+(-8)=-40 - wynik prawidłowy. 8 Izabela Szczęch 9

Nadmiar - przykład Zaobserwuj zjawisko nadmiaru pró bując wykonać dodawanie: 000 (FP) + 0000 (FP) (czyli 60 (0) + 80 (0) ) Wydobywamy cechy i mantysy: c = 0 (U) = 7; m = 0,0 (U) c = 00 (U) = 6; m = 0,0 (U) Pierwszą mantysę przesuwamy o 6 bitó w w prawo, a drugą o 7 bitó w w prawo: m = 00,0000000 (U); m = 00,000000 (U) Sumujemy cechy i mantysy: m + m = 00,00000 (U) ; c + c = 0 (U) Nie uda nam się znormalizować mantysy bez utraty precyzji, to nam sygnalizuje problem, któ ry w tym przykładzie wynika z wystąpienia nadmiaru. 9 Utrata precyzji Izabela Szczęch 0

Zadanie: Zsumuj dużą i małą liczbę i przeanalizuj wynik: 00000 (FP) + 00000 (FP) czyli 4 (0) + (0) Utrata precyzji 4 00000 (FP) + 00000 (FP) (czyli 4 (0) + (0) ) Wydobywamy cechy i mantysy: c = 000 (U) = 4; m = 0,0 (U) c = 000 (U) = ; m = 0,0 (U) Pierwszą mantysę przesuwamy o bit w prawo, a drugą o 4 bity w prawo: m = 00,000 (U); Sumujemy cechy i mantysy: m + m = 00,0 (U) ; m = 00,000 (U) Normalizujemy mantysę wyniku: c = 000 (U) ; Utrata precyzji m = 0,00 (U) c + c = 00 (U) Wynik dodawania: 00000 (FP) + 00000 (FP) = 00000 (FP) = 4 (0). 4 Izabela Szczęch

Utrata precyzji Wnioski: suma jest ró wna pierwszej z sumowanych liczb. Dodanie drugiej liczby nie wpłynęło na wynik sumowania. Nastąpiła utrata precyzji. W systemie zmiennoprzecinkowym sumowanie liczby duż ej z liczbą małą moż e być niedokładne z uwagi na utratę precyzji. Dlatego sumując ciąg liczb zawsze sumujmy od wartoś ci najmniejszych do największych. 4 Standardy reprezentacji zmiennoprzecinkowej Izabela Szczęch

Format IEEE 754 Aby ujednolicić wyniki obliczeń numerycznych wykonywanych na różnych platformach sprzętowych, wprowadzono ś ciś le okreś lony standard zapisu zmiennoprzecinkowego IEEE 754. Pełna nazwa standardu to: IEEE Standard for Binary Floating-Point Arithmetic Pierwsza wersja standardu obowiązywała od 985r, najnowsza, pod nazwą IEEE 754-008, została opublikowana w sierpniu 008 Obecnie praktycznie wszystkie implementacje sprzętowe liczb zmiennoprzecinkowych oparte są o ten standard 45 Standard IEEE 754(-985, -008) definiuje dwie podstawowe klasy binarnych liczb zmiennoprzecinkowych: binary - pojedynczej precyzji (ang. single-precision) binary 64 - podwó jnej precyzji (ang. double-precision) Format Bit znaku Bity cechy bity - pojedyncza precyzja 64 bity - podwó jna precyzja Format IEEE 754 bit 8 bitó w bity bit bitó w 5 bity Bity mantysy Standard IEEE 754-008 rozszerza też wersję IEEE 754-985 o definicje kilku formató w dziesiętnych liczb zmiennoprzecinkowych 46 Izabela Szczęch

Format IEEE 754 Reprezentacja zmiennoprzecinkowa IEEE 754 pojedynczej precyzji bit znaku: 0 oznacza liczbę dodatnią, ujemną cecha zapisywana jest w kodzie z nadmiarem (dla 8-mio bitowego zapisu nadmiar wynosi 7, zatem w polu cechy moż na zapisać wartoś ci od -7 do 8) mantysa zapisywana jest w stałoprzecinkowym kodzie U. 47 Format IEEE 754 Standard IEEE 754-008 definiuje nie tylko sposó b reprezentacji liczb, ale takż e: sposó b reprezentacji specjalnych wartoś ci, np. nieskończonoś ci, zera sposó b wykonywania działań na liczbach zmiennoprzecinkowych sposó b zaokrąglania liczb 48 Izabela Szczęch 4