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

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

Arytmetyka stało i zmiennoprzecinkowa

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

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

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

Stan wysoki (H) i stan niski (L)

Podstawy Informatyki

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

Pracownia Komputerowa wykład VI

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

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

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

Metoda znak-moduł (ZM)

Pracownia Komputerowa wykład IV

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

Teoretyczne Podstawy Informatyki

Naturalny kod binarny (NKB)

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Zapis liczb binarnych ze znakiem

Arytmetyka binarna - wykład 6

Systemy zapisu liczb.

Technologie Informacyjne

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

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

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

LICZBY ZMIENNOPRZECINKOWE

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

Pracownia Komputerowa wyk ad IV

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

Architektura komputerów

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

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

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

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

Pozycyjny system liczbowy

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

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

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Technologie Informacyjne Wykład 4

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

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

Kod U2 Opracował: Andrzej Nowak

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

Kodowanie informacji. Kody liczbowe

Architektura komputerów

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

Pracownia Komputerowa wyk ad VI

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

architektura komputerów w. 2

Architektura komputerów

Wprowadzenie do informatyki - ć wiczenia

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

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

Wprowadzenie do informatyki - ć wiczenia

Adam Korzeniewski p Katedra Systemów Multimedialnych

Adam Korzeniewski p Katedra Systemów Multimedialnych

Pracownia Komputerowa wykład V

Arytmetyka liczb binarnych

1.1. Pozycyjne systemy liczbowe

LICZBY ZMIENNOPRZECINKOWE

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

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

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

Kodowanie liczb całkowitych w systemach komputerowych

Programowanie Niskopoziomowe

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

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

Techniki multimedialne

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

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

Podstawy Informatyki

Arytmetyka stałopozycyjna

Cyfrowy zapis informacji

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

System Liczbowe. Szesnastkowy ( heksadecymalny)

Technologie Informacyjne Wykład 3

Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer Wojciech Myszka 16 pa«zdziernika 2008

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

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

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

ARCHITEKTURA KOMPUTERÓW. Reprezentacja danych w komputerach

Zwykle liczby rzeczywiste przedstawia się w notacji naukowej :

SYSTEMY LICZBOWE 275,538 =

Wprowadzenie do informatyki - ć wiczenia

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

Architektura systemów komputerowych. Arytmetyka maszyn cyfrowych

Moduł 2 Zastosowanie systemów liczbowych w informacji cyfrowej

BŁĘDY OBLICZEŃ NUMERYCZNYCH

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

Metody numeryczne II. Reprezentacja liczb

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Wprowadzenie do informatyki - ć wiczenia

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

Operacje arytmetyczne

Informatyka kodowanie liczb. dr hab. inż. Mikołaj Morzy

Plan wyk ladu. Kodowanie informacji. Systemy addytywne. Definicja i klasyfikacja. Systemy liczbowe. prof. dr hab. inż.

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

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

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Liczby zmiennoprzecinkowe i błędy

Transkrypt:

Arytmetyka stało- i zmiennoprzecinkowa 1. Informacje wstępne Każdą informację można przedstawid w komputerze za pomocą łaocucha elemantarnych jednostek, zwanych bitami. W przypadku, gdy chcielibyśmy wyrazid pewną liczbę możemy posłużyd się również interpretacją arytmetyczną złożoną z liczb 0 oraz 1. Odpowiednio skonstruowana liczba zapisana zostaje wówczas w systemie dwójkowym. Komputer przetwarza jednak ciągi bitów o określonej długości. Są to wektory bitowe. W ten sposób 8 bitów tworzy bajt. Nazewnictwo większych jednostek uzależnione jest od architektury maszyny przetwarzającej te dane. Mają one wspólną nazwę słowo maszynowe (np. CISC 16 bitów; RISC 32 bity). Wszystkie dane przetwarzane przez komputer możemy zaklasyfikowad do jednej z trzech grup: - kody rozkazów (opcode) - dane systemowe (system structured data) - dane użytkowe (user defined data) W tym przypadku interesuje nas ta trzecia grupa danych użytkowe. Są one najbardziej różnorodnym zestawem danych. Możemy je podzielid na dane: - skalarne - strukturalne - wskaźnikowe Typy skalarne z kolei można podzielid na: - jakościowe lub wyliczeniowe - dyskretne, w tym właśnie stałoprzecinkowe - pseudorzeczywiste, w tym zmiennoprzecinkowe Na bazie podstawowych typów danych język programowania może może definiowad inne, własne typy. Nadany zmiennej typ obowiązuje w zakresie działania deklaracji danej. Jest to również powiązane z ustaleniem sposobu wykonywania działao na danej. Zamiana typu danej wymaga jawnej konwersji, często jest automatyczna określona przez typ zmiennej docelowej. Tak się dzieje w maszynie wirtualnej (język programowania), ale w maszynie rzeczywistej nie ma takich etykiet zmiennych. Typ danej zawartej w słowie maszynowym jest jednoznacznie określony przez użytą operację i powiązane z nią argumenty (implikacja kontekstowa). Standardowymi typami implikowanymi kontekstowo są: typ całkowity, typ naturalny, typ logiczny oraz typ zmiennoprzecinkowy. 2. Kodowanie Każdy bit wspomnianego wektora bitowego ma swój numer pozycji. Numerowanie bitów od pozycji skrajnie prawej to interpretacja wektora bitów jako liczby naturalnej w w binarnym systemie pozycyjnym. Bit najmniej znaczący ma numer zero. Do skróconego zapisu liczb stosuje się notacji hexadecymalnej. Dane liczbowe o wielkości słowa maszynowego to dane pojedynczej precyzji. Dane składające się z większej ilości słów to dane rozszerzonej precyzji zgodnie z jedną z konwencji little endian lub big endian. Dane strukturalne są złożeniem pól bitowych, z których każdy może mied inną interpretację. Tę formę mają kody reprezentacji zmiennoprzecinkowych.

