Liczby zmiennoprzecinkowe

Podobne dokumenty
Liczby zmiennopozycyjne. Kody Hamminga.

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

1 Bª dy i arytmetyka zmiennopozycyjna

2 Liczby rzeczywiste - cz. 2

Podstawy Informatyki

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

Pracownia Komputerowa wykład VI

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

Pracownia Komputerowa wyk ad VI

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

Dokªadny jak komputer

Arytmetyka binarna - wykład 6

Zwykle liczby rzeczywiste przedstawia się w notacji naukowej :

Dokªadny jak komputer?

Naturalny kod binarny (NKB)

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Architektury systemów komputerowych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

LICZBY ZMIENNOPRZECINKOWE

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

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

Metody numeryczne i statystyka dla in»ynierów

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

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

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

Kod U2 Opracował: Andrzej Nowak

Architektura komputerów

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

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

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

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

Zapis liczb binarnych ze znakiem

Ukªady równa«liniowych

Technologie Informacyjne

Pozycyjny system liczbowy

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

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

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Bash i algorytmy. Elwira Wachowicz. 20 lutego

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

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

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Systemy zapisu liczb.

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

Metodydowodzenia twierdzeń

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Dodatek do Wykładu 01: Kodowanie liczb w komputerze

Arkusz maturalny. Šukasz Dawidowski. 25 kwietnia 2016r. Powtórki maturalne

Arytmetyka stało i zmiennoprzecinkowa

Liczby zmiennoprzecinkowe i błędy

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów

Funkcja kwadratowa, wielomiany oraz funkcje wymierne

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Przetwarzanie sygnaªów

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

Arytmetyka zmiennopozycyjna

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

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

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

Podstawy Informatyki

Pracownia komputerowa. Dariusz Wardecki, wyk. VI

PODSTAWY METROLOGII ĆWICZENIE 4 PRZETWORNIKI AC/CA Międzywydziałowa Szkoła Inżynierii Biomedycznej 2009/2010 SEMESTR 3

1. Wprowadzenie do C/C++

O pewnym zadaniu olimpijskim

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

Wprowadzenie do informatyki - ć wiczenia

Zestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym.

Pracownia Komputerowa wykład IV

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

Pracownia Komputerowa wykład V

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

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

Metody numeryczne II. Reprezentacja liczb

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

Wprowadzenie do informatyki - ć wiczenia

Wprowadzenie do informatyki - ć wiczenia

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

Teoretyczne Podstawy Informatyki

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

1. Wprowadzenie do C/C++

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, Dawid Rasaªa Metody numeryczne 1 / 9

1 Metody iteracyjne rozwi zywania równania f(x)=0

Technologie Informacyjne Wykład 4

Pracownia Komputerowa wyk ad IV

Adam Korzeniewski p Katedra Systemów Multimedialnych

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

BŁĘDY OBLICZEŃ NUMERYCZNYCH

Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:

Adam Korzeniewski p Katedra Systemów Multimedialnych

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

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

Algebra Boole'a i logika cyfrowa

Metody dowodzenia twierdze«

Wprowadzenie do informatyki ćwiczenia

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

Transkrypt:

