350 likes | 504 Views
Systemy liczbowe w architekturze komputerów materiał do wykładu 1/3. dr inż. Rafał Klaus. Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii informatycznych i ich zastosowań w przemyśle" POKL.04.01.02-00-189/10. Systemy liczbowe.
E N D
Systemy liczbowe w architekturze komputerówmateriał do wykładu 1/3 dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii informatycznych i ich zastosowań w przemyśle" POKL.04.01.02-00-189/10
Systemy liczbowe • Addytywne: • w których liczby tworzy się przez dodawanie kolejnych symboli, • np. rzymski system liczbowy, hieroglificzny, alfabetyczny, gdzie wartość liczby jest sumą wartości jej znaków cyfrowych • Pozycyjne: • które posiadają symbole n liczb naturalnych: 0, 1, 2, ..., n − 1, gdzie n to tzw. podstawa systemu, która może być dowolną liczbą naturalną większą niż 1. Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
System pozycyjny oznaczając przez cn - cyfrę systemu pozycyjnego i n – pozycję cyfry p - podstawę systemu, wartość reprezentowaną przez symbol liczby zapisujemy jako sumę iloczynów postaci: cn* p n + . . . + c2 * p 2 + c1* p 1 + c0 * p 0 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
System dziesiętny Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Konwersje systemów (4013)5= 4 * 5 3 + 0 * 5 2 + 1 * 5 1 + 3 * 5 0= 500 + 5 + 3 = (508)10 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
System dwójkowy U[V] 5 1 2 0,8 0 t 0 Cyframi tego systemu są: 0 i 1. Symbolizują one dwa stany tzw. 0 - stan niski – (brak działania/brak sygnału) 1- stan wysoki – (działanie układu/sygnał) Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Konwersja (z BIN na DEC) (11011101)2 = = 1 * 2 7 + 1 * 2 6 + 0 * 2 5 + 1 * 2 4 + 1 * 2 3+ 1 * 2 2 + 0 * 2 1 + 1 * 2 0 = 128 + 64 + 16 + 8 + 4 + 1 = = (221)10 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Konwersja (z DEC na BIN) DEC BIN : dzielenie przez 2 440 220 4410 = 1011002 111 51 20 11 0 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Konwersja (z DEC na BIN) Część ułamkowa liczby . 5625 30 1 1 1250 Kolejne wyniki mnożenia przez 2 15 0 0 2500 7 1 0 5000 3 1 1 0000 1 1 Część całkowita 0 Reszta 1 Część całkowita liczby: 61. Kolejne wyniki dzielenia przez 2 61.562510 = 111101.10012 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
System szesnastkowy Cyframi tego systemu są: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F (1011|0011|1010)2 = (B3A)16 (11|1011|1110)2 = (0011|1011|1110)2 = (3BE)16 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Konwersja HEX HEX na DEC (3BE)16 = 3 * 16 2 + 11 * 16 1 + 14 * 16 0 = 768 + 176 + 14 = (958)10 BIN na HEX 1111000111000.111000111B 1 1110 0011 1000.1110 0011 1 0001 1110 0011 1000.1110 0011 1000 • E 3 8 . E 3 8 1111000111000.111000111B = 1E38.E38H Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Konwersja HEX na BIN 0E6C.7F8H E 6 C . 7 F 8 1110 0110 1100 . 0111 1111 1000 0E6C.7F8H = 111001101100.011111111000B Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Liczby stałoprzecinkowe cn-1...c0,c-1c-2...c-m = cn-1pn-1 + ... + c0p0 + c-1p-1 + c-2p-2 + ... +c-mp-m 253,763 = 2 x 102 + 5 x 101 + 3 x 100 + 7 x 10-1 + 6 x 10-2 + 3 x 10-3 432,321(5) = 4 x 52 + 3 x 51 + 2 x 50 + 3 x 5-1 + 2 x 5-2 + 1 x 5-3432,321(5) = 4 x 25 + 3 x 5 + 2 x 1 + 3 x 1/5 + 2 x 1/25 + 1 x 1/125432,321(5) = 100 + 15 + 2 + 3/5 + 2/25 + 1/125432,321(5) = 117 86/125432,321(5) = 117,688 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Dwójkowe liczby stałoprzecinkowe 1101,1011(2) = 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 + 1 x 2-1 + 0 x 2-2 + 1 x 2-3 + 1 x 2-4 1101,1011(2) = 1 x 8 + 1 x 4 + 0 x 1 + 1 x 1 + 1 x ½ + 0 x 1/4 + 1 x 1/8 + 1 x 1/16 1101,1011(2) = 8 + 4 + 1 + 1/2 + 1/8 + 1/161101,1011(2) = 13 + 10/161101,1011(2) = 13,625 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Operacje arytmetyczne - dodawanie Tabliczka dodawania binarnego 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 i 1 dalej Przekroczenie górnej granicy liczby - nadmiar (ang. overflow). Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Operacje arytmetyczne - odejmowanie Tabliczka odejmowania binarnego 0 - 0 = 0 1 - 0 = 1 1 - 1 = 0 0 - 1 = 1 i pożyczka Przekroczenie dolnej granicy liczby - niedomiar (ang. underflow). Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Operacje arytmetyczne - mnożenie Tabliczka mnożenia binarnego 0 x 0 = 0 1 x 0 = 0 0 x 1 = 0 1 x 1 = 1 nadmiar (ang. overflow) Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Operacje arytmetyczne - mnożenie Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Operacje arytmetyczne - dzielenie Podzielimy 1110(2) przez 11(2) (14 : 3). polega na cyklicznym odejmowaniu odpowiednio przesuniętego dzielnika od dzielnej Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Operacje arytmetyczne - dzielenie Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Liczby ujemne znak-moduł Znak kodowany jest stanem najstarszego bitu: Wartość liczby obliczamy wg następującego wzoru: bit znaku = 0 - liczba dodatnia bit znaku = 1 - liczba ujemna WZ-M = (1 - 2 x bit znaku) x WM WZ-M = (-1)bit znaku x WM Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
liczba w kodzie Z-M (0 101)(ZM) = (1 - 2 x 0) x (1 x 22 + 0 x 21 + 1 x 20)(0 101)(ZM) = 1 x (1 x 4 + 1 x 1)(0 101)(ZM) = 1 x (4 + 1)(0 101)(ZM) = 1 x 5(0 101)(ZM) = 5 (1101)(ZM) = (1 - 2 x 1) x (1 x 22 + 0 x 21 + 1 x 20)(1101)(ZM) = -1 x (1 x 4 + 1 x 1)(1101)(ZM) = -1 x (4 + 1)(1101)(ZM) = -1 x 5(1101)(ZM) = -5 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Liczba w kodzie Z-M 7 6 ..................... – 127 + 127 100...0 – 0 znak moduł 000...0 + 0 01 + – Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Two'sComplementNumbering System – U2 WU2 = cn-1 x (- pn-1) + cn-2 x pn-2 + ... + c1 x p1 + c0 x p0 0101(U2) = 0 x (- 23) + 1 x 22 + 0 x 21 + 1 x 200101(U2) = 0 x (- 8) + 1 x 4 + 0 x 2 + 1 x 10101(U2) = 0 + 4 + 10101(U2) = 5 1101(U2) = 1 x (- 23) + 1 x 22 + 0 x 21 + 1 x 201101(U2) = 1 x (- 8) + 1 x 4 + 0 x 2 + 1 x 11101(U2) = (- 8) + 4 + 11101(U2) = - 8 + 51101(U2) = - 3 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Kod U2 Oblicz wartość przeciwną do liczby 0011(U2) = 3: Sprawdzenie 1101(U2) = 1 x (-23) + 1 x 22 + 0 x 21 + 1 x 20 1101(U2) = 1 x (-8) + 1 x 4 + 0 x 2 + 1 x 11101(U2) = -8 + 4 + 11101(U2) = -3 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Kod U2 - działania • 6 = 0110(U2) • -3= 1101(U2) - zmieniamy na 3 = 0011(U2) Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
kod BCD - BinaryCodedDecimal 2379(10) = 0010001101111001(BCD 01101000100100110110(BCD) = 0110 1000 1001 0011 011001101000100100110110(BCD) = 6 x 104 + 8 x 103 + 9 x 102 + 3 x 101 + 6 x 10001101000100100110110(BCD) = 6 x 10000 + 8 x 1000 + 9 x 100 + 3 x 10 + 6 x 101101000100100110110(BCD) = 60000 + 8000 + 900 + 30 + 601101000100100110110(BCD) = 68936 1672(16) = 0001011001110010(2) = 0001 0110 0111 0010(BCD) = 1672(10 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Kod BCD – korekcja Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Kod Gray’a Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Zapis zmiennoprzecinkowy m - mantysa zapisana w systemie o podstawie p p- podstawa danego systemu pozycyjnego w - wykładnik zapisany w systemie o podstawie p. WFP = m x pw 9,45 x 1015= 94,5 x 1014= 0,945 x 1016 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Liczby zmiennoprzecinkowe (3,21 x 1012)(4) m = 3,21(4) = 3 x 40 + 2 x 4-1 + 1 x 4-2 = 3 x 1 + 2 x 1/4 + 1 x 1/16m = 3 + 2/4 + 1/16 = 39/16 p = 10(4) = 1 x 41 + 0 x 40 = 1 x 4 + 0 x 1p = 4 w = 12(4) = 1 x 41 + 2 x 40 = 1 x 4 + 2 x 1 = 4 + 2w = 6 (3,21 x 1012)(4) = 39/16 x 46 = 14592 (10) Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
p = 2 , standard IEEE 754 63 62 52 51 0 s c m 01...00 – 3 cecha 01...01 – 2 przesunięta 01...10 – 1 01...11 0 10...00 1 znak liczby 10...01 2 0 + 10...10 3 1 – 10...11 4 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
dziękuję Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego