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

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

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

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

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

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

Podstawy Informatyki

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

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

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

Arytmetyka binarna - wykład 6

Systemy zapisu liczb.

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

Metoda znak-moduł (ZM)

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

1.1. Pozycyjne systemy liczbowe

Naturalny kod binarny (NKB)

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

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

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

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

BŁĘDY OBLICZEŃ NUMERYCZNYCH

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

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

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

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Pracownia Komputerowa wykład VI

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

Zapis liczb binarnych ze znakiem

Technologie Informacyjne

Teoretyczne Podstawy Informatyki

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

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

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

Podstawy Informatyki

Adam Korzeniewski p Katedra Systemów Multimedialnych

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

Technologie Informacyjne Wykład 4

Kodowanie informacji. Kody liczbowe

Arytmetyka stałopozycyjna

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Pozycyjny system liczbowy

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Kod U2 Opracował: Andrzej Nowak

Adam Korzeniewski p Katedra Systemów Multimedialnych

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

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

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

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

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

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

SYSTEMY LICZBOWE 275,538 =

Pracownia Komputerowa wyk ad VI

Systemy liczbowe używane w technice komputerowej

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

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

Wstęp do informatyki- wykład 2

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

LICZBY ZMIENNOPRZECINKOWE

Pracownia Komputerowa wykład V

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

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

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

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

Architektura komputerów

Dodatek do Wykładu 01: Kodowanie liczb w komputerze

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

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

Stan wysoki (H) i stan niski (L)

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

Wykład I: Kodowanie liczb w systemach binarnych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Wprowadzenie do informatyki - ć wiczenia

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

Operacje arytmetyczne

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

Wprowadzenie do informatyki - ć wiczenia

Cyfrowy zapis informacji

Architektura komputerów

ARYTMETYKA KOMPUTERA

Obliczenia Naukowe. O arytmetyce komputerów, Czyli jak nie dać się zaskoczyć. Bartek Wilczyński 29.

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

Metody numeryczne II. Reprezentacja liczb

Moduł 2 Zastosowanie systemów liczbowych w informacji cyfrowej

Arytmetyka. Arytmetyka. Magdalena Lemańska. Magdalena Lemańska,

Architektura komputerów

Kodowanie liczb całkowitych w systemach komputerowych

MNOŻENIE W SYSTEMACH UZUPEŁNIENIOWYCH PEŁNYCH (algorytm uniwersalny)

Arytmetyka liczb binarnych

Zwykle liczby rzeczywiste przedstawia się w notacji naukowej :

Podstawy Informatyki dla Nauczyciela

Liczby zmiennoprzecinkowe i błędy

ZADANIE 1. Rozwiązanie:

2.3. Wyznaczanie wartości wielomianu, pozycyjne systemy liczbowe i reprezentacja danych liczbowych w komputerze

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

architektura komputerów w. 2

Metody numeryczne. Janusz Szwabiński. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/ :02 p.

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

ARCHITEKTURA KOMPUTERÓW Systemy liczbowe

Architektura systemów komputerowych

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

Transkrypt:

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

System dwójkowy W komputerach stosuje się dwójkowy system pozycyjny do reprezentowania zarówno liczb naturalnych, całkowitych, jak i rzeczywistych Kodowanie to umożliwia reprezentację jedynie skończonego podzbioru wszystkich tych nieskończonych zbiorów. Nie każda liczba naturalna, całkowita, rzeczywista ma swój dokładny odpowiednik komputerowy W szczególności żadna z liczb niewymiernych ( 2,π,...) nie ma swojego dokładnego odpowiednika. Co gorsza, nie ma go nawet tak normalna liczba, jak /. 2

Liczby naturalne Przypisujemy kolejnym pozycjom od prawej do lewej kolejne potęgi dwójki:,2,4,8,6,32,64,28,256,... Zatem np liczba 99 ma przedstawienie w systemie dwójkowym następujące: 99 = *64+*32+*6+*8+*4+*2+*=() 2 28 64 32 6 8 4 2 3

Jak zamienić liczbę na postać binarną? Można dodawać możliwie duże potęgi dwójki tak aby nie przekroczyć zadanej. Można tez dzielić liczbę przez 2 zapisując reszty (zera lub jedynki) i odczytując je wspak. 3 6 2 24 49 98 4

System szesnastkowy Często, aby skrócić zapis dwójkowy, grupuje się bity po 4 i interpretuje za pomocą cyfr szesnastkowych. Bajt = 8 bitów = 2 cyfry szesnastkowe Przykłady: = (9) 6 (=9*6+) = (FF) 6 (=5*6+5) = () 6 (=*6+) = (8) 6 (=*6+8) 5

6 System szesnastkowy F E D C B A 9 8 7 6 5 4 3 2 Reprezentacja szesnastkowa Ciąg bitów 5 4 3 2 9 8 7 6 5 4 3 2 Reprezentacja dziesiętna

Liczby ujemne Są 3 systemy kodowania liczb ujemnych: Kod znak-moduł prosty Kod znak-moduł odwrotny Kod uzupełnieniowy (do dwóch) Dodatnie liczby całkowite identycznie we wszystkich kodach Ujemne zupełnie inaczej. Rezerwujemy pierwszy bit jako bit znaku. Jedynka oznacza, że mamy do czynienia z liczbą ujemną 7

Kod znak-moduł (prosty) Musimy ustalić wpierw na ilu bitach będziemy reprezentować liczby. Ujemne liczby po pierwszej obowiązkowej jedynce mają moduł. Na przykład w ośmiobitowej reprezentacji liczba -5 ma reprezentację, podobnie jak 5 ma reprezentację. 8

