Architektura komputerów

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

Technologie Informacyjne

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

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

Podstawy Informatyki

Systemy zapisu liczb.

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

System Liczbowe. Szesnastkowy ( heksadecymalny)

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

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

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

Pracownia Komputerowa wykład VI

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

Podstawy Informatyki

Kod U2 Opracował: Andrzej Nowak

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

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

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

Pracownia Komputerowa wykład IV

Pozycyjny system liczbowy

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

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

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

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

Wstęp do Informatyki

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

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

Metoda znak-moduł (ZM)

Teoretyczne Podstawy Informatyki

Pracownia Komputerowa wyk ad IV

Techniki multimedialne

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

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

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

Pracownia Komputerowa wyk ad VI

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

Podstawy Informatyki dla Nauczyciela

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

Technologie Informacyjne Wykład 4

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

L6.1 Systemy liczenia stosowane w informatyce

Architektura komputerów

Arytmetyka stało i zmiennoprzecinkowa

Zapis liczb binarnych ze znakiem

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

Architektura komputerów

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

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

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

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

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Arytmetyka binarna - wykład 6

Kodowanie informacji. Kody liczbowe

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

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

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

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

Systemy liczbowe używane w technice komputerowej

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

Pracownia Komputerowa wykład V

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Adam Korzeniewski p Katedra Systemów Multimedialnych

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

LICZBY ZMIENNOPRZECINKOWE

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

Naturalny kod binarny (NKB)

Zwykle liczby rzeczywiste przedstawia się w notacji naukowej :

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

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

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

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

Systemy liczbowe. 1. System liczbowy dziesiętny

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

1. Operacje logiczne A B A OR B

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

Znaki w tym systemie odpowiadają następującym liczbom: I=1, V=5, X=10, L=50, C=100, D=500, M=1000

Stan wysoki (H) i stan niski (L)

1.1. Pozycyjne systemy liczbowe

Moduł 2 Zastosowanie systemów liczbowych w informacji cyfrowej

Programowanie Niskopoziomowe

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

Adam Korzeniewski p Katedra Systemów Multimedialnych

SYSTEMY LICZBOWE 275,538 =

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Operacje arytmetyczne

architektura komputerów w. 2

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Technika Cyfrowa i Mikroprocesorowa

Wykład 2. Informatyka Stosowana. 10 października Informatyka Stosowana Wykład 2 10 października / 42

Wykład 2. Informatyka Stosowana. 9 października Informatyka Stosowana Wykład 2 9 października / 42

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

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

Arytmetyka komputera

DZIESIĘTNY SYSTEM LICZBOWY

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

Systemy liczenia. 333= 3*100+3*10+3*1

Wprowadzenie do informatyki - ć wiczenia

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

Cyfrowy zapis informacji

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

Transkrypt:

Architektura komputerów Wykład 4 Jan Kazimirski 1

Reprezentacja danych 2

Plan wykładu Systemy liczbowe Zapis dwójkowy liczb całkowitych Działania arytmetyczne Liczby rzeczywiste Znaki i łańcuchy znaków 3

Zapis dziesiętny liczby całkowite Symbole: 0,1,2,3,4,5,6,7,8,9 Zapis pozycyjny pozycja określa wagę Wagi kolejne potęgi liczby 10. Przykład: 123 = 1*10^2+2*10^1+3*10^0 4

Zapis dziesiętny - ułamki Rozwinięcie koncepcji dla liczb całkowitych Po przecinku kolejne pozycje wagi liczby 10 z ujemnymi wykładnikami, tzn 10^(-1), 10^(-2) itd. Przykład: 0.25 = 2*10(-1)+5*10^(-2) = 2* 1/10 + 5* 1/100 UWAGA! Nie wszystkie ułamki można przedstawić dokładnie (np. 1/3) 5

System dwójkowy Analogiczny do systemu dziesiętnego, ale podstawą są potęgi 2. Dwa symbole 0,1 Kolejne pozycje: 2^0=1, 2^1=2,2^2=4,itd. Przykład: 1011B = 1*8+0*4+1*2+1*1 = 11 6

Konwersja dec<->bin Z systemu dziesiętnego na binarny metoda kolejnych podziałów na 2 Z systemu binarnego na dziesiętny wartości 1 należy przemnożyć przez odpowiadające im wagi i wyniki zsumować 7

System ósemkowy System dwójkowy jest niewygodny długie ciągi znaków System ósemkowy (oktalny) podstawa 8, symbole: 0,1,2,3,4,5,6,7 Często stosowany w informatyce lepiej pasuje do zapisu dwójkowego. Łatwa konwersja bin<->oct 3 bity = jeden symbol oktalny 8

