Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

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

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

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

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

Pracownia Komputerowa wykład VI

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

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

Podstawy Informatyki

Kodowanie liczb. Reprezentacja liczb całkowitych. Standard IEEE 754. dr inż. Jarosław Forenc

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

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

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

Jednostki informacji - bit. Kodowanie znaków: ASCII, ISO 8859, Unicode liczb: NKB (BCN), U2, BCD. Liczby zmiennoprzecinkowe standard IEEE 754

Teoretyczne Podstawy Informatyki

dr inż. Jarosław Forenc

Pracownia Komputerowa wyk ad VI

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

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

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

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

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

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

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

Arytmetyka binarna - wykład 6

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

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

Zapis liczb binarnych ze znakiem

Stan wysoki (H) i stan niski (L)

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

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

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

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

Metody numeryczne II. Reprezentacja liczb

Naturalny kod binarny (NKB)

Systemy zapisu liczb.

Dodatek do Wykładu 01: Kodowanie liczb w komputerze

LICZBY ZMIENNOPRZECINKOWE

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

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

Wprowadzenie do informatyki - ć wiczenia

Metoda znak-moduł (ZM)

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

Podstawy Informatyki

Technologie Informacyjne Wykład 4

Pracownia Komputerowa wykład IV

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

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

Kodowanie liczb całkowitych w systemach komputerowych

Pracownia Komputerowa wykład V

Ochrona danych osobowych. Pozycyjne systemy liczbowe. Jednostki informacji. Kodowanie znaków ASCII, ISO 8859, Unicode. Kodowanie liczb NKB, U2, BCD

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

Arytmetyka stałopozycyjna

Technologie Informacyjne

Wprowadzenie do informatyki - ć wiczenia

Adam Korzeniewski p Katedra Systemów Multimedialnych

Wstęp do Informatyki

Adam Korzeniewski p Katedra Systemów Multimedialnych

Kodowanie informacji. Kody liczbowe

Arytmetyka stało i zmiennoprzecinkowa

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

Architektura komputerów

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

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

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

Operacje arytmetyczne

LICZBY ZMIENNOPRZECINKOWE

Pracownia Komputerowa wyk ad IV

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Zwykle liczby rzeczywiste przedstawia się w notacji naukowej :

Architektura komputerów

Pozycyjny system liczbowy

Wprowadzenie do informatyki - ć wiczenia

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

dr inż. Jarosław Forenc

Kod U2 Opracował: Andrzej Nowak

architektura komputerów w. 2

Arytmetyka liczb binarnych

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

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

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

Pracownia komputerowa. Dariusz Wardecki, wyk. VI

1.1. Pozycyjne systemy liczbowe

METODY NUMERYCZNE. Po co wprowadzamy liczby w formacie zmiennoprzecinkowym (floating point)?

Temat 4. Kodowanie liczb

Architektura komputerów

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Techniki multimedialne

Mikroinformatyka. Koprocesory arytmetyczne 8087, 80187, 80287, i387

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

Arytmetyka stało- i zmiennoprzecinkowa. 1. Informacje wstępne

SYSTEMY LICZBOWE 275,538 =

BŁĘDY OBLICZEŃ NUMERYCZNYCH

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

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

L6.1 Systemy liczenia stosowane w informatyce

Reprezentacja symboli w komputerze. Liczby całkowite i zmiennoprzecinkowe. Programowanie Proceduralne 1

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

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

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

W jaki sposób użyć tych n bitów do reprezentacji liczb całkowitych