Kod znak-moduł odwrotny Po bicie znaku liczby ujemne mają negatyw modułu: jedynki zastępujemy zerami, a zera jedynkami Na przykład w ośmiobitowym kodzie liczba -5 ma reprezentację. Liczba 5 ma ten sam kod, co w kodzie znak-moduł. 9

Kod uzupełnieniowy Pierwszy bit reprezentuje wartość -2ⁿ dla (n+)-bitowej reprezentacji Np d;a 8 bitów bit pierwszy reprezentuje wartość -28=-2 7 Zatem -5 ma reprezentację, bo -28+64+32+6+8+2+=-5 Zauważmy, że od poprzedniej reprezentacji kod ten różni się tylko jednym ostatnim bitem. Tak jest zawsze!

Arytmetyka binarna (dodawanie) W każdym z kodów dodawanie się realizuje nieco inaczej. Najprościej jest o dziwo! w kodzie uzupełnieniowym, gdzie po prostu wystarczy wykonać dodawanie nie zważając na znak i wynik wychodzi taki, jak powinien.

Przykłady dodawania w U2 5 7 2 Dodajemy bit po bicie od prawej do lewej, uwzględniając bity przeniesienia.

Dodawanie w U2-5 7 2 Jedynkę, która powstaje jako przeniesienie ostatniego bitu po prostu ignorujemy!

Dodawanie w U2 5-7 -2 Tym razem przeniesienia nie trzeba było ignorować

Dodawanie w U2 27-28 27 jest największą dodatnią wartością, którą można uzyskać na 8 bitach. Gdy dodamy do niej jedynkę, dostaniemy najmniejszą możliwą wartość, i to ujemną, czyli -28.

Problem przepełnienia Większość procesorów nie sprawdza przy dodawaniu, czy wynik nie przekracza przypadkiem zakresu reprezentowalności. Po prostu wykonuje bitowe działania, a wynik interpretuje wbrew zdrowemu rozcisądkowi (suma dwóch liczb dodatnich wychodzi ujemna). Wniosek: przy dużych liczbach należy uważać, bo to są przyczyny niektórych błędów programistycznych tym złośliwszych, że mogą przejść przez wiele testów. 6

Ułamki binarne Podobnie, jak w układzie dziesiętnym, przedłużamy reprezentację za kropkę binarną (odpowiednik dziesiętnego przecinka) dodając pozycje odpowiadające kolejnym ujemnym potęgom dwójki: ½,¼,... 7

Ułamki binarne przykłady ½=. ¼=. ¾= ½+¼, więc ¾=. 2/3 =.() / =.() 8

Reguły zaokrąglania............... 9

Notacja stałopozycyjna Ustalamy pewną stałą liczbę bitów na część całkowitą i pewną liczbę bitów na część ułamkową. Kropki wtedy nie reprezentujemy, bo i tak wiadomo, między którym a którym bitem się znajduje. Wadą notacji stałopozycyjnej jest jej mały zakres i mała precyzja. Reprezentowane wartości są rozmieszczone równomiernie. 2

Jak sobie radzą z dużymi zakresami fizycy? h = 6.62 * -34 Js R= 25 m... co jest znacznie czytelniejszym zapisem, niż odpowiednio.62 Js lub m Czyli podaje się parę cyfr dokładnych i czynnik skalujący 2

Reprezentacja zmiennopozycyjna Przedstawia się w postaci pary (mantysa, cecha) mantysa dokładne cyfry, a cecha to czynnik skalujący mówiący o tym, o ile miejsc przesunąć kropkę binarną (przecinek dziesiętny) x=m*2ª dla mantysy m i cechy a, przy czym zakładamy, że ½ m < dla dodatnich mantys oraz - m < -½ dla mantys ujemnych Przykład: Liczba 4 ma przedstawienie (½,3), bo 4= ½*2³. (=*2² = 2*2º =..., ale tylko mantysa ½ spełnia zadane nierówności). 22

Przykład reprezentacji zmiennopozycyjnej Załóżmy, że mamy 3 bity cechy i 4 mantysy. Jak wygląda wtedy reprezentacja liczby ⅓? Zamieńmy na ułamek okresowy mnożąc przez 2 części ułamkowe i zapisując części całkowite: ⅓ ⅔ ⅓ ⅔ ⅓ ⅔...., czyli.() Ponieważ... jest mniejsze od ½, więc musimy przemnożyć mantysę przez 2, zatem cecha musi być równa -, co w zapisie uzupełnieniowym na 3 bitach ma postać. (-4+2+). Mantysa musi być zaokrąglona po 3-ciej cyfrze po kropce binarnej (mamy tylko 4 bity na mantysęm z czego odchodzi na znak odpowiadający wartości -), więc ostatecznie postać w naszym układzie możliwie jak najlepiej przybliżająca ⅓, to (cecha mantysa). 23

Błędy zaokrągleń Zaokrąglając godzimy się na niedokładne obliczenia: nie działamy na prawdziwych liczbach, tylko na ich przybliżeniach Wyniki działań mogą zależeć od kolejności ich wykonania. Na przykład (a+b)+c wcale nie musi dać tego samego wyniku co a+(b+c). Może się zdarzyć, że a+b=a, mimo że b Błędy mogą się kumulować w miarę postępu obliczeń! 24

Analiza numeryczna To dział informatyki zajmujący się opracowywaniem i analizą algorytmów pod kątem ich dokładności. Niektóre metody dają dokładniejsze wyniki niż inne, nawet przy tej samej reprezentacji. Oczywiście są też znaczne różnice w czasie działania różnych algorytmów. Zazwyczaj im szybszy, tym dokładniejszy! 25