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



Podobne dokumenty
ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

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

Architektura systemów komputerowych Laboratorium 5 Kodowanie liczb i tekstów

DZIESIĘTNY SYSTEM LICZBOWY

Pracownia Komputerowa wykład V

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

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

Teoretyczne Podstawy Informatyki

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

Pracownia Komputerowa wykład VI

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

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

Podstawy Informatyki

Systemy zapisu liczb.

Zapis liczb binarnych ze znakiem

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

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

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

Architektura komputerów

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

Architektura komputerów

Arytmetyka binarna - wykład 6

Technologie Informacyjne

ARCHITEKTURA KOMPUTERÓW. Reprezentacja danych w komputerach

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

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

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

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

Pracownia Komputerowa wyk ad VI

architektura komputerów w. 2

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

Pracownia Komputerowa wyk ad V

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:

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

Techniki multimedialne

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

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

Architektura komputerów

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

Naturalny kod binarny (NKB)

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

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

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

Kod U2 Opracował: Andrzej Nowak

Wstęp doinformatyki. Systemy liczbowe i arytmetyka komputerów. System dziesiętny. Inne systemy. System dwójkowy

Pracownia Komputerowa wykład IV

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

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

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

Technologie informacyjne (3) Zdzisław Szyjewski

Metoda znak-moduł (ZM)

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

L6.1 Systemy liczenia stosowane w informatyce

Pozycyjny system liczbowy

Adam Korzeniewski p Katedra Systemów Multimedialnych

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

O oszczędnym dziennikarzu, czyli czym jest

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

Technologie informacyjne (3) Zdzisław Szyjewski

Adam Korzeniewski p Katedra Systemów Multimedialnych

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

Arytmetyka stało i zmiennoprzecinkowa

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

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

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

1. System pozycyjny zapisu liczb

Arytmetyka stałopozycyjna

Podstawy Informatyki

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

Kodowanie liczb całkowitych w systemach komputerowych

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

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Pracownia Komputerowa wyk ad IV

Kodowanie informacji. Kody liczbowe

SYSTEMY LICZBOWE 275,538 =

Stan wysoki (H) i stan niski (L)

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

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

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

Instrukcja dotycząca kodów kreskowych

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Podstawy Informatyki dla Nauczyciela

1.1. Pozycyjne systemy liczbowe

LICZBY ZMIENNOPRZECINKOWE

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

PODSTAWY INFORMATYKI. Informatyka? - definicja

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

Wstęp do Informatyki

Wprowadzenie do informatyki - ć wiczenia

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

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

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

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

kodowanie informacji Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Cyfrowy zapis informacji

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

Sposób reprezentacji informacji w systemie. Reprezentacja informacji. Dzięki kodowaniu informacji.

Technologie Informacyjne Wykład 4

Transkrypt:

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite bez znaku 3 Operacje na liczbach zmiennoprzecinkowych 4 Standardy reprezentacji znaków 5 Przechowywanie danych w pamięci 6 Literatura c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 1 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 2 / 56 Analiza systemu dziesiętnego Analiza systemu binarnego system o podstawie 10 rozwinięcie liczby w zapisie dziesiętnym, np. 234 zbiór cyfr liczby dziesiętnej 234 = 2 10 2 + 3 10 1 + 4 10 0 D = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} wartość dziesiętna liczby naturalnej zapisanej za pomocą n cyfr dziesiętnych a i D, dla i = 0, 1,..., n 1, w postaci [a n 1, a n 2,..., a 1, a 0 ] n 1 l = a i 10 i system o podstawie 2 rozwinięcie liczby w zapisie binarnym, np. 1011 zbiór cyfr liczby binarnej 1011 2 = 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 B = {0, 1} wartość dziesiętna liczby naturalnej zapisanej za pomocą n cyfr binarnych a i B, dla i = 0, 1,..., n 1, w postaci [a n 1, a n 2,..., a 1, a 0 ] n 1 l = a i 2 i c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 3 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 4 / 56