System szesnastkowy (heksadecymalny) Podstawa 16, symbole: 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F Często stosowany w informatyce i programowaniu Krótki zapis (liczba 8-bitowa 2 znaki hex) Łatwa konwersja z systemu dwójkowego 4-bity jeden symbol hex 9

Zapis liczb ze znakiem Najbardziej typowe: Znak-moduł jeden z bitów określa znak liczby. Uzupełnienie do 2 (U2) najbardziej znaczący bit ma ujemną wagą Liczby typu int w komputerach implementowane są w zapisie U2 ze względu na łatwą arytmetykę 10

Liczby ze znakiem uzupełnienie do dwóch Algorytm zamiany liczby na przeciwną: Negujemy wszystkie bity Dodajemy 1 Nie występuje problem dwóch zer (+0 i -0), obecny przy zapisie znak-moduł. Naturalne operacje dodawania i odejmowania 11

Zapis BCD Używany do zapisu liczb dziesiętnych całkowitych Cyfra dziesiętna kodowana jest na 4-bitach Kod rozrzutny, dosyć wolne obliczenia Stosowany do zapisywania wielocyfrowych liczb całkowitych Stosowany czasami w systemach wbudowanych. 12

Własności liczb dwójkowych Liczby parzyste mają najmniej istotny bit = 0, liczby nieparzyste 1 Jeżeli N najmniej istotnych bitów = 0, to liczba dzieli się przez 2^N bez reszty. Jeżeli tylko bit N-ty = 1 to wartość liczby = 2^N Przesunięcie wszystkich bitów w lewo odpowiada mnożeniu przez 2 13

Własności liczb dwójkowych Dla liczby bez znaku przesunięcie wszystkich bitów w prawo odpowiada dzieleniu przez dwa Wynik dodawania liczb N-bitowych można zapisać na N+1 bitach Wynik mnożenia liczb N-bitowych może wymagać 2*N bitów Jeżeli N-bitowa liczba składa się z samych jedynek to jej wartość = 2^N-1. 14

Własności liczb dwójkowych Zwiększenie o 1 największej (w danym formacie) liczby bez znaku da 0 przepełnienie Zmniejszenie o 1 liczby 0 zapisanej jako liczba bez znaku da największą liczbę dającą się zapisać w danym formacie - zawinięcie 15

Dodawanie i odejmowanie liczb dwójkowych Dodawanie bit po bicie według poniższych reguł: 0+0=0, 0+1=1, 1+0=1, 1+1=0 z przeniesieniem (P) 0+0+P=1, 0+1+P=1+0+P=0 z P 1+1+P=1 z P Odejmowanie analogicznie, ale z pożyczką W przypadku liczb U2 można dodać liczbę przeciwną 16

Mnożenie i dzielenie liczb dwójkowych Można realizować jako wielokrotne dodawanie Sposób naturalny - tak jak mnożenie ręczne liczb dziesiętnych reguły: 0*0=0, 0*1=1*0=0, 1*1=1 Zmodyfikowane algorytmy mnożenia np. algorytm Bootha Dzielenie - metoda naturalna sprawdzanie ile razy dzielnik mieści się w dzielnej. 17

Operacje logiczne Operacje na bitach: AND, OR, XOR, NOT Operacje na ciągach bitów wykonujemy operację na odpowiednich bitach operandów Zastosowanie operacji bitowych Testowanie bitu Maskowanie bitów Szyfrowanie (XOR) 18

Przesunięcia i rotacje Przesunięcie w lewo (prawo) odpowiada mnożeniu (dzieleniu) przez dwa. Przesunięcia i rotacje ułatwiają operacje na bitach Przesunięcie Rotacja 19

Dwójkowy zapis ułamków Zapis naturalny ujemne potęgi liczby dwa Zapis naturalny jest niewygodny przy operowaniu małymi i dużymi liczbami jednocześnie wąski zakres (liczba bitów) Komputery do obliczeń stosują zapis zmiennoprzecinkowy (zmiennopozycyjny) 20

Zapis zmiennopozycyjny Liczba składa się z: Bitu znaku Bity mantysy Bity wykładnika Analogia do zapisu dziesiętnego w notacji naukowej: -1.343567e-25 21

Zapis zmiennopozycyjny c.d. Zapis zmiennopozycyjny pozwala zapisać zarówno bardzo małe, jak i bardzo duże liczby na tej samej liczbie bitów. Przykład: 1.0000e-100 1.0000e+100 UWAGA na błędy (utrata dokładności)! 22

