Systemy liczbowe w architekturze komputerw materia do wykadu

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 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

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 2

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 +. . . + c 2 * p 2 + c 1 * p 1 + c 0 * p 0 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 3

System dziesiętny Symbol Wartość w systemie Liczba 6 6 *10 0 sześć 65 6 * 10 1 + 5 * 10 0 sześćdziesiąt pięć 243 2 * 10 2 + 4 * 10 1 +3 * 10 0 dwieście czterdzieści trzy Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 4

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 5
![System dwójkowy 5 U[V] 1 2 0, 8 0 0 t Cyframi tego systemu System dwójkowy 5 U[V] 1 2 0, 8 0 0 t Cyframi tego systemu](http://slidetodoc.com/presentation_image_h/7d23770ceb1f5caae6bf1a21e20051e0/image-6.jpg)
System dwójkowy 5 U[V] 1 2 0, 8 0 0 t 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 6

Konwersja (z BIN na DEC) (1101)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 7

Konwersja (z DEC na BIN) DEC BIN : dzielenie przez 2 44 0 22 0 4410 = 1011002 11 1 5 1 2 0 1 1 0 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 8

Konwersja (z DEC na BIN) Część ułamkowa liczby Część całkowita liczby: 61 . 30 1 Kolejne 1 1250 15 0 0 2500 7 1 0 5000 3 1 1 0000 1 1 0 1 wyniki dzielenia przez 2 Część całkowita . 5625 Kolejne wyniki mnożenia przez 2 Reszta 61. 562510 = 111101. 10012 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 9

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 = (B 3 A)16 (11|1011|1110)2 = (0011|1110)2 = (3 BE)16 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 10

Cyfry systemu szesnastkowego Liczby systemu dziesiątkowego Liczby systemu dwójkowego 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 11

Konwersja HEX na DEC (3 BE)16 = 3 * 16 2 + 11 * 16 1 + 14 * 16 0 = 768 + 176 + 14 = (958)10 BIN na HEX 1111000111 B 1 1110 0011 1000. 1110 0011 1 0001 1110 0011 1000 1 E 3 8 1111000111 B = 1 E 38 H Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 12

Konwersja HEX na BIN 0 E 6 C. 7 F 8 H E 6 C. 7 F 8 1110 0110 1100. 0111 1000 0 E 6 C. 7 F 8 H = 111001101100. 01111000 B Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 13

Liczby stałoprzecinkowe cn-1. . . c 0, c-1 c-2. . . c-m = cn-1 pn-1 +. . . + c 0 p 0 + c-1 p-1 + c-2 p-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 -3 432, 321(5) = 4 x 25 + 3 x 5 + 2 x 1 + 3 x 1/5 + 2 x 1/25 + 1 x 1/125 432, 321(5) = 100 + 15 + 2 + 3/5 + 2/25 + 1/125 432, 321(5) = 117 86/125 432, 321(5) = 117, 688 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 14

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 ½ + 0 x 1/4 + 1 x 1/8 + 1 x 1/16 1101, 1011(2) = 8 + 4 + 1/2 + 1/8 + 1/16 1101, 1011(2) = 13 + 10/16 1101, 1011(2) = 13, 625 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 15

Operacje arytmetyczne - dodawanie Tabliczka dodawania binarnego 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1001 9 + 0011 +3 1100 12 1 + 1 = 0 i 1 dalej 0011, 011 3, 375 + 0111, 110 + 7, 750 1011, 001 11, 125 1010 10 + 0110 +6 Przekroczenie górnej granicy liczby - nadmiar (ang. overflow). 10000 16 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 16

Operacje arytmetyczne - odejmowanie Tabliczka odejmowania binarnego 0 - 0 = 0 1 - 0 = 1 1 - 1 = 0 1011 11 1111 15 - 0101 -5 - 0111 -7 0110 6 1000 8 0 - 1 = 1 i pożyczka 0011 3 - 0100 -4 Przekroczenie dolnej granicy liczby - niedomiar (ang. underflow). . 11111 -1 1 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 17

Operacje arytmetyczne - mnożenie Tabliczka mnożenia binarnego 0 x 0 = 0 0011 3 1011 11 x 0101 x 5 x 1101 x 13 1 x 0 = 0 0000 0 x 1 = 0 + 0011 1 x 1 = 1 1011 001111 . . . 1011 + 1011 15 10001111 33 + 11 143 nadmiar (ang. overflow) Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 18

Operacje arytmetyczne - mnożenie 10, 1 2, 5 x 11, 01 x 3, 25 101 125 101 50 + 101 + 75 1000001 1000, 001 8125 8, 125 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 19

Operacje arytmetyczne - dzielenie polega na cyklicznym Podzielimy 1110(2) przez 11(2) (14 : 3). odejmowaniu odpowiednio przesuniętego dzielnika od dzielnej 1 1110 - dzielna 11 - przesunięty dzielnik 0010 - różnica dzielnej i przesuniętego dzielnika Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 20

Operacje arytmetyczne - dzielenie 100 - wynik dzielenia 1110 - dzielna - 11 - dzielnik 0010 - dzielna po odejmowaniu przesuniętego dzielnika - 11 - dzielnika nie można odjąć 0010 - dzielna - 11 - dzielnika nie można odjąć, koniec 0010 - reszta z dzielenia Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 21

Liczby ujemne znak-moduł Znak kodowany jest stanem najstarszego bitu: bit znaku = 0 - liczba dodatnia bit znaku = 1 - liczba ujemna Wartość liczby obliczamy wg następującego wzoru: 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 22

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 23

Liczba w kodzie Z-M 7 6 . . – 127 + 127 100. . . 0 – 0 znak moduł 000. . . 0 + 0 0 1 + – Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 24

Two's Complement Numbering System – U 2 WU 2 = cn-1 x (- pn-1) + cn-2 x pn-2 +. . . + c 1 x p 1 + c 0 x p 0 0101(U 2) = 0 x (- 23) + 1 x 22 + 0 x 21 + 1 x 20 0101(U 2) = 0 x (- 8) + 1 x 4 + 0 x 2 + 1 x 1 0101(U 2) = 0 + 4 + 1 0101(U 2) = 5 1101(U 2) = 1 x (- 23) + 1 x 22 + 0 x 21 + 1 x 20 1101(U 2) = 1 x (- 8) + 1 x 4 + 0 x 2 + 1 x 1 1101(U 2) = (- 8) + 4 + 1 1101(U 2) = - 8 + 5 1101(U 2) = - 3 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 25

Kod U 2 Oblicz wartość przeciwną do liczby 0011(U 2) = 3: NOT 0011 1100 + 0001 Sprawdzenie 1101(U 2) = 1 x (-23) + 1 x 22 + 0 x 21 + 1 x 20 1101(U 2) = 1 x (-8) + 1 x 4 + 0 x 2 + 1 x 1 1101(U 2) = -8 + 4 + 1 1101(U 2) = -3 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 26

Kod U 2 - działania 5 + (-3) 2 -(-3) 0101 0010 + 1101 - 1101 1 0010 1 0101 Wynik 2 Wynik 5 (-2) x 3 11111110 x 00000011 11111110 + 11111110 10 0110 : 0011 - 011 0000 0011 NOT 0010 1101 + 0001 1110 6 = 0110(U 2) -3= 1101(U 2) - zmieniamy na 3 = 0011(U 2) 1011111010 Wynik = -6 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 27

kod BCD - Binary Coded Decimal 2 0010 3 0011 7 0111 9 1001 2379(10) = 0010001101111001(BCD 0110100100110110(BCD) = 0110 1001 0011 01101000100100110110(BCD) = 6 x 104 + 8 x 103 + 9 x 102 + 3 x 101 + 6 x 100 0110100100110110(BCD) = 6 x 10000 + 8 x 1000 + 9 x 100 + 3 x 10 + 6 x 1 0110100100110110(BCD) = 60000 + 8000 + 900 + 30 + 6 0110100100110110(BCD) = 68936 1672(16) = 00010110010(2) = 0001 0110 0111 0010(BCD) = 1672(10 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 28

Kod BCD – korekcja 29 + 19 31 -18 0010 1001 0011 0001 + 0001 1001 - 0001 1000 0100 0010 0001 1001 + 0000 0110 - 0000 0110 0100 1000 0001 0011 Wynik = 48 Wynik = 13 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 29

Kod Gray’a 000 001 010 111 100 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 30

Zapis zmiennoprzecinkowy WFP = m x pw m - mantysa zapisana w systemie o podstawie p p - podstawa danego systemu pozycyjnego w - wykładnik zapisany w systemie o podstawie p. 9, 45 x 1015 = 94, 5 x 1014 = 0, 945 x 1016 Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 31

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/16 m = 3 + 2/4 + 1/16 = 39/16 p = 10(4) = 1 x 41 + 0 x 40 = 1 x 4 + 0 x 1 p = 4 w = 12(4) = 1 x 41 + 2 x 40 = 1 x 4 + 2 x 1 = 4 + 2 w = 6 (3, 21 x 1012)(4) = 39/16 x 46 = 14592 (10) Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 32

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 33

dziękuję Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 34
- Slides: 34