Analiza systemu szesnastkowego system o podstawie 16 rozwinięcie liczby w zapisie o podstawie 16, np. A5BF A5BF 16 = A 16 3 + 5 16 2 + B 16 1 + F 16 0 zbiór cyfr liczby szesnastkowej H = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F } wartość dziesiętna liczby naturalnej zapisanej za pomocą n cyfr szesnastkowych a i H, dla i = 0, 1,..., n 1, w postaci [a n 1, a n 2,..., a 1, a 0 ] n 1 l = a i 16 i Analiza systemu ósemkowego system o podstawie 8 rozwinięcie liczby w zapisie o podstawie 8, np. 7430 7430 8 = 7 8 3 + 4 8 2 + 3 8 1 + 0 8 0 zbiór cyfr liczby ósemkowej O = {0, 1, 2, 3, 4, 5, 6, 7} wartość dziesiętna liczby naturalnej zapisanej za pomocą n cyfr ósemkowych a i O, dla i = 0, 1,..., n 1, w postaci [a n 1, a n 2,..., a 1, a 0 ] n 1 l = a i 8 i c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 5 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 6 / 56 Konwersja z notacji dziesiętnej do binarnej liczba naturalna l może być parzysta (b 0 = 0) albo nieparzysta (b 0 = 1) l = l 1 2 1 + b 0 liczba naturalna l 1 może być parzysta (b 1 = 0) albo nieparzysta (b 1 = 1) l 1 = l 2 2 1 + b 1 zatem l może być przedstawiona jako l = (l 2 2 1 + b 1 ) 2 1 + b 0 = = l 2 2 2 + b 1 2 1 + b 0 2 0 itd. liczba naturalna l 2 może być parzysta (b 2 = 0) albo nieparzysta (b 2 = 1) reszty z dzielenia liczby dziesiętnej przez 2 tworzą ciąg binarny reprezentujący liczbę l: [b n 1, b n 2,..b 1, b 0 ] c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 7 / 56 Konwersja metodą dzielenia przez 2 najmłodszy bit b 0 to reszta z dzielenia liczby naturalnej l przez 2 l 2 = l 1 r b 0 bit b 1 to reszta z dzielenia liczby l 1 przez 2 l 1 2 = l 2 r b 1 bit b 2 to reszta z dzielenia liczby l 2 przez 2 l 2 2 = l 3 r b 2 czynność powtarzamy do czasu, gdy l n = 0 otrzymując najstarszy bit notacji binarnej, tj. b n 1 i zapisujemy rezultat konwersji: [b n 1, b n 2,..., b 1, b 0 ] c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 8 / 56

Konwersja metodą dzielenia przez 2 Przykład Rezultaty konwersji liczb naturalnych 0..15 Dziesiętnie Binarnie 25 2 = 12 r 1 11001 10 = 1100 r 1 12 2 = 6 r 0 1100 10 = 110 r 0 6 2 = 3 r 0 110 10 = 11 r 0 3 2 = 1 r 1 11 10 = 1 r 1 1 2 = 0 r 1 1 10 = 0 r 1 Czyli 25 10 = 11001 2 Dziesiętnie Binarnie Dziesiętnie Binarnie 0 0000 8 1000 1 0001 9 1001 2 0010 10 1010 3 0011 11 1011 4 0100 12 1100 5 0101 13 1101 6 0110 14 1110 7 0111 15 1111 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 9 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 10 / 56 Konwersja do zapisu szesnastkowego metodą dzielenia przez 16 Konwersja metodą dzielenia przez 16 Przykład najmłodsza cyfra h 0 to reszta z dzielenia liczby naturalnej l przez 16 l 16 = l 1 r h 0 cyfra h 1 to reszta z dzielenia liczby l 1 przez 16 l 1 16 = l 2 r h 1 cyfra h 2 to reszta z dzielenia liczby l 2 przez 16 589 16 = 36 r 13 36 16 = 2 r 4 2 16 = 0 r 2 l 2 16 = l 3 r h 2 czynność powtarzamy do czasu, gdy l n = 0 otrzymując najstarszą cyfrę notacji szesnastkowej, tj. h n 1 i zapisujemy rezultat konwersji: Czyli 589 = 24D 16 [h n 1, h n 2,..., h 1, h 0 ] c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 11 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 12 / 56