Transkrypt:

Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 /6 Plan wykładu nr 4 Informatyka Politechnika Białostocka - Wydział lektryczny lektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki / Wykład nr 4 (8.4.) Reprezentacja stałoprzecinkowa kod uzupełnień do dwóch (U) Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej arytmetyka liczb zmiennoprzecinkowych zapis liczb zmiennoprzecinkowych w systemie binarnym zakres liczb zmiennoprzecinkowych Standard I 754 liczby -bitowe i 64-bitowe zakres i precyzja liczb wartości specjalne Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 /6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 4/6 Reprezentacja liczb w systemach komputerowych Reprezentacja liczb stałoprzecinkowych ze iem

Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 5/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 6/6 Kod U Kod U (ZU, uzupełnień do dwóch) jest najpopularniejszym sposobem zapisu liczb całkowitych ze iem Kod U Kod U (ZU, uzupełnień do dwóch) jest najpopularniejszym sposobem zapisu liczb całkowitych ze iem Najstarszy bit jest bitem u liczby: - dodatnia, - ujemna Wartość liczby: X () n x x x... x x ( Kod U jest obecnie stosowany we wszystkich komputerach PC, Amiga, Macintosh oraz w językach programowania n n n ) Waga najstarszego bitu w liczbie to - n- Liczba - n- nie posiada swego przeciwieństwa w n-bitowej reprezentacji kodu U dla n 8 (reprezentacja 8-bitowa) zakres liczb to -8 7 liczba -8 nie posiada swego przeciwieństwa (8) W kodzie U dolna i górna granica zakresu liczb są niesymetryczne Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 7/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 8/6 Kod U Używając n-bitów można przedstawić liczby z zakresu: Kod U Zapis liczb 4-bitowych ( bit -, bity - moduł) w kodzie U: n n X( ), zakres liczb 4-bitowych w kodzie U: 8 7 () () (U) (U) zakres liczb 8-bitowych w kodzie U: 7 7 8 7 () () zakres liczb 6-bitowych w kodzie U: 5 5 768 767 () () (U) (U) (U) (U) Każda wartość w kodzie U jest reprezentowana jednoznacznie - nie ma podwójnej reprezentacji zera W kodzie U liczb ujemnych jest o jeden więcej niż dodatnich... zawsze oznacza (), a... zawsze oznacza - ()

Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 9/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 /6 Kod U Zapis liczb 4-bitowych ( bit -, bity - moduł) w kodzie U: Kod U Zapis liczb 4-bitowych ( bit -, bity - moduł) w kodzie U Zwiększając obszar zajmowany przez liczbę w kodzie U, dodawany obszar wypełnia się bitem u, np. zapis liczb na 4 bitach i 8 bitach: 5 5 () ().. (U) (U) 5 5 () ().. (U) (U) źródło: B. Parhami - Computer Arithmetic: Algorithms and Hardware Design () Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 /6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 /6 Kod U Kod U Nazwa kodu (U - uzupełnień do dwóch) wzięła się ze sposobu obliczania liczb przeciwnych W przypadku liczby n-bitowej wartość przeciwną otrzymujemy odejmując liczbę od dwukrotnej wagi najstarszego bitu ( n- n ) Praktycznie stosuje się algorytm, składający się z dwóch kroków: Krok : inwersja (negacja) wszystkich bitów liczby, tj. zamiana na i na Krok : zwiększenie wyniku o Uwaga: powyższym sposobem nie otrzymamy wartości przeciwnej np. 8-bitowej liczby (U), gdyż ona po prostu nie istnieje Przykłady zapisu liczb: zamieniamy liczbę dodatnią 9 ( )?(U) zamieniamy liczbę na NKB 9 ( ) (NKB) dodajemy bit u: 9 ( ). (U) powyższy zapis liczby dodatniej jest taki sam jak w kodzie U zamieniamy liczbę ujemną 9 ( )?(U) zamieniamy moduł liczby na NKB i dodajemy bit u 9 ) 9() (. negacja bitów.. dodanie 9 ( ). (U)

Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 /6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 4/6 Kod U Zamiana liczby na przeciwną: 75 ( ) 75() 75()?(U) Kod U Zamiany liczby na przeciwną: 75 ( ) 75() 75()?(U) 75 ( ) (U) 75 ( ) (U) Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 5/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 6/6 Kod U Obliczenie wartości dziesiętnej liczby w kodzie U: ( U)?() bit u, - liczba ujemna 7 6 5 4 (U) ( ) (U) (U) 8 6 4 (U) 75 () ( U)?() bit u, - liczba dodatnia 7 6 5 4 ( ) (U) 64 6 8 4 (U) 9 () Kod U Liczba stałoprzecinkowa z częścią ułamkową w kodzie U: przedstawienie liczb 7,7 () w kodzie U z dokładnością do trzech cyfr po przecinku 587 / 9/ 46 / 7/ 6 / 8 / 7,7 ( )?(NKB) 7,7 586,96 587 9 46 7 6 8 9 9 / 4 / / / stawiamy przecinek przed ostatnimi cyframi 4, zaokrąglamy do najbliższej wartości całkowitej (NKB)

Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 7/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 8/6 Kod U Reprezentacja liczb w systemach komputerowych Liczba stałoprzecinkowa z częścią ułamkową w kodzie U:, dodajemy bit u 7,7( ).,., (U) (U) otrzymaną liczbę zamieniamy na przeciwną, czyli szukamy -7,7 () w kodzie U z dokładnością do trzech cyfr po przecinku.,., NOT "".,.,., 7,7( )., (U) Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 9/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 /6 Zapis zmiennoprzecinkowy liczby rzeczywistej Zapis bardzo dużych lub bardzo małych liczb w normalnej notacji pozycyjnej jest niewygodny gdyż wymaga dużej ilości cyfr, np. dwanaście bilionów: trzydzieści trylionów: jedna bilionowa:, Znacznie prostsze jest przedstawienie powyższych liczb w postaci zmiennoprzecinkowej (ang. floating point numbers),, 9,, - Powyższy zapis nazywamy także zapisem w postaci wykładniczej lub też notacją naukową Zapis zmiennoprzecinkowy liczby rzeczywistej Zapis liczby zmiennoprzecinkowej ma postać: gdzie: L M B Przykład: - wartość liczby - mantysa - podstawa systemu - wykładnik, cecha,4 (),4 6,59 () 6,59, L M B 4 (),659 ()

Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 /6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 /6 Zapis zmiennoprzecinkowy liczby rzeczywistej Przykład:, B () () M,, B (4) (), (4), ()? () () (4) M, (4) (4)? () 4 4 () 4 4 4,965 4 () 4 4 4 4 4 () 4 5 5,75,75 44 4 () 9 6 968,5,5,75 (),965 () () () Zapis zmiennoprzecinkowy liczby rzeczywistej Położenie przecinka w mantysie nie jest ustalone i może się zmieniać Poniższe zapisy oznaczają tę samą liczbę 4 4,,4,4 4 Dla ujednolicenia zapisu i usunięcia wielokrotnych reprezentacji tej samej liczby, przyjęto tzw. postać znormalizowaną zapisu liczby, w której mantysa spełnia nierówność: Przykład: B > M,4 - to jest postać znormalizowana, gdyż: >,4,4 4 - to nie jest postać znormalizowana 4, - to nie jest postać znormalizowana Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 /6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 4/6 Zapis zmiennoprzecinkowy liczby rzeczywistej Jak zapisać liczbę w postaci zmiennoprzecinkowej? Przykład: 5,69 () zapisujemy mantysę przy wykładniku równym zero 5,69 () normalizujemy mantysę modyfikując wykładnik liczby,569 () Arytmetyka liczb zmiennoprzecinkowych W arytmetyce zmiennoprzecinkowej kolejność wykonywania operacji ma wpływ na końcowy wynik Arytmetyka zmiennoprzecinkowa nie jest łączna: ( x y) z x (y z) ( x y) z x (y z) Arytmetyka zmiennoprzecinkowa nie jest rozdzielna: x (y z) (x y) (x z) dodatkowo może nastąpić obcięcie (ang. truncate) albo zaokrąglenie (ang. round) mantysy do zadanej ilości cyfr - obcięcie:,5 () - zaokrąglenie:,5 ()

Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 5/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 6/6 Arytmetyka liczb zmiennoprzecinkowych Dodawanie i odejmowanie: dodawanie i odejmowanie liczb zmiennoprzecinkowych wymaga sprowadzenia ich do wspólnego wykładnika (wyrównanie wykładników liczb zmiennoprzecinkowych lub denormalizacja) denormalizacja dotyczy liczby o mniejszym wykładniku tak, aby sprowadzić obie liczby do wspólnego większego wykładnika załóżmy, że mamy dwie liczby zmiennoprzecinkowe: L M B L M B jeśli wykładniki obu liczb są sobie równe ( ), to normalizacji nie trzeba przeprowadzać mantysa sumy (różnicy) liczb jest sumą (różnicą) mantys liczb, zaś wykładnik sumy (różnicy) jest równy wykładnikowi dodawanych (odejmowanych) liczb: L ± L M B ± M B (M ± M ) B Arytmetyka liczb zmiennoprzecinkowych Dodawanie i odejmowanie: jeśli wykładnik pierwszej liczby jest większy od wykładnika drugiej liczby ( > ), to sumę (różnicę) liczb wyznaczamy ze wzoru: L ± L M B ± M B jeśli wykładnik drugiej liczby jest większy od wykładnika pierwszej liczby ( > ), to sumę (różnicę) liczb wyznaczamy ze wzoru: B L ± L M B ± M B B L ± L (M ± M B ) B L ± L M B B L ± L M B B L ± L (M B ± M B ± M B ± M ) B Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 7/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 8/6 Arytmetyka liczb zmiennoprzecinkowych Przykład - dodawanie: obliczamy sumę dwóch liczb zmiennoprzecinkowych: L M B L M B,5,5 Arytmetyka liczb zmiennoprzecinkowych Przykład - odejmowanie: obliczamy różnicę dwóch liczb zmiennoprzecinkowych: L M B L M B,5,5 ponieważ <, to stosujemy wzór: ponieważ >, to stosujemy wzór: obliczenia: L L (M B M ) B obliczenia: L L (M M B ) B L L,5,5 L L (,5 L L (,5,5),5) L L (,5,5),55 L L,5,5 L L (,5,5 ) L L (,5,5 ) L L (,5,5),475 otrzymany wynik jest w postaci znormalizowanej otrzymany wynik jest w postaci znormalizowanej

Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 9/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 /6 Arytmetyka liczb zmiennoprzecinkowych Mnożenie: Dzielenie: iloczyn liczb L i L ma postać: L L (M M) B mantysa iloczynu jest iloczynem mantys, zaś wykładnik iloczynu jest sumą wykładników po wykonaniu mnożenia mantysa wyniku jest normalizowana iloraz liczb L i L ma postać: L / L (M / M) B mantysa ilorazu jest ilorazem mantys, zaś wykładnik ilorazu jest różnicą wykładników po wykonaniu dzielenia mantysa wyniku jest normalizowana Arytmetyka liczb zmiennoprzecinkowych Przykład - mnożenie: obliczamy iloczyn dwóch liczb zmiennoprzecinkowych: obliczenia: L M B,6, L M B, L L M M B,6,,68 otrzymany wynik jest w postaci znormalizowanej Przykład - dzielenie: obliczamy iloraz dwóch liczb zmiennoprzecinkowych: obliczenia: L M B,6, L M B, 4 L / L (M / M ) B,6/,,69565 normalizacja wyniku: 4 L / L,69565 6,9565 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 /6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 /6 Liczby zmiennoprzecinkowe w systemie binarnym W praktycznych realizacjach zapisu liczb zmiennoprzecinkowych przyjmuje się ograniczony zakres na mantysę i cechę Z powyższego powodu liczba w zapisie zmiennoprzecinkowym jest określona z pewną dokładnością i może występować tylko w określonym zakresie Zakodowana liczba zmiennoprzecinkowa ma postać: 4 6 5 8 7 S M M M M M M M M M M M M M M M M M M M M M M M wykładnik mantysa Liczby zmiennoprzecinkowe w systemie binarnym 4 6 5 8 7 S M M M M M M M M M M M M M M M M M M M M M M M wykładnik Wartość liczby obliczana jest ze wzoru: gdzie: L ( ) M S B mantysa L - wartość liczby S - liczby (ang. sign), przyjmuje wartość lub M - znormalizowana mantysa (ang. mantissa), liczba ułamkowa B - podstawa systemu liczbowego (ang. base) - wykładnik (ang. exponent), cecha, liczba całkowita W systemie binarnym podstawa systemu jest stała: B L ( ) M S

Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 /6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 4/6 Zakres liczb zmiennoprzecinkowych Załóżmy, że liczba składa się z: m - cyfr mantysy n - cyfr wykładnika (n - cyfr wartości i cyfry u) - cyfry u całej liczby Zakres liczb zmiennoprzecinkowych W takim przypadku najmniejsza i największa wartość możliwa do zapisania w tej reprezentacji wynoszą: x x min max M M min max B B min max B min (B B (m) ) B max Zakres liczb, które mogą być reprezentowane w danym zapisie: x max, x min { } x min, x max Wartości minimalne i maksymalne: wykładnik: mantysa: M min min n B M max max n B B B (m) Zero jest wartością specjalną, która nie jest bezpośrednio reprezentowana w tym zapisie Zazwyczaj istnieją także inne wartości specjalne, które są reprezentowane w inny sposób, np., - Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 5/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 6/6 Zakres liczb zmiennoprzecinkowych Nie wszystkie liczby rzeczywiste można przedstawić za pomocą zapisu zmiennoprzecinkowego Zakres liczb zmiennoprzecinkowych Liczby reprezentowane w notacji zmiennoprzecinkowej nie są rozmieszczone równomiernie na osi liczb jak liczby stałopozycyjne Możliwe wartości są rozłożone gęściej na początku osi, a rzadziej w miarę oddalania się od początku x min - najmniejsza wartość możliwa do zapisania w danej reprezentacji x max - największa wartość możliwa do zapisania w danej reprezentacji Niedomiar występuje, gdy wielkość ułamkowa jest zbyt mała - zazwyczaj jest wtedy aproksymowana przez zero Nadmiar występuje, gdy wynik operacji zmiennoprzecinkowej jest większy od x max lub mniejszy od -x max Wiele wyników obliczeń musi być zatem zaokrąglana do najbliższych wartości możliwych do reprezentowania

Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 7/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 8/6 Przesunięcie wykładnika W celu uniknięcia kodowania u wykładnika jest on zapisywany jako wartość przesunięta o pewną stałą (ang. biased exponent) - zapis wykładnika z nadmiarem, z przesuniętym wykładnikiem Właściwą wartość wykładnika otrzymuje się poprzez odjęcie od zakodowanego wykładnika wartości przesunięcia (ang. bias) Wartość liczby zmiennoprzecinkowej oblicza się zatem ze wzoru: gdzie: S L ( ) M BIAS L - wartość liczby S - liczby M - mantysa - wykładnik BIAS - przesunięcie (nadmiar) Typowe wartości przesunięcia wynoszą: dla formatu -bitowego: 7-7 () 7F (6) dla formatu 64-bitowego: - () FF (6) dla formatu 8-bitowego: 4-68 () FFF (6) Standard I 754 Standard opracowany w celu ujednolicenia operacji na liczbach zmiennoprzecinkowych na różnych platformach sprzętowych I Std. 754-985 - I Standard for Binary Floating-Point Arithmetic I Std. 854-987 - I Standard for Radix-Independent Floating-Point Arithmetic standard niezależny od bazy obejmuje arytmetykę dwójkową i dziesiętną nie precyzuje dokładnie przyporządkowania poszczególnych bitów ani sposobu kodowania liczb zmiennoprzecinkowych I Std. 754-8 - I Standard for Floating-Point Arithmetic najnowsza wersja standardu zawiera I Std. 754-985 i I Std. 854-987 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 9/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 4/6 Standard I 754 Obecnie praktycznie wszystkie implementacje sprzętowe liczb zmiennoprzecinkowych oparte są o standard I 754 Standard I 754 Standard definiuje następujące klasy liczb zmiennoprzecinkowych: Standard wymaga, aby liczba była przechowywana na trzech polach bitowych: u (S) mantysy (M) przesuniętego wykładnika () W takim przypadku wartość liczby wyznaczana jest ze wzoru: S L ( ) M BIAS Precyzja Pojedyncza (ang. single) Pojedyncza rozszerzona (ang. single extended) Podwójna (ang. double) Podwójna rozszerzona (ang. double extended) Długość słowa [bity] Znak [bity] Długość [bity] Wykładnik Zakres Długość [bity] Mantysa Cyfry znaczące 8 ±7 ±8 7 4 ± ±8 64 ± ±8 5 6 79 5 ±68 ±49 6 9 źródło: Gryś S.: Arytmetyka komputerów w praktyce. PWN, Warszawa, 7 (str. 6).

Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 4/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 4/6 Standard I 754 W przypadku liczb: pojedynczej rozszerzonej precyzji (ang. single extended precision) podwójnej rozszerzonej precyzji (ang. double extended precision) standard podaje jedynie minimalną liczbę bitów pozostawiając szczegóły implementacji producentom procesorów i kompilatorów Bardzo popularny jest 8-bitowy format podwójnej rozszerzonej precyzji wprowadzony przez firmę Intel W 8-bitowym formacie Intela: długość słowa: 8 bitów : bit wykładnik: 5 bitów (zakres: ±68 ±49 ) mantysa: 6 bit (cyfry znaczące: 9) Standard I 754 - precyzja liczb Liczba bitów wykładnika decyduje o zakresie liczb, które można wyrażać w danym formacie Liczba bitów mantysy decyduje o precyzji liczb Jako precyzję należy rozumieć liczbę zapamiętywanych cyfr znaczących w systemie dziesiętnym W systemie o podstawie p używając n cyfr można wyrazić p n różnych wartości W celu określenia liczby bitów potrzebnych do zakodowania cyfry dziesiętnej wystarczy rozwiązać równanie: n n log() Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 4/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 44/6 Standard I 754 - precyzja liczb Do wyznaczenia liczby cyfr dziesiętnych (d), które można zakodować na m bitach stosujemy prostą proporcję: stąd: cyfra dziesiętna - log () bitów d cyfr dziesiętnych - m bitów d log m() Standard I 754 - precyzja liczb Dla formatu pojedynczej precyzji: mantysa: 4 bity cyfry znaczące: 7 Dla formatu podwójnej precyzji: mantysa: 5 5 bity cyfry znaczące: 6 4 d log () 5 d log () 4,98 5,98 7,47 7 5,9546 6 Dla formatu podwójnej rozszerzonej precyzji: mantysa: 6 64 bity cyfry znaczące: 9 64 d log () 64,98 9,659 9

Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 45/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 46/6 Standard I 754 - precyzja liczb #include <stdio.h> int main() { float x; double y; } float -> 456796. double -> 456789. x 456789.; /*.4.567.89 */ y 456789.; /*.4.567.89 */ printf("float -> %f\n",x); printf("double -> %f\n\n",y); y 456789456789.; printf("double -> %f\n",y); return ; double -> 4567894567. Standard I 754 Standard I 754 definiuje także trzy formaty stałoprzecinkowe dwójkowe i jeden stałoprzecinkowy format dziesiętny BCD: 6-bitowy format całkowity (ang. short integer) -bitowy format całkowity (ang. integer) 64-bitowy format całkowity (ang. extended integer) 8-bitowy format dziesiętny BCD (kodowanie 8-cyfrowej liczby całkowitej dziesiętnej oraz u na najbardziej znaczącej pozycji) Standard I 754 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 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 47/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 48/6 Standard I 754 - liczby -bitowe Liczba pojedynczej precyzji przechowywana jest na bitach: 4 6 5 8 7 S M M M M M M M M M M M M M M M M M M M M M M M Standard I 754 - liczby -bitowe Liczba pojedynczej precyzji przechowywana jest na bitach: 4 6 5 8 7 S M M M M M M M M M M M M M M M M M M M M M M M wykładnik (8 bitów) mantysa ( bity) wykładnik (8 bitów) mantysa ( bity) Pierwszy bit w zapisie (bit nr ) jest bitem u ( - liczba dodatnia, - liczba ujemna) Wykładnik zapisywany jest na 8 bitach (bity nr -) z nadmiarem (przesunięciem wykładnika) o wartości 7 Wykładnik może przyjmować wartości od -7 (wszystkie bity wyzerowane) do 8 (wszystkie bity ustawione na ) Mantysa zapisywana jest na bitach w kodzie U W większości przypadków mantysa jest znormalizowana Wartość mantysy zawiera się pomiędzy a, a zatem w zapisie liczby pierwszy bit jest zawsze równy Powyższy bit nie jest zapamiętywany, natomiast jest automatycznie uwzględniany podczas wykonywania obliczeń Dzięki pominięciu tego bitu zyskujemy dodatkowy bit mantysy (zamiast bitów mamy 4 bity)

Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 49/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 5/6 Standard I 754 - liczby -bitowe Przykład: Standard I 754 - liczby -bitowe Przykład (cd.): obliczmy wartość dziesiętną liczby zmiennoprzecinkowej (? dzielimy liczbę na części określamy liczby I754) { 44 44444 44444 Sbit u wykladnik M mantysa (tylko czesc ulamkowa) () wyznaczamy mantysę dopisując na początku ( - liczby w kodzie U, - część całkowita) i stawiając przecinek M, (U) 4,5,65,565 wartość dziesiętną liczby zmiennoprzecinkowej obliczamy według wzoru: S L ( ) M () S liczba dodatnia podstawiając otrzymujemy: obliczamy wykładnik pamiętając, że w reprezentacji -bitowej nadmiar wynosi 7 ( ) 8 4 7 { 6() nadmiar S, 6( ), M, 565 6 L ( ),565 () ( () I754) () Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 5/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 5/6 Standard I 754 - liczby -bitowe Przykład: Standard I 754 - liczby -bitowe Przykład (cd.): obliczmy wartość dziesiętną liczby zmiennoprzecinkowej (? dzielimy liczbę na części określamy liczby I754) { 44 44444 44444 Sbit u wykladnik Mmantysa (tylko czesc ulamkowa) () wyznaczamy mantysę dopisując na początku ( - liczby w kodzie U, - część całkowita) i stawiając przecinek M, (U) 4,5,5,65,85 wartość dziesiętną liczby zmiennoprzecinkowej obliczamy według wzoru: S L ( ) M () S liczba ujemna podstawiając otrzymujemy: obliczamy wykładnik pamiętając, że w reprezentacji -bitowej nadmiar wynosi 7 ( ) 8 4 5 7 { 8() nadmiar S, 8( ), M, 85 8 L ( ),85 464 ( 464 () () I754) ()

Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 5/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 54/6 Standard I 754 - liczby 64-bitowe Liczba podwójnej precyzji przechowywana jest na 64 bitach: Standard I 754 - kalkulator I-754 Calculators - http://babbage.cs.qc.edu/i-754/ Pierwszy bit w zapisie (bit nr 6) jest bitem u ( - liczba dodatnia, - liczba ujemna) Wykładnik zapisywany jest na bitach (bity nr 6-5) z nadmiarem (przesunięciem wykładnika) o wartości 4 Wykładnik może przyjmować wartości od - (wszystkie bity wyzerowane) do 4 (wszystkie bity ustawione na ) Mantysa zapisywana jest na 5 bitach w kodzie U (pierwszy bit mantysy, zawsze równy, nie jest zapamiętywany) Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 55/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 56/6 Standard I 754 - kalkulator I-754 Calculators - http://babbage.cs.qc.edu/i-754/ Standard I 754 - zakres liczb Pojedyncza precyzja: największa wartość:,4 8 najmniejsza wartość:,4-45 zakres liczb: <-,4 8... -,4-45 > {} <,4-45...,4 8 > Podwójna precyzja: największa wartość:,8 8 najmniejsza wartość: 4,9-4 zakres liczb: <-,8 8... -4,9-4 > {} <4,9-4...,8 8 > Podwójna rozszerzona precyzja: największa wartość:, 49 najmniejsza wartość:,6-495 zakres liczb: <-, 49... -,6-495 > {} <,6-495..., 49 >

Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 57/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 58/6 Standard I 754 - wartości specjalne Oprócz zwykłych liczb w standardzie I 754 zdefiniowano kilka wartości specjalnych: zero nieskończoność liczba zdenormalizowana nieliczby Kodowanie wartości specjalnych jest możliwe dzięki zastosowaniu przesunięcia wykładnika - wartości graniczne (np. h i FFh) są zarezerwowane do kodowania wartości specjalnych Zapis z przesunięciem wykładnika jest monotoniczny (czego nie ma w kodach Z-M i U), np. NKB z przesunięciem: - 7h 7Fh 8h Z-M: - 8h h/8h h U: - FFh h h Standard I 754 - wartości specjalne Zero bit u może przyjmować dowolną wartość, a zatem można otrzymać zero dodatnie lub zero ujemne...... - zero dodatnie wykładnik mantysa - zero ujemne...... wykładnik mantysa wszystkie bity wykładnika i mantysy są równe zeru przy porównaniach zero dodatnie i ujemne są traktowane jako równe sobie Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 59/6 Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 6/6 Standard I 754 - wartości specjalne Nieskończoność bit u określa czy mamy nieskończoność dodatnią czy ujemną...... wykładnik mantysa...... - nieskończoność dodatnia - nieskończoność ujemna Standard I 754 - wartości specjalne Liczba zdenormalizowana... x x x x x x x x x x x x... wykładnik mantysa... x x x x x x x x x x x x... wykładnik mantysa wykładnik mantysa wszystkie bity wykładnika są równe jeden, zaś wszystkie bity mantysy - zero nieskończoność występuje w przypadku wystąpienia nadmiaru (przepełnienia) oraz przy dzieleniu przez zero bit u może być równy zero lub jeden, wszystkie bity wykładnika są równe zeru, zaś bity mantysy przyjmują dowolne wartości pojawia się, gdy występuje niedomiar (ang. underflow), ale wynik operacji można jeszcze zapisać denormalizując mantysę w takim przypadku mantysa nie posiada domyślnej części całkowitej równej, tzn. reprezentuje liczbę o postaci,xxx xxx, a nie,xxx xxx

Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 6/6 Koniec wykładu nr 4 Dziękuję za uwagę!