Kodowanie liczb
Transkrypt
Kodowanie liczb
RODZAJE INFORMACJI Informacje analogowe U(t) Umax Umax MASZYNA ANALOGOWA R=(0 Umax) R=(0,Umax) 0 nieskończony zbiór możliwych wartości 0 WE WY Informacje cyfrowe U(t) Umaxq Umax R=(U, 2U, 3U 4U) 3U, 0 Jacek Bartman moc zbioru R wynosi 4 U - kwant wartości 0 # # a/c / MASZYNA CYFROWA # # c/a / RODZAJE INFORMACJI Informacją cyfrową nazywamy informację przedstawioną w postaci słów cyfrowych Słowem cyfrowym nazywamy dowolny ciąg składający się z symboli 0 i/lub 1 Długość słowa 1 4 8 16 32 64 1b - oznacza 1 bit 1B - oznacza 1 bajt Oznaczenie symboliczne a0 a3...a0 a7.....a0 a15.......a0 a31.........a0 a63...........a a0 Nazwa bit tetrada, kęs bajt słowo 16-bitowe, słowo podwójne słowo, dwusłowo słowo 64-bitowe, 64 bitowe, czterosłowo 1B=8b 10 1kB=1024B (2 ) 1MB=1024kB 1GB=1024MB Przykład: 20 MB jest ilością informacji ośmiokrotnie większą niż 20Mb Jacek Bartman Informacja cyfrowa • W słowach cyfrowych wyróżnia się najstarszą i najmłodszą pozycję: j j znaczący ą y zwany y najstarszym j y ((ang. g - Most Significant g Bit) Bit) MSB - bit najbardziej LSB - bit najmniej znaczący zwany najmłodszym (ang. - Least Significant Bit Bit)) an-1 ......................... a0 MSB • • LSB Analogicznie możemy mówić o starszym i najmłodszym bajcie lub o starszej lub młodszej tetradzie.. tetradzie Zalety układów dwustanowych prostota i łatwość wytwarzania (w stosunku do układów wielostanowych), duża niezawodność, możliwość opisu przy pomocy algebry Boole’a („0” – „fałsz”, „1” – prawda”) Wad układów Wady kładó dwustanowych: d stano ch mała ilość przekazywanej informacji – 1 bit (można ją zwiększyć zwiększając liczbę wejść – pojemność opisuje zależność 2n, gdzie n jest liczbą wejść), – – • – Jacek Bartman ARYTMETYKA CYFROWA Kodowanie liczb Systemy pozycyjne – wartość cyfry zależy od miejsca (pozycji) jaką ta cyfra zajmuje w napisanej liczbie. Każdą liczbę w tym systemie można zapisać w postaci: t i L n 1 ci p i i 0 c n 1p n 1 ... c1p1 c 0 p 0 gdzie: ci – it-a cyfra liczby zawierająca się w zbiorze {0, 1, 2, ..., p -1] p – podst awa systemu liczenia Przykładem systemów pozycyjnych są system dziesiętny, system dwójkowy, itp. Systemy niepozycyjne – wartość cyfry nie zależy od miejsca jej położenia w liczbie. Przykładem takiego systemu jest system rzymski ( I=1, V=5, X=10, C=100, D=5 00, M=1000) Jacek Bartman System binarny Pozycyjny system dwójkowy (binarny) (p=2; {0,1}) cyfry dwójkowe noszą nazwę bitów (bit c0 – najmniej znaczący bit (LSB) (LSB), cn-1 – najbardziej znaczący bit (MSB)), zamiana liczb z kodu binarnego na dziesiętny (10111)2 = 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 1 x 20 = 16 + 4 + 2 + 1 = (23)10 zamiana liczb z kodu dziesiętnego na binarny – należy kolejno dzielić liczbę dziesiętną przez dwa i notować w odwrotnej kolejności reszty z dzielenia (1 lub 0) 25 : 2 12 reszta 1 12 : 2 6 reszta 0 6 : 2 3 reszta 0 25 10 110012 3 : 2 1 reszta 1 1 : 2 0 reszta 1 za pomocą n bitów można w systemie binarnym zapisać 2n liczb. Jacek Bartman Kody dwójkowo-dziesietne Pozycyjne kody dwójkowo-dziesiętne w odróżnieniu od kodu binarnego nie kodują całej liczby tylko oddzielnie poszczególne cyfry dziesiętne, wyróżnia się kody dwójkowo dziesiętne wagowe oraz niewagowe. kody wagowe Cyfra 0 1 2 3 4 5 6 7 8 9 Jacek Bartman BCD kody niewagowe Aikena 8 4 2 1 2 4 2 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 Excess 3 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 Graya 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 Johnsona 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 Dziesiętnie Binarnie BCD 841 Aikena Excess 3 Graya 25 0001 1001 0010 0101 0010 1011 0101 1000 0011 01 11 System ósemkowy Pozycyjny system ósemkowy (oktalny) (p=8; {0,1, 2, 3, 4, 5, 6, 7}) zamiana liczb z kodu ósemkowego na dziesiętny (564)8 = 5 x 82 + 6 x 81 + 4 x 80 = 320 + 48 + 4 = (372)10 zamiana liczb z kodu dziesiętnego na ósemkowy – należy kolejno dzielić liczbę dziesiętną przez osiem i notować w odwrotnej kolejności reszty z d i l i dzielenia. 372 : 8 46 reszta 4 46 : 8 5 reszta 6 372 10 564 8 5 : 8 0 reszta 5 Jacek Bartman System ósemkowy zamiana liczb z kodu ósemkowego na binarny - liczbę binarną tworzymy z liczby ósemkowej zastępując kolejne cyfry ósemkowe odpowiadającym im liczbą dwójkowym zapisanym przy pomocy trzech bitów (564)8 = (101 110 100)2 bo (5)8=(101) (101)2; (6)8=(110) (110)2; (4)8=(100) (100)2 (100 000 101)2 = 28 + 22 + 20 = 256 + 4 + 1 = (261)10 zamiana liczb z kodu binarnego g na ósemkowego g - liczbę ę ósemkową ą tworzymy y y zastępując kolejne cyfry binarne odpowiadającą im cyfra ósemkową. (111 110 010)2=(762) 8 Jacek Bartman 000 – 0 001 – 1 010 – 2 011 – 3 100 – 4 101 – 5 110 – 6 111 – 7 System szesnastkowy Pozycyjny system szesnastkowy (haksadecymalny) (p=16; {0,1, 2, 3, 4, 5, 6, 7, 8, 9, A(10), B(11), C(12), D(13), E(14), F(15)}) zamiana liczb z kodu szesnastkowego na dziesiętny (6A1)16 = 6 x 162 + 10 x 161 + 1 x 160 = 1536 + 160 + 1 = (1697)10 zamiana liczb z kodu dziesiętnego na szesnastkowy – należy kolejno dzielić liczbę dziesiętną przez szesnaście i notować w odwrotnej kolejności reszty z dzielenia. 5327 : 16 332 reszta 15 332 : 16 20 reszta 12 5327 10 14CF 16 20 : 16 1 reszta 4 1 : 16 0 reszta 1 Jacek Bartman System szesnastkowy zamiana liczb z kodu szesnastkowego na binarny - liczbę binarną tworzymy z liczby szesnastkowej zastępując kolejne cyfry szesnastkowe odpowiadającym im liczbom dwójkowym zapisanym przy pomocy czterech bitów, (14CF)16 = (0001 0100 1100 1111)2 bo (1)16=(0001)2; (4)16=(0100)2; (C)16=(1100)2; (F)16=(1111)2 (0001 0100 1100 1111)2 = 212 + 210 + 27+ 26 + 23 + 22 + 21 + 20 = 4096 + 1024 + 128 + 64 + 8 + 4 + 2 + 1 = (5327)10 zamiana liczb z kodu binarnego na szesnastkowy - liczbę szesnastkową tworzymy kolejne cyfry bity zapisu dwójkowego odpowiadającą im cyfrą szesnastkową, (0101 0110 1000 1111)2 = (568F)16 zapis szesnastkowy jest powszechnie stosowany wśród użytkowników mikrokomputerów - tzw. słowa są wielokrotnością bajta (8 bitów), łatwo więc pozwalają l j grupować ć się i w czwórki ó ki co umożliwia żli i skrócenie kó i zapisu. i Jacek Bartman 0000 – 0 0001 – 1 0010 – 2 0011 – 3 0100 – 4 0101 – 5 0110 – 6 0111 – 7 1000 – 8 1001 – 9 1010 – A (10) 1011 – B (11) 1100 – C (12) 1101 – D (13) 1110 – E (14) 1111 – F (15) Kod znak-moduł Kod znak-moduł służy do zapisu liczb całkowitych (zarówno dodatnich jak i ujemnych) • • poszczególne bity maja identyczne wagi jak w naturlnym kodzie binarnym, jedynie pierwszy bit (lewy skrajny) nie ma wagi a określa znak liczby: 1 „„-” 0 „+” (1001)zm = -1*(1*20)= -1 (0101)zm = +1 +1*(1*2 (1 22 +1 +1*2 20))= 5 wady – niejednoznaczny zapis zera zera, – trudności podczas wykonywania operacji arytmetycznych Jacek Bartman Kod uzupełnieniowy do dwóch Kod uzupełnieniowy do dwóch 1 1. służy ł ż d do zapisu i liliczb b całkowitych łk it h ((zarówno ó d dodatnich d t i h jak j k i ujemnych) j h) Podane wcześniej kody pozwalają zapisywać jedynie liczby nieujemne. 2 2. w myśl tego zapisu poszczególne bity mają wagi takie jak w kodzie binarnym, przy czym, najważniejszy bit poprzedzony jest znakiem minus: ((1001))u = -1 x 23 + 1 x 20 = -8 + 1 = -7 3. uzupełnienie dwójkowe liczby (liczbę przeciwną) tworzymy poprzez: - zanegowanie wszystkich bitów i dodanie do wyniku jeden, - zanegowanie wszystkich bitów od lewej strony, aż do momentu napotkania w ciągu ostatniej jedynki, jedynki oraz następujących po niej zer się nie neguje. 4. uzupełnienie dwójkowe pozwala zastąpić operację odejmowania dodawaniem Jacek Bartman Zapis stałopozycyjny Zapis stałopozycyjny 1. służy do zapisu liczb wymiernych (zawierających część ułamkową). 2. bazuje na systemie pozycyjnym o podstawie 2, wykorzystując do zapisu części ułamkowej ujemne wykładniki potęg: n M ci 2 i cn 2 n ... c2 p 2 c1p 1 i 1 3. zalety: - bardzo prosty, prosty - elastyczny; 4 4. wady: d - ogranicza zakres liczb, - zapis liczb często jest niedokładny Jacek Bartman Zapis zmiennopozycyjny 1. służy do zapisu liczb wymiernych (zawierających część ułamkową), pozbawiony b i jjest wad d zapisu i stałopozycyjnego. ł j 2. liczba w systemie zmiennopozycyjnym skład a się z: - mantysy m, m - cechy c; i można ją zapisać wzorem: L = m2c 3. mantysę najczęściej przedstawia się w postaci znak- moduł, a cechę w k d i uzupełnieniowym kodzie ł i i d do d dwóch, ó h 4. mnożenie liczb zmiennoprzecinkowych sprowadza się do wymnożenia mantys t i dodania d d i cech, h 5. dodawanie wymaga zrównania cech, w tym celu zwiększa się wartość cechy h jjednej d j z liliczb b przesuwając j jjejj mantysę t w prawo. Jacek Bartman