Rezultaty konwersji liczb naturalnych 0..15 Binarna reprezentacja cyfr szesnastkowych Dziesiętnie Szesnastkowo Dziesiętnie Szesnastkowo 0 0 8 8 1 1 9 9 2 2 10 A 3 3 11 B 4 4 12 C 5 5 13 D 6 6 14 E 7 7 15 F Szesnastkowo Binarnie Szesnastkowo Binarnie 0 0000 8 1000 1 0001 9 1001 2 0010 A 1010 3 0011 B 1011 4 0100 C 1100 5 0101 D 1101 6 0110 E 1110 7 0111 F 1111 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 13 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 14 / 56 Ćwiczenia dane są n cyfrowe liczby w notacji o podstawie r z cyframi a i, b i [0, 1,..., r 1]: 1 Wyrazić w notacji binarnej następujące liczby naturalne: 64, 66, 129, 1023. 2 Wyrazić w notacji szesnastkowej następujące liczby naturalne: 64, 66, 129, 1023. 3 Wyrazić w notacji ósemkowej następujące liczby naturalne: 64, 66, 129, 1023. 4 Wyznaczyć największą liczbę naturalną, którą można zapisać w notacji binarnej za pomocą odpowiednio: 4, 8, 16, 32, 64 bitów c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 15 / 56 a = [a n 1, a n 2,..., a 1, a 0 ] b = [b n 1, b n 2,..., b 1, b 0 ] cyfra sumy a i i b i wyznaczona za pomocą operacji modulo r, tj. r s i = a i r b i r c i gdzie c i ewentualne przeniesienie (ang. carry) powstałe z sumy arytmetycznej a i 1 + b i 1 + c i 1 np. suma modulo 2 cyfr binarnych, ozn. 2 : 1 2 0 = 1 1 2 1 = 0 a suma arytmetyczna jest liczbą binarną dwucyfrową: 1 + 1 = 10 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 16 / 56

Przykłady dodawania liczb Odejmowanie liczb dziesiętnych dodawanie naturalnych liczb binarnych 11011 2 +10001 2 101100 2 dodawanie naturalnych liczb szesnastkowych 3A5F 16 +EB2C 16 1258B 16 ćwiczenie: zastąpić cyfry liczby szesnastkowej ich odpowiednikami binarnymi i wykonać operację dodawania ćwiczenie: liczby szesnastkowe poddać konwersji do notacji dziesiętnej i wykonać operację dodawania zwrócić uwagę na fakt wystąpienia przeniesienia z najstarszej pozycji przykład odejmowania bez pożyczki 351 25 =? przekształćmy tak: 351 25 = 351 + 999 25 + 1 1000 uzupełnienie dziewiątkowe liczby 25: 999 25 = 974 uzupełnienie dziesiątkowe liczby 25: 974 + 1 = 975 suma: 351 + 975 = 1326 i ostatecznie wynik odejmowania: 1326 1000 = 326 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 17 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 18 / 56 Odejmowanie liczb binarnych Odejmowanie liczb szesnastkowych przykład odejmowania bez pożyczki 1010 0011 =? przekształćmy tak: 1010 0011 = 1010 + 1111 0011 + 1 10000 uzupełnienie jedynkowe (U1) liczby 0011: 1111 0011 = 1100 uzupełnienie dwójkowe (U2) liczby 0011: 1100 + 1 = 1101 suma: 1010 + 1101 = 10111 i ostatecznie wynik odejmowania: 10111 10000 = 0111 przykład odejmowania bez pożyczki 7A5B 002C =? przekształćmy tak: 7A5B 002C = 7A5B + FFFF 002C + 1 10000 uzupełnienie piętnastkowe (U15) liczby 002C: FFFF 002C = FFD3 uzupełnienie szesnastkowe (U16) liczby 002C: FFD3 + 1 = FFD4 suma: 7A5B + FFD4 = 17A2F i ostatecznie wynik odejmowania: 17A2F 10000 = 7A2F c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 19 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 20 / 56