Liczby zmiennoprzecinkowe 1 Liczby zmiennoprzecinkowe Najprostszym sposobem reprezentowania liczb rzeczywistych byªaby reprezentacja staªopozycyjna: zakªadamy,»e mamy n bitów na cz ± caªkowit oraz m na cz ± uªamkow. Wad takiego rozwi zania jest stosunkowo niewielki przedziaª, z którego liczby mo»emy reprezentowa : cz sto podczas oblicze«u»ywamy zarówno warto±ci bardzo du»ych jaki i bardzo maªych. Dlatego w komputerach przechowuje si liczby rzeczywiste w postaci zmiennoprzecinkowej (ang. oating point): ±m b e. Pami tamy osobno znak, mantys m oraz wykªadnik e. Podstawa b jest ustalona (zazwyczaj 2) i nie jest jawnie przechowywana. W konkretnej reprezentacji na mantys i wykªadnik przeznaczone s odpowiednie, ustalone liczby bitów. Zatem potramy reprezentowa sko«czon liczb warto±ci. Im dªu»sza mantysa, z tym wi ksz dokªadno±ci mo»emy reprezentowa liczby. Z kolei im dªu»szy wykªadnik, tym wi kszy przedziaª z jakiego liczby potramy reprezentowa. Ka»d liczb mo»na zapisa w postaci zmiennopozycyjnej na wiele sposobów. W konkretnych reprezentacjach ustala si posta jednoznaczn, tzw. znormalizowan. Zazwyczaj przyjmuje si,»e przecinek w mantysie ustawiony jest bezpo±rednio przed pierwsz cyfr znacz c lub za ni. W przypadku podstawy reprezentacji b = 2 pierwsza cyfra znacz ca 1 nie jest zazwyczaj jawnie pami tana. Mówimy wtedy o ukrytej 1. Zauwa»my,»e przy takim zaªo»eniu nie mo»na reprezentowa liczby 0. Dlatego 0 jak i kilka innych warto±ci traktowanych jest wyj tkowo i przypisywane s im specjalne ci gi bitów. 1.1 Prosta modelowa reprezentacja Rozwa»my prost modelow reprezentacj, w której liczby pami tane s jako ci gi sze±ciobitowe zeemmm, gdzie z oznacza bit znaku (0 - plus, 1 minus), ee to dwubitowy wykªadnik pami tany z przesuni ciem o 2 (reprezentacja z przesuni ciem jest standardem dla wykªadników), a mmm to trzy bity znormalizowanej mantysy. Zakªadamy,»e pierwsza jedynka w mantysie nie jest ukryta, a zero reprezentowane jest jako specjalny ci g 000000. Reprezentowalne warto±ci przedstawione s na rysunku 1. Najmniejsza reprezentowalna warto± dodatnia to 1 8 wstawiamy najmniejsz mo»liw mantys : 0.100 oraz najmniejszy wykªadnik: 2. Odpowiedni ci g bitów to 000100. Podobnie, najwi ksz warto±ci jest 1 3 4 : 011111. Zauwa»my,»e pomi dzy reprezentowalnymi liczbami pojawiaj si ró»ne odst py im wi ksze 1 warto±ci, tym wi ksze odst py. I tak najmniejszy odst p wynosi 32 (gdy wykªadnik jest równy -2 i zmieniamy mantys o 1 8, a najwi kszy 1 4, gdy wykªadnik jest równy 2. Za to mniej wi cej staªa jest wzgl dna odlegªo± : stosunek warto±ci liczby do warto±ci jej s siada. Zatem mo»emy powiedzie,»e w naszej reprezentacji mamy mniej wi cej staªy wzgl dny bª d przybli»enia. Zauwa»my teraz,»e nie wszysktkie ci gi bitów w naszej reprezentacji s poprawne: niepoprawne s te, które maj 0 jako pierwsz cyfr mantysy (z wyj tkiem ci gu 000000). Zatem nasza reprezentacja pozwala przechowywa 33 ró»ne warto± i. 1

Rysunek 1: Liczby reprezentowalne w naszym modelu Jeszcze jedn charakterystyczn cech reprezentacji zmiennopozycyjnej (znormalizowanej) jest stosunkowo du»y odst p pomi dzy zerem a pierwsz reprezentowaln warto±ci. Przedziaª pomi dzy zerem a pierwsz warto±ci reprezentowaln nazywany jest niedomiarem (odpowiednio dodatnim lub ujemnym). Mówimy tak»e o nadmiarze (równie» dodatnim lub ujemnym) jest to przedziaª powy»ej (poni»ej) najwi kszej (najmniejszej) reprezentowalnej warto±ci. O arytmetyce zmiennopozycyjnej b dziemy mówi nieco dalej, teraz spróbujmy wykona w naszej reprezentacji proste dziaªanie a + b dla a = 0.2 i b = 0.7. Przeksztaª my nasze uªamki na system binarny: a = 0.00110011... 0.110 2 2, b = 0.10110... 0.101 2 0. Poniewa» mo»emy pami ta tylko trzy bity mantysy, to ju» na pocz tku tracimy precyzj. Wyrównujemy wykªadniki zwi kaszaj c pierwszy do 0: a = 0.001 2 0. Ponownie tracimy precyzj (w rzeczywisto±ci mo»e by ciut lepiej, bo obliczenia po±rednie wykonywane s zazwyczaj na rozszerzonej reprezentacji zawieraj cej dodatkowe bity). Dodajemy mantysy: a + b = 0.110 2 0. Otrzymujemy zatem 0.75. Podobne bª dy napotykamy w rzeczywisto±ci. Oto prosty przykªad ilustruj cy bª d wynikaj cy z braku dokªadnej reprezentacji dla pewnych liczb. Uruchom nast puj ce programy w j zyku C: int main{} { float suma=0; long i; for (i=0; i<100000; ++i) suma=suma+0.6; } printf{"%f", suma); int main{} { float suma=0; long i; for (i=0; i<100000; ++i) suma=suma+0.5; 2

} printf{"%f", suma); W pierwszym przypadku wynik odbiega od oczekiwanego, w drugim jest poprawny. Wynika to z faktu,»e 0.6, w przeciwie«stwie do 0.5 nie ma dokªadnej reprezentacji w systemie dwójkowym (z ograniczon liczb bitów po przecinku). 2 Standard IEEE 754 Norma IEEE 754 jest powszechnie obowi zuj cym standardem w jakim przechowywane s we wspóªczesnych komputerach liczby zmiennopozycyjne. Oprócz formatu danych okre±la on te» pewne zasady wykonywania oblicze«arytmetycznych, dzi ki czemu mo»na zaªo»y,»e ten sam program, napisany np. w j zyku C, uruchomiony na ró»nych maszynach da te same rezultaty. Mamy dwa formaty: 32-bitowy pojedynczej precyzji (float w C) i 64-bitowy (podwójnej precyzji) (double w C). Dodatkowo deniowane s formaty pomocnicze: rozszerzony pojedynczej precyzji i rozszerzony podwójnej precyzji. Sªu» one do wykonywania oblicze«po±rednich. Format pojedynczej precyzji Mantysa: 23 bity (znormalizowana, ukryta 1 przed przecinkiem), wykªadnik: 8 bitów (przesuni cie 127), zakres liczb dodatnich: 10 38, 10 +38, liczba reprezentowalnych warto±ci: 1, 98 2 31. Format podwójnej precyzji Mantysa: 52 bity (znormalizowana, ukryta 1 przed przecinkiem), wykªadnik: 11 bitów (przesuni cie 1023), zakres liczb dodatnich: 10 308, 10 +308, liczba reprezentowalnych warto±ci: 1, 99 2 63. Niektóre sekwencje bitów s interpretowane w specjalny sposób. S to sekwencje z wykªadnikiem skªadaj cym si z samych zer lub samych jedynek: same 0 w wykªadniku, same zera w mantysie: reprezentuj 0 (dodatnie lub ujemne...) same 0 w wykªadniku, niezerowa mantysa: liczb zdenormalizowana (bit na lewo od przecinka jest zerem, wykªadnik wynosi -126 lub -1022); pomysª na redukcj odst pu pomi dzy zerem a najmniejsz dodatni (ujemn ) liczb reprezentowaln. same 1 w wykªadniku, same 0 w mantysie: plus lub minus niesko«czono± same 1 w wykªadnkiu, niezerowa mantysa: NaN (not a number) sytuacja wyj tkowa 3 Arytmetyka zmiennoprzecinkowa Ze wzgl du na zupeªnie inn reprezentacj za operacje arytemtyczne na liczbach zmiennopozycyjnych odpowiedzialne s zupeªnie inne obwody procesora ni» za operacje caªkowitoliczbowe. 3.1 Dodawanie i odejmnowanie 1. Sprawdzanie zer. 2. Wyrównywanie wykªadników 3. Dodawanie lub odejmnowanie mantys 4. Normalizowanie wyniku. 3

3.2 Mno»enie i dzielenie 1. Sprawdzanie zer. 2. Dodawanie lub odejmowanie wykªadników 3. Mno»enie lub dzielenie mantys, ustawianie znaku 4. Normalizowanie wyniku 5. Zaokr glanie Rysunek 2: Mno»enie zmiennopozycyjne 4

Rysunek 3: Dzielenie zmiennopozycyjne 5