ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 1 / 56
Systemy liczbowe 1 Systemy liczbowe Analiza systemów liczbowych Konwersje notacji liczb Dodawanie liczb naturalnych o podstawie r Odejmowanie liczb i liczby ujemne 2 Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite bez znaku Wartości całkowite ze znakiem Rozszerzenie arytmetyczne 3 Liczby rzeczywiste Reprezentacja stałoprzecinkowa Reprezentacja zmiennoprzecinkowa 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 2 / 56
Systemy liczbowe Analiza systemu dziesiętnego Analiza systemów liczbowych system o podstawie 10 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 3 / 56
Systemy liczbowe Analiza systemów liczbowych Analiza systemu dziesiętnego system o podstawie 10 rozwinięcie liczby w zapisie dziesiętnym, np. 234 234 = 2 10 2 + 3 10 1 + 4 10 0 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 3 / 56
Systemy liczbowe Analiza systemów liczbowych Analiza systemu dziesiętnego system o podstawie 10 rozwinięcie liczby w zapisie dziesiętnym, np. 234 234 = 2 10 2 + 3 10 1 + 4 10 0 zbiór cyfr liczby dziesiętnej D = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 3 / 56
Systemy liczbowe Analiza systemów liczbowych Analiza systemu dziesiętnego 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 i=0 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 3 / 56
Systemy liczbowe Analiza systemu binarnego Analiza systemów liczbowych system o podstawie 2 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 4 / 56
Systemy liczbowe Analiza systemów liczbowych Analiza systemu binarnego system o podstawie 2 rozwinięcie liczby w zapisie binarnym, np. 1011 1011 2 = 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 4 / 56
Systemy liczbowe Analiza systemów liczbowych Analiza systemu binarnego system o podstawie 2 rozwinięcie liczby w zapisie binarnym, np. 1011 1011 2 = 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 zbiór cyfr liczby binarnej B = {0, 1} c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 4 / 56
Systemy liczbowe Analiza systemów liczbowych Analiza systemu binarnego system o podstawie 2 rozwinięcie liczby w zapisie binarnym, np. 1011 1011 2 = 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 zbiór cyfr liczby binarnej 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 i=0 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 4 / 56
Systemy liczbowe Analiza systemu szesnastkowego Analiza systemów liczbowych system o podstawie 16 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 5 / 56
Systemy liczbowe Analiza systemów liczbowych 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 5 / 56
Systemy liczbowe Analiza systemów liczbowych 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 } c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 5 / 56
Systemy liczbowe Analiza systemów liczbowych 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 i=0 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 5 / 56
Systemy liczbowe Analiza systemu ósemkowego Analiza systemów liczbowych system o podstawie 8 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 6 / 56
Systemy liczbowe Analiza systemów liczbowych 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 6 / 56
Systemy liczbowe Analiza systemów liczbowych 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} c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 6 / 56
Systemy liczbowe Analiza systemów liczbowych 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 i=0 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 6 / 56
Systemy liczbowe Konwersje notacji liczb 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 7 / 56
Systemy liczbowe Konwersje notacji liczb 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 7 / 56
Systemy liczbowe Konwersje notacji liczb 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 7 / 56
Systemy liczbowe Konwersje notacji liczb 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) c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 7 / 56
Systemy liczbowe Konwersje notacji liczb 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
Systemy liczbowe Konwersje notacji liczb 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 8 / 56
Systemy liczbowe Konwersje notacji liczb 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 8 / 56
Systemy liczbowe Konwersje notacji liczb 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 8 / 56
Systemy liczbowe Konwersje notacji liczb 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
Systemy liczbowe Konwersje notacji liczb Konwersja metodą dzielenia przez 2 Przykład 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 9 / 56
Systemy liczbowe Konwersje notacji liczb Rezultaty konwersji liczb naturalnych 0..15 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 10 / 56
Systemy liczbowe Konwersje notacji liczb Konwersja do zapisu szesnastkowego metodą dzielenia przez 16 najmłodsza cyfra h 0 to reszta z dzielenia liczby naturalnej l przez 16 l 16 = l 1 r h 0 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 11 / 56
Systemy liczbowe Konwersje notacji liczb Konwersja do zapisu szesnastkowego metodą dzielenia przez 16 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 11 / 56
Systemy liczbowe Konwersje notacji liczb Konwersja do zapisu szesnastkowego metodą dzielenia przez 16 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 l 2 16 = l 3 r h 2 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 11 / 56
Systemy liczbowe Konwersje notacji liczb Konwersja do zapisu szesnastkowego metodą dzielenia przez 16 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 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: [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
Systemy liczbowe Konwersje notacji liczb Konwersja metodą dzielenia przez 16 Przykład 589 16 = 36 r 13 36 16 = 2 r 4 2 16 = 0 r 2 Czyli 589 = 24D 16 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 12 / 56
Systemy liczbowe Konwersje notacji liczb Rezultaty konwersji liczb naturalnych 0..15 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 13 / 56
Systemy liczbowe Konwersje notacji liczb Binarna reprezentacja cyfr szesnastkowych 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 14 / 56
Ćwiczenia Systemy liczbowe Konwersje notacji liczb 1 Wyrazić w notacji binarnej następujące liczby naturalne: 64, 66, 129, 1023. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 15 / 56
Ćwiczenia Systemy liczbowe Konwersje notacji liczb 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. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 15 / 56
Ćwiczenia Systemy liczbowe Konwersje notacji liczb 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. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 15 / 56
Ćwiczenia Systemy liczbowe Konwersje notacji liczb 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
Systemy liczbowe Dodawanie liczb naturalnych o podstawie r Dodawanie liczb naturalnych o podstawie r dane są n cyfrowe liczby w notacji o podstawie r z cyframi a i, b i [0, 1,..., r 1]: a = [a n 1, a n 2,..., a 1, a 0 ] b = [b n 1, b n 2,..., b 1, b 0 ] c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 16 / 56
Systemy liczbowe Dodawanie liczb naturalnych o podstawie r Dodawanie liczb naturalnych o podstawie r dane są n cyfrowe liczby w notacji o podstawie r z cyframi a i, b i [0, 1,..., r 1]: 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 16 / 56
Systemy liczbowe Dodawanie liczb naturalnych o podstawie r Dodawanie liczb naturalnych o podstawie r dane są n cyfrowe liczby w notacji o podstawie r z cyframi a i, b i [0, 1,..., r 1]: 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
Systemy liczbowe Dodawanie liczb naturalnych o podstawie r Dodawanie liczb naturalnych o podstawie r Przykłady dodawania liczb dodawanie naturalnych liczb binarnych 11011 2 +10001 2 101100 2 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 17 / 56
Systemy liczbowe Dodawanie liczb naturalnych o podstawie r Dodawanie liczb naturalnych o podstawie r Przykłady dodawania liczb dodawanie naturalnych liczb binarnych 11011 2 +10001 2 101100 2 dodawanie naturalnych liczb szesnastkowych 3A5F 16 +EB2C 16 1258B 16 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 17 / 56
Systemy liczbowe Dodawanie liczb naturalnych o podstawie r Dodawanie liczb naturalnych o podstawie r Przykłady dodawania liczb 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 17 / 56
Systemy liczbowe Dodawanie liczb naturalnych o podstawie r Dodawanie liczb naturalnych o podstawie r Przykłady dodawania liczb 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 17 / 56
Systemy liczbowe Dodawanie liczb naturalnych o podstawie r Dodawanie liczb naturalnych o podstawie r Przykłady dodawania liczb 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 17 / 56
Systemy liczbowe Odejmowanie liczb dziesiętnych Odejmowanie liczb i liczby ujemne przykład odejmowania bez pożyczki 351 25 =? c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 18 / 56
Systemy liczbowe Odejmowanie liczb dziesiętnych Odejmowanie liczb i liczby ujemne przykład odejmowania bez pożyczki 351 25 =? przekształćmy tak: 351 25 = 351 + 999 25 + 1 1000 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 18 / 56
Systemy liczbowe Odejmowanie liczb dziesiętnych Odejmowanie liczb i liczby ujemne 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 18 / 56
Systemy liczbowe Odejmowanie liczb i liczby ujemne Odejmowanie liczb dziesiętnych 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 18 / 56
Systemy liczbowe Odejmowanie liczb i liczby ujemne Odejmowanie liczb dziesiętnych 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 18 / 56
Systemy liczbowe Odejmowanie liczb i liczby ujemne Odejmowanie liczb dziesiętnych 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 18 / 56
Systemy liczbowe Odejmowanie liczb binarnych Odejmowanie liczb i liczby ujemne przykład odejmowania bez pożyczki 1010 0011 =? c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 19 / 56
Systemy liczbowe Odejmowanie liczb binarnych Odejmowanie liczb i liczby ujemne przykład odejmowania bez pożyczki 1010 0011 =? przekształćmy tak: 1010 0011 = 1010 + 1111 0011 + 1 10000 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 19 / 56
Systemy liczbowe Odejmowanie liczb binarnych Odejmowanie liczb i liczby ujemne 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 19 / 56
Systemy liczbowe Odejmowanie liczb i liczby ujemne Odejmowanie liczb binarnych 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 19 / 56
Systemy liczbowe Odejmowanie liczb i liczby ujemne Odejmowanie liczb binarnych 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 19 / 56
Systemy liczbowe Odejmowanie liczb i liczby ujemne Odejmowanie liczb binarnych 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 19 / 56
Systemy liczbowe Odejmowanie liczb szesnastkowych Odejmowanie liczb i liczby ujemne przykład odejmowania bez pożyczki 7A5B 002C =? c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 20 / 56
Systemy liczbowe Odejmowanie liczb szesnastkowych Odejmowanie liczb i liczby ujemne przykład odejmowania bez pożyczki 7A5B 002C =? przekształćmy tak: 7A5B 002C = 7A5B + FFFF 002C + 1 10000 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 20 / 56
Systemy liczbowe Odejmowanie liczb szesnastkowych Odejmowanie liczb i liczby ujemne 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 20 / 56
Systemy liczbowe Odejmowanie liczb i liczby ujemne Odejmowanie liczb szesnastkowych 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 20 / 56
Systemy liczbowe Odejmowanie liczb i liczby ujemne Odejmowanie liczb szesnastkowych 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 20 / 56
Systemy liczbowe Odejmowanie liczb i liczby ujemne Odejmowanie liczb szesnastkowych 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 20 / 56
Standardy reprezentacji wartości całkowitoliczbowych 1 Systemy liczbowe Analiza systemów liczbowych Konwersje notacji liczb Dodawanie liczb naturalnych o podstawie r Odejmowanie liczb i liczby ujemne 2 Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite bez znaku Wartości całkowite ze znakiem Rozszerzenie arytmetyczne 3 Liczby rzeczywiste Reprezentacja stałoprzecinkowa Reprezentacja zmiennoprzecinkowa 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
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite bez znaku Standardowa reprezentacja wartości całkowitych bez znaku w komputerze liczby przechowywane są w notacji binarnej z zastosowaniem ściśle określonego standardu reprezentacji 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 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 ] 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 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 i=0 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 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 i=0 w komputerze bity liczby przechowywane są w rejestrze o długości n 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 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 i=0 w komputerze bity liczby przechowywane są w rejestrze o długości n standardowe wartości n to: 8, 16, 32, 64 bity 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 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 i=0 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 Reprezentacja wartości całkowitych bez znaku (unsigned) przykładowa deklaracja w języku C unsigned int a; c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 23 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite bez znaku 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 23 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite bez znaku 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 23 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 24 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem 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 i=0 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 24 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem 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 i=0 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 i=0 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 24 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem 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 i=0 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 i=0 standardowe wartości n to: 8, 16, 32, 64 bity c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 24 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem 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 i=0 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 i=0 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 24 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem Reprezentacja wartości całkowitych ze znakiem (signed) przykładowa deklaracja w języku C int a; c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 25 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem Reprezentacja wartości całkowitych ze znakiem (signed) 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) c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 25 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem Reprezentacja wartości całkowitych ze znakiem (signed) 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 25 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem Inne reprezentacje wartości całkowitych znak i moduł znak i moduł (ZM) na n bitach c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 26 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem Inne reprezentacje wartości całkowitych znak i moduł 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 i=0 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 26 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem Inne reprezentacje wartości całkowitych znak i moduł 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 i=0 liczba ujemna: [1, b n 2,..., b 1, b 0 ] o wartości dziesiętnej n 2 l = b i 2 i i=0 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 26 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem Inne reprezentacje wartości całkowitych znak i moduł 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 i=0 liczba ujemna: [1, b n 2,..., b 1, b 0 ] o wartości dziesiętnej wada: dwie reprezentacje zera n 2 l = b i 2 i i=0 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 26 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem Inne reprezentacje wartości całkowitych kod spolaryzowany kod spolaryzowany (+N, ang. biased N, excess N) c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 27 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem Inne reprezentacje wartości całkowitych kod spolaryzowany kod spolaryzowany (+N, ang. biased N, excess N) przesunęcie N = 2 n 1 1 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 27 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem Inne reprezentacje wartości całkowitych kod spolaryzowany 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 i=0 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 27 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem Inne reprezentacje wartości całkowitych kod spolaryzowany 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 i=0 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 27 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem Inne reprezentacje wartości całkowitych kod spolaryzowany 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 i=0 często stosowany jako kod pomocniczy c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 27 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem Inne reprezentacje wartości całkowitych kod BCD cyfry liczby dziesiętnej kodowane binarnie c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 28 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem Inne reprezentacje wartości całkowitych kod BCD cyfry liczby dziesiętnej kodowane binarnie postać spakowana: bajt przechowuje 2 cyfry dziesiętne c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 28 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem Inne reprezentacje wartości całkowitych kod BCD 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) c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 28 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem Inne reprezentacje wartości całkowitych kod BCD 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 0000 0000 0000 0000 0000 0101 0100 1001 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 28 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem Inne reprezentacje wartości całkowitych kod BCD 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 28 / 56
Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite ze znakiem Inne reprezentacje wartości całkowitych kod BCD 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 28 / 56
Standardy reprezentacji wartości całkowitoliczbowych Rozszerzenie arytmetyczne Rozszerzenie arytmetyczne rozszerzenie kodu liczby na większą liczbę pozycji c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 29 / 56
Standardy reprezentacji wartości całkowitoliczbowych Rozszerzenie arytmetyczne Rozszerzenie arytmetyczne rozszerzenie kodu liczby na większą liczbę pozycji liczby bez znaku są rozszerzane zerami na dodatkowych, starszych pozycjach c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 29 / 56
Standardy reprezentacji wartości całkowitoliczbowych Rozszerzenie arytmetyczne Rozszerzenie arytmetyczne 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 29 / 56
Standardy reprezentacji wartości całkowitoliczbowych Rozszerzenie arytmetyczne Rozszerzenie arytmetyczne 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 29 / 56
Standardy reprezentacji wartości całkowitoliczbowych Ćwiczenia Rozszerzenie arytmetyczne 1 Wyrazić w notacji binarnej następujące liczby całkowite (32 bitowe wartości zmiennych typu int) : -64, -66, 129, 1023. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 30 / 56
Standardy reprezentacji wartości całkowitoliczbowych Rozszerzenie arytmetyczne Ćwiczenia 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. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 30 / 56
Standardy reprezentacji wartości całkowitoliczbowych Rozszerzenie arytmetyczne Ćwiczenia 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. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 30 / 56
Standardy reprezentacji wartości całkowitoliczbowych Rozszerzenie arytmetyczne Ćwiczenia 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 30 / 56
Liczby rzeczywiste 1 Systemy liczbowe Analiza systemów liczbowych Konwersje notacji liczb Dodawanie liczb naturalnych o podstawie r Odejmowanie liczb i liczby ujemne 2 Standardy reprezentacji wartości całkowitoliczbowych Wartości całkowite bez znaku Wartości całkowite ze znakiem Rozszerzenie arytmetyczne 3 Liczby rzeczywiste Reprezentacja stałoprzecinkowa Reprezentacja zmiennoprzecinkowa 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 31 / 56
Liczby rzeczywiste Notacja stałoprzecinkowa Reprezentacja stałoprzecinkowa system o podstawie r, cyfry liczb: a i D = {0, 1,..., r 1} c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 32 / 56
Liczby rzeczywiste Notacja stałoprzecinkowa Reprezentacja 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 32 / 56
Liczby rzeczywiste Notacja stałoprzecinkowa Reprezentacja 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 32 / 56
Liczby rzeczywiste Notacja stałoprzecinkowa Reprezentacja 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 32 / 56
Liczby rzeczywiste Notacja stałoprzecinkowa Reprezentacja 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 32 / 56
Liczby rzeczywiste Notacja stałoprzecinkowa Reprezentacja 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) c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 33 / 56
Liczby rzeczywiste Reprezentacja stałoprzecinkowa 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 33 / 56
Liczby rzeczywiste Reprezentacja stałoprzecinkowa 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
Liczby rzeczywiste Reprezentacja stałoprzecinkowa 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 34 / 56
Liczby rzeczywiste Reprezentacja stałoprzecinkowa 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 34 / 56
Liczby rzeczywiste Reprezentacja stałoprzecinkowa 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 34 / 56
Liczby rzeczywiste Reprezentacja stałoprzecinkowa 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 34 / 56
Liczby rzeczywiste Reprezentacja stałoprzecinkowa 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 34 / 56
Liczby rzeczywiste Reprezentacja stałoprzecinkowa 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 +... c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 34 / 56
Liczby rzeczywiste Reprezentacja stałoprzecinkowa 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
Liczby rzeczywiste Reprezentacja stałoprzecinkowa Przykład konwersji ułamka do notacji binarnej ułamek dziesiętny 0.375 mnożymy przez 2 0.375 2 0.750 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 35 / 56
Liczby rzeczywiste Reprezentacja stałoprzecinkowa 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 35 / 56
Liczby rzeczywiste Reprezentacja stałoprzecinkowa 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 35 / 56
Liczby rzeczywiste Reprezentacja stałoprzecinkowa 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 35 / 56
Liczby rzeczywiste Reprezentacja stałoprzecinkowa 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 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok akad. 2011/2012 35 / 56