Standardy reprezentacji wartości całkowitoliczbowych Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite bez znaku 1 2 Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite bez znaku 3 Operacje na liczbach zmiennoprzecinkowych 4 Standardy reprezentacji znaków 5 Przechowywanie danych w pamięci 6 Literatura c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 21 / 56 Standardowa reprezentacja wartości całkowitych bez znaku w komputerze liczby przechowywane są w notacji binarnej z zastosowaniem ściśle określonego standardu reprezentacji liczby całkowite bez znaku są standardowo reprezentowane w naturalnym kodzie dwójkowym na n bitach jako: [b n 1, b n 2,..., b 1, b 0 ] ten ciąg bitów reprezentuje wartość dziesiętną n 1 l = b i 2 i w komputerze bity liczby przechowywane są w rejestrze o długości n standardowe wartości n to: 8, 16, 32, 64 bity ćwiczenie: określić wartości minimalne i maksymalne, które można przechowywać w rejestrach c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 22 / 56 Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite bez znaku Standardy reprezentacji wartości całkowitoliczbowych Reprezentacja wartości całkowitych bez znaku (unsigned) przykładowa deklaracja w języku C unsigned int a; zmienna a będzie przechowywać wartości całkowite bez znaku na n = 32 bitach zakodowane w naturalnym kodzie binarnym zakres wartości 0... 2 32 1, co można zapisać szesnastkowo: 0x00 00 00 00 do 0xFF FF FF FF Reprezentacja wartości całkowitych ze znakiem liczby całkowite ze znakiem są standardowo reprezentowane binarnie, ale w kodzie uzupełnienia dwójkowego (U2) na n bitach liczba dodatnia: [0, b n 2,..., b 1, b 0 ] o wartości dziesiętnej n 2 l = b i 2 i liczba ujemna: [1, b n 2,..., b 1, b 0 ] o wartości dziesiętnej n 2 l = 2 n 1 + b i 2 i standardowe wartości n to: 8, 16, 32, 64 bity ćwiczenie: określić wartości minimalne i maksymalne liczb całkowitych ze znakiem, które można przechowywać w rejestrach c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 23 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 24 / 56

Standardy reprezentacji wartości całkowitoliczbowych Standardy reprezentacji wartości całkowitoliczbowych Reprezentacja wartości całkowitych ze znakiem (signed) Inne reprezentacje wartości całkowitych znak i moduł przykładowa deklaracja w języku C int a; zmienna a będzie przechowywać wartości całkowite ze znakiem na n = 32 bitach zakodowane w uzupełnieniu dwójkowym (U2) zakres wartości 2 31... 2 31 1, co można zapisać szesnastkowo: 0x80 00 00 00 do 0x7F FF FF FF znak i moduł (ZM) na n bitach liczba dodatnia [0, b n 2,..., b 1, b 0 ] o wartości dziesiętnej n 2 l = b i 2 i liczba ujemna: [1, b n 2,..., b 1, b 0 ] o wartości dziesiętnej n 2 l = b i 2 i wada: dwie reprezentacje zera c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 25 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 26 / 56 Standardy reprezentacji wartości całkowitoliczbowych Standardy reprezentacji wartości całkowitoliczbowych Inne reprezentacje wartości całkowitych kod spolaryzowany Inne reprezentacje wartości całkowitych kod BCD kod spolaryzowany (+N, ang. biased N, excess N) przesunęcie N = 2 n 1 1 liczba binarna [b n 1, b n 2,..., b 1, b 0 ] reprezentuje wartość dziesiętną n 1 l = N + b i 2 i np. ciąg binarny 0000 0001 dla N = 127 reprezentuje ujemną liczbę dziesiętną 126 często stosowany jako kod pomocniczy cyfry liczby dziesiętnej kodowane binarnie postać spakowana: bajt przechowuje 2 cyfry dziesiętne postać rozpakowana: bajt przechowuje jedną cyfrę dziesiętną (na 4 młodszych bitach, starsze są zerowe) np. liczba 549 w kodzie spakowanym i w kodzie rozpakowanym 0000 0000 0000 0000 0000 0101 0100 1001 0000 0000 0000 0101 0000 0100 0000 1001 stosowany np. dla wyświetlaczy c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 27 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 28 / 56

Standardy reprezentacji wartości całkowitoliczbowych Standardy reprezentacji wartości całkowitoliczbowych Ćwiczenia rozszerzenie kodu liczby na większą liczbę pozycji liczby bez znaku są rozszerzane zerami na dodatkowych, starszych pozycjach liczby n-bitowe ze znakiem (reprezentowane w kodzie U2) dodatnia : [0, b n 2,..., b 1, b 0 ] ujemna : [1, b n 2,..., b 1, b 0 ] są rozszerzane bitem znaku na dodatkowych starszych pozycjach np. liczba ujemna 125 reprezentowana na n = 8 bitach jako 1000 0011 po zapisie w rejestrze 16. bitowym będzie reprezentowana przez ciąg bitowy 1111 1111 1000 0011 1 Wyrazić w notacji binarnej następujące liczby całkowite (32 bitowe wartości zmiennych typu int) : -64, -66, 129, 1023. 2 Wyrazić w notacji szesnastkowej następujące liczby bez znaku (32 bitowe wartości zmiennych typu unsigned): 64, 66, 129, 1023. 3 Wyznaczyć największą liczbę całkowitą, którą można zapisać w kodzie U2 za pomocą odpowiednio: 4, 8, 16, 32, 64 bitów. W każdym przypadku podać wzorzec bitowy i szesnastkowy reprezentacji. 4 Wyznaczyć najmniejszą liczbę całkowitą, którą można zapisać w kodzie U2 za pomocą odpowiednio: 4, 8, 16, 32, 64 bitów. W każdym przypadku podać wzorzec bitowy i szesnastkowy reprezentacji. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 29 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 30 / 56 1 2 Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite bez znaku 3 Operacje na liczbach zmiennoprzecinkowych 4 Standardy reprezentacji znaków 5 Przechowywanie danych w pamięci 6 Literatura Notacja stałoprzecinkowa system o podstawie r, cyfry liczb: a i D = {0, 1,..., r 1} liczba [a n 1, a n 2,..., a 1, a 0.a 1, a 2,..., a k ] ma wartość: l = n 1 i= k a i r i rozwinięcie liczby w zapisie dziesiętnym, np. 234.125 234.125 = 2 10 2 +3 10 1 +4 10 0 +1 10 1 +2 10 2 +5 10 3 rozwinięcie liczby w zapisie binarnym, np. 11.011 2 11.011 2 = 1 2 1 + 1 2 0 + 0 2 1 + 1 2 2 + 1 2 3 rozwinięcie liczby w zapisie szesnastkowym, np. A5.6C 16 A5.6C 16 = A 16 1 + 5 16 0 + 6 16 1 + C 16 2 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 31 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 32 / 56

Notacja stałoprzecinkowa konwersja liczby zapisanej w notacji binarnej na szesnastkową polega na zastąpieniu każdej 4 cyfr binarnych jedną cyfrą szesnastkową (na lewo i prawo od przecinka) np. 0010 1101.0110 1100 2 = 2D.6C 16 konwersja liczby zapisanej dziesiętnie na notację binarną: konwersja części całkowitej (np. dzielenie przez 2) konwersja części ułamkowej (np. mnożenie przez 2) c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 33 / 56 Konwersja ułamka z notacji dziesiętnej do binarnej jeśli ułamek 0.p pomnożymy przez 2, to 0.p 2 = 0.p 1 + b 1, gdzie b 1 może przyjąć wartość 0 albo 1 ułamek 0.p może więc być przedstawiony jako 0.p = b 1 2 1 + 0.p 1 2 1 część ułamkowa 0.p 1 może być również przedstawiona jako 0.p 1 = b 2 2 1 + 0.p 2 2 1 a dalej analogicznie ułamek 0.p 2 jako 0.p 2 = b 3 2 1 + 0.p 3 2 1... ostatecznie, ułamek 0.p = 0. [b 1, b 2, b 3,...] 0.p = b 1 2 1 + b 2 2 2 + b 3 2 3 +... a bity b i części ułamkowej 0.p otrzymuje się jako części całkowite kolejnych iloczynów c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 34 / 56 Przykład konwersji ułamka do notacji binarnej ułamek dziesiętny 0.375 mnożymy przez 2 0.375 2 0.750 otrzymujemy bit b 1 = 0 ułamek 0.75 mnożymy przez 2 0.75 2 1.50 otrzymujemy bit b 2 = 1 ułamek 0.5 mnożymy przez 2 0.5 2 1.0 bit b 3 = 1 (i koniec mnożeń) zatem: 0.375 = 0.011 2 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 35 / 56 Notacja naukowa notacja naukowa w systemie dziesiętnym, np. 1.53 10 3 przesuwanie przecinka dziesiętnego równoważne wartości: 1530.0 = 15.3 10 2 = 0.153 10 4 notacja naukowa w systemie binarnym, np. 10.11 2 1 przesuwanie przecinka binarnego równoważne wartości: 1.011 = 101.1 2 2 = 0.1011 2 1 notacja naukowa w systemie szesnastkowym, np. A3.C 16 2 przesuwanie przecinka szesnastkowego równoważne wartości: 0.A3C = A.3C 16 1 = A3C.0 16 3 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 36 / 56