Formaty IEEE Format zmiennopozycyjny pojedynczej precyzji (float) 32 bity bit znaku, 8 bitów wykładnik, 23(24) bity mantysa Format zmiennopozycyjny podwójnej precyzji (double) 64 bity bit znaku, 11 bitów wykładnik, 52(53) bity mantysa Format zmiennopozycyjny zwiększonej precyzji 80 bitów bit znaku, 15 bitów wykładnik, 64 bity mantysa 23

Parametry formatów IEEE Parametr float double Długość słowa 32 64 Długość wykładnika 8 11 Długość mantysy 23 52 Najmniejsza wartość1,00e-038 1,00E-308 Największa wartość 1,00E+038 1,00E+308 24

Norma IEEE 754 Definicje formatów liczb Arytmetyka nieskończoności Symbol NaN (Not a Number) do określenia sytuacji gdy wynik jest nieznany Definicje operacji arytmetycznych Definicje wyjątków 25

IEEE 754 - operacje Podstawowe operacje arytmetyczne Skalowanie i kwantyzacja Manipulowanie znakiem (np. abs) Operacje porównania Testowanie i klasyfikacja (np. NaN) Testowanie i ustawianie flag Inne... 26

IEEE 754 - wyjątki Nieprawidłowa operacja Np. Pierwiastek z liczby ujemnej. Dzielenie przez zero Nadmiar (overflow) Rezultat zbyt duży by go poprawnie zapisać Niedomiar (underflow) Rezultat zbyt mały by go poprawnie zapisać Wynik niedokładny Obliczenia prowadzą do utraty dokładności. 27

Przykładowe działania Dodawanie i odejmowanie Sprawdzenie znaków i ew. zmiana znaku odjemnika Sprawdzenie, czy jeden z argumentów nie jest zerem Wyrównanie wykładników Sumowanie mantys z uwzględnieniem znaku Normalizacja wyniku Mnożenie i dzielenie Sprawdzenie czy jeden z argumentów nie jest zerem Dodawanie (lub odejmowanie) wykładników Działanie na mantysach z uwzględnieniem znaku 28

Koszt obliczeniowy działań Operacja: CPU: +,- (int) +,- (float) * (int) * (float) / (int) / (float) Intel 386/387 2 23-34 9-38 27-35 43 89 Intel i486 1 10 12-42 11 43 35 (62) Pentium 1 3 10 3 46 19 (33) PowerPC 1 3 4 3 20 18 (31) MIPS R4x00 1 4 10 7 (8) 69 23 (36) Źródło: GAME DEVELOPERFEBRUARY/MARCH 1996, str 19-24 29

Kodowanie znaków Komputer operuje danymi liczbowymi inne symbole muszą być kodowane Kodowania znaków: ASCII Rozszerzone kody ASCII Zestaw znaków EBCDIC (IBM) Zestawy dwubajtowe Unicode 30

Kody ASCII Standard wymiany danych między komputerami Zestaw 128 znaków kodowanych na 7 bitach Cztery grupy po 32 znaki Znaki kontrolne (np. sterowanie drukarką) Znaki przestankowe, symbole i cyfry Wielkie litery (+symbole specjalne) Małe litery (+symbole specjalne i znak delete) 31

Unicode Rozszerzony standard kodowania znaków Znosi ograniczenia stosowane przez dotychczasowe kodowania (strony kodowe) Definiuje przestrzeń numeracyjną dla poszczególnych grup znaków Nie definiuje samego kodowania! Metody kodowania np. UTF-8, UTF-16, UTF-32 i inne 32

Łańcuchy znakowe Implementowane zwykle jako tablice znaków Dwa sposoby oznaczania długości łańcucha znaków Znak kończący (null-terminated string C/C++) Nieograniczona długość, wolne operacje, ryzyko przepełnienia Łańcuch poprzedzony długością (Pascal) Ograniczona długość, szybkie operacje. 33

Złożone struktury danych Rekordy, struktury Rekordy z wariantami (unie) Tablice Listy (jedno, dwukierunkowe) Mapy Drzewa 34

Big Endian vs. Little Endian Liczby wielobajtowe mogą być zapisywane na dwa sposoby: Big endian najbardziej znaczący bajt jest na początku (IBM 370, SPARC) Little endian najbardziej znaczący bajt jest na końcu (x86) Format zapisu utrudnia przenoszenie danych binarnych między platformami oraz przekazywanie ich w internecie (big endian) 35

Podsumowanie Komputery stosują binarny system liczenia Inne typy danych wymagają konwersji na system dwójkowy. Liczby rzeczywiste zapisywane są w formacie zmiennoprzecinkowym Znaki i łańcuchy znakowe zapisywane są w postaci odpowiednich kodów W programach stosuje się również bardziej zaawansowane struktury danych 36