Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

1. 2 Podstawy arytmetyki komputerowej Paweł Perekietka.

Podobne prezentacje


Prezentacja na temat: "1. 2 Podstawy arytmetyki komputerowej Paweł Perekietka."— Zapis prezentacji:

1 1

2 2 Podstawy arytmetyki komputerowej Paweł Perekietka

3 Spis treści 1. Reprezentacja liczb całkowitych – Notacja uzupełnieniowa (kod U2) – Błąd przepełnienia (nadmiaru) – Notacja z przesunięciem 2. Notacja zmiennopozycyjna. Reprezentacja liczb całkowitych i niecałkowitych – Notacja wykładnicza – Gęstość (precyzja) reprezentacji – Błędy zaokrąglenia 3

4 Reprezentacja liczb całkowitych 4

5 Reprezentacja liczb całkowitych. Kod U2 Najpopularniejszym systemem reprezentacji liczb całkowitych w systemach informatycznych jest notacja uzupełnieniowa do dwóch (kod U2). W przypadku systemu 3-bitowego, wygląda tak: Uwaga: Liczby 4 nie można reprezentować w systemie 3-bitowym. 5

6 Reprezentacja liczb całkowitych. Kod U2 W systemie uzupełnieniowym do dwóch, wartość lewego skrajnego bitu decyduje o znaku liczby. Dlatego mówi się o bicie znaku (ang. sign bit ) Między reprezentacjami liczb przeciwnych istnieje zależność: są identyczne od prawej aż do pozycji pierwszej jedynki dalej są swoimi uzupełnieniami do dwóch, tzn. tworzą je takie ciągi bitów, że jeden można otrzymać z drugiego przez zamianę wszystkich 0 na 1 i 1 na 0. Uwaga: W systemie 4-bitowym nie zapiszemy liczby przeciwnej do -8 =

7 Reprezentacja liczb całkowitych. Kod U2 Ćwiczenie: Zapisz liczbę –13 w systemie 8-bitowym w notacji U2. 13 = , więc 13 = ????????? 2 co dalej?

8 Reprezentacja liczb całkowitych. Kod U2 Popularność notacji U2 wynika m.in. z faktu, że operacje dodawania i odejmowania są w nim wykonywane tak samo, jak dla liczb binarnych bez znaku (naturalnego kodu binarnego). Oto przykład dla systemu 8-bitowego: (-13) Uwaga: Pojawiające się w czasie odejmowania przeniesienia poza bit znaku są ignorowane. 8

9 Reprezentacja liczb całkowitych. Przepełnienie Błąd przepełnienia (nadmiaru) (ang. overflow ) pojawia się wtedy, kiedy liczba, którą chcemy zakodować, nie mieści się w zakresie reprezentowanych w kodzie wartości. Przykład: W systemie 4-bitowym nie da się zapisać wartości 9. Oznacza to, że nie możemy otrzymać poprawnego wyniku dodawania = Jak wykryć błąd przepełnienia? Uwaga: W praktyce powszechnie stosuje się systemy co najmniej 32-bitowe. Umożliwia to zapamiętywanie bez przepełnienia wartości dodatnich aż do

10 Reprezentacja liczb całkowitych. Przepełnienie Programiści (i świadomi użytkownicy komputerów) powinni uświadamiać sobie, że dodawanie do siebie wielu małych wartości da w wyniku dużą liczbę. Przykład: Dawniej powszechnie stosowano ciągi 16-bitowe. Przepełnienie nie następowało zatem jedynie do wartości 2 15 = września 1989 r., po latach niezawodnej pracy, system komputerowy w pewnym szpitalu nagle przestał działać. Co okazało się przyczyną problemu? Uwaga: Awaria, podobna do wyżej opisanej, może powtórzyć się 19 stycznia 2038 roku i to na większą skalę. Dlaczego? 10

11 Notacja (kod) z przesunięciem Inną metodą reprezentacji wartości całkowitych jest notacja z przesunięciem. Dla systemu 3-bitowego z przesunięciem 3, wygląda tak: Uwaga: Każdej długości reprezentacji odpowiada optymalna wartość przesunięcia. Np. dla systemu 4-bitowego będzie to 7. 11

12 12 Notacja zmiennopozycyjna. Reprezentacja liczb całkowitych i niecałkowitych

13 Notacja zmiennopozycyjna Reprezentacja liczb niecałkowitych (z częścią ułamkową) wymaga sposobu na zapamiętanie „kropki” oddzielającej część ułamkową od całkowitej. Stosowana jest notacja zmiennopozycyjna, wywodząca się z notacji naukowej (wykładniczej). ± B * 2 A Przykład dla precyzji 8-bitowej: Najbardziej znaczący bit przeznacza się na bit znaku. Pozostałe bity dzieli się na dwie grupy, zwane polami: – pole A wykładnika (ang. exponent field ) – pole B części ułamkowej mantysy (ang. mantissa field ) 13