Standard IEEE 754 (format znormalizowany) stosowany do reprezentacji wartości rzeczywistych pojedynczej precyzji (float): 32 bity podwójnej precyzji (double): 64 bity konwersja liczby do formatu pojedynczej precyzji (znormalizowanego): Standard IEEE 754 (format znormalizowany) pojedyncza precyzja: przypadki szczególne 31 23 0 s c m 1 zamienić liczbę na postać binarną stałoprzecinkową 2 znormalizować do postaci ±1.m 2 w 3 wykładnik zapisać w kodzie spolaryzowanym N = 127: c = w + 127 4 kodować znak s liczby: bit 31 (0 dodatnia, 1 ujemna) 5 zapisać cechę c na 8 bitach: bity 30-23 6 zapisać mantysę m na 23 bitach: bity 22-0 c = 0 i m = 0 ±0.0 c = 0 i m 0 format zdenormalizowany c = 0xFF i m = 0 ± c = 0xFF i m 0 NaN format pojedynczej precyzji 31 23 0 s c m c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 37 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 38 / 56 Standard IEEE 754 (format znormalizowany) przykład Ćwiczenia 31 23 0 s c m liczba 12.5 = 1100.10 2 = 1.10010 2 3 c = 3 + 127 = 1000 0010 2 m = 100100... 0 s = 1 zapisujemy na 32 bitach: 1 1000 0010 1001 0000 0000 0000 0000 000 stąd zmiennoprzecinkowa reprezentacja liczby 12.5 (typu float): 1100 0001 0100 1000 0000 0000 0000 0000 2 = 0xC148 0000 1 Wyznaczyć wartości binarne i dziesiętne (format znormalizowany pojedynczej precyzji) w każdym przypadku podać szesnastkowo zawartość słowa 32 bitowego reprezentującego tę wartość: a) najmniejszej liczby dodatniej (> 0) b) największej liczby dodatniej (< ) c) najmniejszej liczby ujemnej (> ) d) największej liczby ujemnej (< 0) 2 Zakodować liczbę 23.85 w formacie IEEE 754 pojedynczej precyzji a) podać zawartość rejestru w notacji binarnej i szesnastkowej b) wyznaczyć błąd reprezentacji c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 39 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 40 / 56