3. Typ Porządkowy naturalny (Naturalny kod binarny) NBC (ang: Natural Binary Code) - naturalny kod binarny jest to system pozycyjny o podstawie 2. Określone w nim liczby są bez znaku. Kolejne liczby naturalne w 2-bitowym NKB wyglądają następująco: Dec Bin(NBC) 0 00 1 01 2 10 3 11 Wartośd = 4. Typ całkowity (Kod uzupełnieniowy U2) Aby móc reprezentowad liczbę całkowitą należy zagwarantowad, aby w przestrzeni kodowej możliwa była zmiana znaku liczby. Przestrzeo ta jest jednak symetryczna, a liczba kodów parzysta, możliwe zatem jest jedno z dwóch rozwiązao prezentacji przestrzeni: z podwójną reprezentacją zera lub wystąpi niewielka asymetria zakresu. Można zatem osobno kodowad znaki + oraz -. Wartośd liczby zapisuje się wówczas tak jak w NKB, a znak liczby określa najbardziej znacząca pozycja. 0 dla liczb dodatnich, 1 dla ujemnych: X = gdzie s to wartośd bitu najbardziej znaczącego, a wartością bitu na i-tej pozycji. Inny sposób jest następujący. Liczba ujemna jest przeciwieostwem artymetycznym liczby dodatniej i odwrotnie. Zatem w systemie pozycyjnym o podstawie β zasadna jest definicja reprezentacji liczby ujemnej jako wektora dopełnieo. Wówczas liczby { } oraz { } są sobie przeciwne. W systemie dwójkowym zatem dopełnieniu cyfry odpowiada negowanie bittów reprezentacji, bo (1-x) = ~x. Ponieważ (x-1) = -x + 1, więc reprezentację kolejnej liczby ujemnej (czyli o wartości bezwzględnej mniejszej o 1) otrzymujemy dodając 1 do liczby poprzedniej. Jest to system U1, czyli uzupełnieniowy do jedynki. Zero ma w nim dwie reprezentacje: 0 0 oraz 1 1. Istnieje również system uzupełnieniowy pełny. W tym przypadku reprezentacje liczb dodatnich są takie same jak liczb w naturalnym kodzie binarnym. Reprezentację liczby -1 otrzymamy poprzez odjęcie wartości 1 od 0. Jest to właściwie podstawą arytmetycznej metody konstrukcji reprezentacji liczb całkowitych. W dwójkowym systemie uzupełnieniowym (U2) arytmetyczny porządek kodów liczb jest zachowany w całym zakresie liczb. Kody liczb dodatnich rozpoczynają się od bitu 0, a ujemnych od 1. Wówczas jeśli : { } reprezentuje dodatnią liczbę X, to { } jest kodem liczby ujemnej większej o X od najmniejszej liczby. Wartośd liczby całkowitej w systemie ujemnym obliczamy ze wzoru: X = Porównanie wartości U1 z U2:

W ogólności reguła uzupełniania polega na negowaniu bitów liczby i dodaniu 1 do otrzymanego kodu. np. więc 5. Typ stałoprzecinkowy Typ stałoprzecinkowy odpowiada pozycyjnej (uzupełnieniowej) reprezentacji liczby. W tym typie jednak możliwe jest określenie pozycji przecinka. Warto przypomnied, że waga pozycji jest całkowitą potęgą podstawy β. W momencie, gdy ustalona liczba pozycji ułamka wynosi r,wartośd każdej liczby podana jest z dokładnością. Można ją przedstawid jako iloczyn liczby całkowitej. Wówczas liczbę taką reprezentuje sekwencja: { } i mnożnika. Reprezentacje stałoprzecinkowe można więc zapisad jako skalowalne reprezentacje liczb całkowitych. Nie ma potrzeby ich osobnej obsługi sprzętowej mogą byd realizowane na tej samej jednostce ALU. 6. Typ zmiennoprzecinkowy Standardem reprezentacji liczb jest użycie notacji inżynierskiej lub naukowej, czyli iloczynu mnożnika i potęgi liczby 10. Można wówczas otrzymad przybliżone wartości rzeczywiste. Realizacja tego sposobu to liczba zmiennoprzecinkowa. Jest ona reprezentowana przez trójkę: (β, M, E), gdzie β podstawa M mnożnik (dawniej Mantysa) E wykładnik (exponent) F = M Jeśli zakres mnożnika nie będzie ograniczony, to liczba zmiennoprzecinkowa może mied różne reprezentacje: F = M, i = -m,, -1,0,1,,m m liczba pozycji mnożnika w ustalonej bazie całkowitej β >= 2. Problem wynikający z powyższych wzorów: Wieloznacznośd. Nie da się jej rozwiązad poprzez ograniczenie bezwzględnej wartości mnożnika od góry. Gdy M <, to zgodnie z powyższymi wzorami ich wyniki są różnymi dozwolonymi reprezentacjami tej samej

liczby. Powoduje to, że prawie 1/β przestrzeni kodowej jest zajęta przez alternatywne reprezentacje tej samej liczby. Prezentacja tego problemu jest pokazana na poniższym obrazku: Podobnie jest przy ograniczaniu rozmiaru mnożnika. Możliwe jest różne kodowanie liczb, których najniższe pozycje są zerami. Aby móc jednoznacznie określid liczbę zmiennoprzecinkową, należy znormalizowad jej mnożnik. Robi się to poprzez ograniczenie wartości bezwzględnej przez kolejne całkowite potęgi podstawy: Każde przeskalowanie takiego mnożnika powoduje jego ponowną denormalizację. Aby zapewnid reprezentację zera albo liczb bardzo małych możliwe są odstępstwa od tej reguły. Należy wówczas dopuścid możliwośd wystąpienia części kodów kodujących dane liczby. Dodatkowo częśd przestrzeni musi zostad również zarezerwowana dla wartości specjalnych, takich jak nieskooczoności. Warto pamiętad, że dokładnośd reprezentacji mnożnika jest stała, co uzależnia gęstośd liczb od wartości mnożnika. W następstwie tego liczby rzeczywiste są w większości tylko przybliżonymi wartościami. 7. Standard IEEE 754 Standardty IEEE 754 i 854 wymagają, aby liczby (oprócz liczb bliskich 0) były znormalizowane. Sam IEEE 754 wymaga,aby mnożnik był z zakresu 1 <= M < 2. Dzięki temu możliwe jest ukrycie najwyższego bitu i wykorzystanie go w inny sposób. Dzieje się tak, ponieważ liczby tak znormalizowane wyglądają następująco: 1,bbbb.bbb. Pierwszym bitem jest bit znaku S (sign). Jeśli liczba zapisana w kodzie dziesiętnym jest ujemna, oznacza to, iż S przyjmie wartośd 1. Jeśli liczba dziesiętna jest dodatnia zero. Dalej następuje 8 bitów kodujących wykładnik 2 (cecha), przy czym kodowanie cechy jest kodowaniem z nadmiarem (BIAS, w tym przypadku BIAS=127) co daje zakres wykładników <-127,128>. Kolejne 23 bity to mantysa liczby, przy czym pomija się wiodący, niezerowy bit. Wartośd liczby znormalizowanej to: F = s znak liczby f wartośd ułamkowa mnożnika 1 + f wartośd mnożnika (mantysa) E wartośd wykładnika w kodzie +N ( )

F nigdy nie będzie równe 0. Dlatego przyjęto, że kod zera zawiera oprócz bitu znaku tylko bity zerowe. Rozróżniane jest zatem zero dodatnie oraz ujemne. Nieskooczonośd +/- - ustawione wszystkie bity wykładnika, mantysa równa 0, może się pojawid np. jako wynik dzielenia przez 0 Poniżej znajduje się zestaw znaków specjalnych, jakie można uzyskad w standardzie: Wyjątki, jakie można otrzymad : - Invalid operation - Division by Zero (dzielenie przez zero) - Overflow (nadmiar wykładniczy liczba zbyt duża) - Underflow (niedomiar, utrata precyzji przy liczbach bliskich 0) - Inexact (niedokładnośd podczas operacji zaokrąglania)