14 Notacja zmiennopozycyjna. Przykład Przykład 1: Bit znaku ma wartość 0. Wykładnik to 101. Część ułamkowa mantysy to 0,1011. Wykładnik to liczba całkowita zapisana w notacji z nadmiarem. W tym przypadku będzie to liczba 2. Otrzymujemy liczbę, która w naturalnym kodzie dwójkowym będzie równa 110, jest więc binarną reprezentacją liczby 6 3/4 14

15 Notacja zmiennopozycyjna. Przykład 2 Przykład 2: Zapisać liczbę 1 1/16 w notacji zmiennopozycyjnej. Bit znaku będzie miał wartość /16 = 1,0625 w naturalnym kodzie to 1,0001. Część ułamkowa mantysy to zatem 0,0001. Wykładnik to 0. W notacji z nadmiarem: 011. Pełny bajt wygląda zatem następująco: Przykład 3: Jak zapisać 0 (zero) w notacji zmiennopozycyjnej? 15

16 Notacja zmiennopozycyjna. Przykład Zadanie: Zapisać liczbę 2 5/8 w notacji zmiennopozycyjnej. Bit znaku będzie miał wartość /8 w naturalnym kodzie to 10,101. Znormalizowana postać mantysy to 1,0101. Część ułamkowa mantysy to zatem 0,0101. Wykładnik to 1. W notacji z nadmiarem: 100. Pełny bajt wygląda zatem następująco:

17 Liczby reprezentowane w notacji zmiennopozycyjnej nie są rozmieszczone równomiernie na osi liczbowej. Przykład: W formacie 8-bitowym można zapisać takie liczby dziesiętne większe od 1: 1, 1,0625, 1,125, 1,1875, …, 1,9375 2, 2,125, 2,25, 2,375, …, 3,875 4, 4,25, 4,5, 4,75, …, 7,75 8, 8,5, 9, 9,5, …, 15,5 16, 17, 18, …, 31 Notacja zmiennopozycyjna. Gęstość liczb 17

18 Zadanie: Jakie liczby dziesiętne dodatnie mniejsze od 1 można zapisać w formacie 8-bitowym? Najmniejsza w naturalnym kodzie dwójkowym ma postać: 0,001. Dlaczego? Kolejna liczba, którą można dokładnie zapisać ma postać: 0, Dlaczego? 0,125, 0, , 0,140625, …, 0, ,25, 0,265625, 0,28125, …., 0, ,5, 0,53125, 0,5625, …, 0,96875 Czy liczba 0 ma swoją reprezentację? Notacja zmiennopozycyjna. Gęstość liczb 18

19 Notacja zmiennopozycyjna. Błąd zaokrąglenia Przykład: Zapisz liczbę 2 5/16 (2,3125) w systemie 8-bitowym. Bit znaku będzie miał wartość /16 w naturalnym kodzie to 10,0101. Znormalizowana postać mantysy to 1, Część ułamkowa mantysy to zatem 0, W polu części ułamkowej zapiszemy tylko 0010! Wykładnik to 1. W notacji z nadmiarem: 100. Otrzymamy , co jest reprezentacją … 2 1/4. Zjawisko to nazywa się błędem zaokrąglenia. 19

20 Notacja zmiennopozycyjna. Błąd zaokrąglenia Przykład: Wykonać dodawanie: 4 1/2 + 1/8 + 1/8. Dodajemy od lewej do prawej: – 4 ½ + 1/8 = 4 5/8 = 100,101 2 ≈ = 4 ½ – 4 ½ + 1/8 = … = 4 ½ Dodajemy od prawej do lewej: – 1/8 + 1/8 = ¼ = 0,01 2 = – 4 ½ + ¼ = 4 3/4 = 100,11 2 = Wniosek: Kolejność wykonywania działań jest istotna. 20

21 Notacja zmiennopozycyjna. Błąd zaokrąglenia Źródłem błędów zaokrągleń jest również problem nieskończonego binarnego rozwinięcia ułamka. Np. 1/10 ma rozwinięcie: … Rozmiar błędów zaokrągleń można zmniejszyć, stosując dłuższe pole części ułamkowej (format tzw. podwójnej precyzji). Notacji zmiennoprzecinkowej nie stosuje się do przechowywania informacji finansowych i wykonywania na nich działań arytmetycznych… 21

22 22


Pobierz ppt "1. 2 Podstawy arytmetyki komputerowej Paweł Perekietka."

Podobne prezentacje


Reklamy Google