Standard IEEE 754 (format zdenormalizowany) Ćwiczenia stosowany do reprezentacji wartości rzeczywistych bliskich zera pojedynczej precyzji (float): 32 bity podwójnej precyzji (double): 64 bity konwersja liczby do formatu pojedynczej precyzji (zdenormalizowanego): 1 zamienić liczbę na postać binarną stałoprzecinkową 2 zapisać w postaci ±0.m 2 126 3 c = 0 4 kodować znak s liczby: bit 31 (0 dodatnia, 1 ujemna) 5 zapisać cechę c = 0 na 8 bitach: bity 30-23 6 zapisać mantysę m na 23 bitach: bity 22-0 format pojedynczej precyzji 31 23 0 s c m Wyznaczyć wartości binarne i dziesiętne (format zdenormalizowany pojedynczej precyzji): 1 najmniejszej liczby dodatniej (> 0) 2 największej liczby dodatniej 3 najmniejszej liczby ujemnej 4 największej liczby ujemnej (< 0) W każdym przypadku podać szesnastkowo zawartość słowa 32 bitowego reprezentującego tę wartość. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 41 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 42 / 56 Ćwiczenia Standard IEEE 754 (format znormalizowany) format podwójnej precyzji (64 bitowy) Daną zawartość rejestru 32 bitowego: 0xB0 60 00 00 zinterpretować jako: 1 kod liczby typu float 2 kod liczby typu int 3 kod liczby typu unsigned W każdym przypadku podać wartość dziesiętną przechowywanej danej. zwiększony zakres i dokładność reprezentacji konwersja liczby do formatu podwójnej precyzji (znormalizowanego): 1 zamienić liczbę na postać binarną stałoprzecinkową 2 znormalizować do postaci ±1.m 2 w 3 wykładnik zapisać w kodzie spolaryzowanym N = 1023: c = w + 1023 4 kodować znak s liczby: bit 63 (0 dodatnia, 1 ujemna) 5 zapisać cechę c na 11 bitach: bity 63-52 6 zapisać mantysę m na 52 bitach: bity 51-0 format podwójnej precyzji 31 20 0 s c m 31 0 m c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 43 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 44 / 56

Mnożenie liczb zmiennoprzecinkowych Operacje na liczbach zmiennoprzecinkowych Dodawanie liczb zmiennoprzecinkowych Operacje na liczbach zmiennoprzecinkowych dane liczby zmiennoprzecinkowe: a 1 = ±1.m 1 2 w 1 a 2 = ±1.m 2 2 w 2 iloczyn jest liczbą zmiennoprzecinkową a 3 = ±1.m 3 2 w 3 dane liczby zmiennoprzecinkowe: etapy wyznaczania sumy: a 1 = ±1.m 1 2 w 1 a 2 = ±1.m 2 2 w 2 1 sprowadzić liczby do postaci naukowej z równymi wykładnikami 2 dodać liczby 3 wynik, stosownie do formatu, normalizować (albo denormalizować) gdzie m 3 = m 1 m 2 w 3 = w 1 + w 2 a 3 = ± 1.m 3 2 w3 a 3 = ± 0.m 3 2 126 a 3 = ± 0.m 3 2 1022 i ostatecznie zapisać w formacie standardowym c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 45 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 46 / 56 Standardy reprezentacji znaków 1 2 Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite bez znaku 3 Operacje na liczbach zmiennoprzecinkowych 4 Standardy reprezentacji znaków 5 Przechowywanie danych w pamięci 6 Literatura Kody znaków Standardy reprezentacji znaków w komputerze znaki przechowywane są w postaci zakodowanej binarnie znaki pisarskie (drukowalne): litery, cyfry, interpunkcyjne, symbole znaki sterujące (niedrukowalne): np. CR, LF, NUL, ESC, ACK, EOT standardowe kody: ASCII (7 lub 8 bitów) UNICODE (16 bitów, 32 bity) kody znaków zawarto w tabelach kodowych w użyciu różne strony kodowe, np. polskie ISO 8859-2 CP1250 z tabeli odczytujemy kod znaku, np. 0x41 dla litery A c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 47 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 48 / 56

Standardy reprezentacji znaków Kody znaków (ASCII) Standard UNICODE Standardy reprezentacji znaków 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI 1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 2 SP! " # $ % & ( ) * +, -. / 3 0 1 2 3 4 5 6 7 8 9 : ; < = >? 4 @ A B C D E F G H I J K L M N O 5 P Q R S T U V W X Y Z [ \ ] ^ _ 6 a b c d e f g h i j k l m n o 7 p q r s t u v w x y z { } ~ DEL uniwersalny standard kodowania znaków obejmuje języki Ameryki, Europy, Środkowego Wschodu, Afryki, Indii, Azji i języki pacyficzne (ponadregionalne) obejmuje symbole techniczne i matematyczne, np. obejmuje inne symbole, np. historyczne, geograficzne 16 bitowa wartość jest definiowana jako liczba w systemie szesnastkowym wraz z przedrostkiem U, np. U+0041 w literałach łańcuchowych można użyć sekwencji tzw. ucieczki (ang. Escape), np. \u00a9 reprezentuje symbol copyright (czyli c ) system zgodny z ASCII i ISO konsorcjum UNICODE: http://unicode.org/ c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 49 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 50 / 56 Przechowywanie danych w pamięci 1 2 Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite bez znaku 3 Operacje na liczbach zmiennoprzecinkowych 4 Standardy reprezentacji znaków 5 Przechowywanie danych w pamięci Przechowywanie danych w pamięci Przechowywanie danych w pamięci adresowanie pamięci: wskazanie numeru bajtu dane wielobajtowe wskazywane przez adres początkowy bloku bajtów stosowane są dwa sposoby ułożenia bajtów w bloku: 1 Little-Endian: pod wskazanym adresem najmłodszy bajt pod adresem o jeden większym kolejne bajty według starszeństwa 2 Big-Endian: pod wskazanym adresem najstarszy bajt pod adresem o jeden większym kolejne młodsze bajty bajty w rejestrze: najstarszy bajt na najbardziej znaczących pozycjach bitów 6 Literatura c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 51 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 52 / 56

Ćwiczenia Przechowywanie danych w pamięci Ćwiczenia Przechowywanie danych w pamięci 1 Załóżmy, że pod 32 bitowym adresem 0xFFFF0000 zapisano kolejne bajty: 0x41, 0x53, 0x4B,0x8D. Pod tym adresem znajduje się zmienna a typu float. Wyznaczyć wartość tej zmiennej przyjmując konwencję Big-Endian. adres : zawartość pamięci ------------------------------ : 0xFFFF0000: 0x41 0xFFFF0001: 0x53 0xFFFF0002: 0x4B 0xFFFF0003: 0x8D : 2 Wyznaczyć wartość zmiennej a dla konwencji Little-Endian. 1 Załóżmy, że pod 32 bitowym adresem 0xFFFF0000 z poprzedniego ćwiczenia znajduje się zmienna k typu int. Wyznaczyć wartość tej zmiennej przyjmując konwencję Little-Endian. 2 Załóżmy, że pod 32 bitowym adresem 0xFFFF0000 znajduje się zmienna m typu unsigned. Wyznaczyć wartość tej zmiennej przyjmując konwencję Little-Endian. 3 Załóżmy, że pod 32 bitowym adresem 0xFFFF0000 znajduje się 16 bitowa zmienna i typu short int. Wyznaczyć wartość tej zmiennej przyjmując konwencję Big-Endian. 4 Załóżmy, że pod 32 bitowym adresem 0xFFFF0000 znajduje się zmienna c typu char. Jaki to jest znak? c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 53 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 54 / 56 Podsumowanie Podsumowanie Literatura Literatura 1 Dane są przechowywane w pamięci w postaci kodów binarnych o ściśle określonych standardach. 2 Długość rejestru i standard reprezentacji mają wpływ na zakres wartości typu całkowitoliczbowego. 3 Długość rejestru i standard reprezentacji mają wpływ na zakres wartości i dokładność reprezentacji liczb rzeczywistych. 4 Są dwie konwencje przechowywania danych wielobajtowych. 5 Ten sam kod binarny może być interpretowany jako reprezentacja różnych wartości. Niniejsze slajdy należy traktować jedynie jako materiały pomocnicze do mojego wykładu nie wyczerpują one ani treści wykładanych, ani treści zawartych we wskazanej literaturze. A. S. Tanenbaum, Strukturalna organizacja systemów komputerowych, Helion, 2006. J. Biernat, Architektura komputerów, OWPW, 2005. R. Hyde, Profesjonalne programowanie, Helion, 2005. R. Hyde, Asembler. Sztuka programowania, Helion, 2004. G. Mazur, Architektura systemów komputerowych, http://wazniak.mimuw.edu.pl. P.A. Carter, PC Assembly Language, http://www.drpaulcarter.com/pcasm/. D.W. Lewis, Między asemblerem a językiem C. Podstawy oprogramowania wbudowanego, RM, 2004. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 55 / 56 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 56 / 56