O systemach liczbowych 1. Systemy liczbowe Literatura:Turski,Propedeutyka...;Skomorowski,... 1.1. Dwójkowy system pozycyjny W dziesiętnym systemie pozycyjnym ciąg cyfr 321.23 oznacza liczbę 3 10 2 +2 10 1 +1 10 0 +2 10 1 +2 10 2 Jeśliprzez boznaczymypodstawęsystemuliczbowego,acyfryprzez d i tokażdą liczbę N,którazawiera ncyfrwczęścicałkowitejimcyfrwczęściułamkowej możemy zapisać w postaci lubwpostaci: N = n 1 i= m d i b i N = d n 1 d n 2...d 0.d 1 d 2...d m. Kropka oddziela część całkowitą i ułamkową. Wmaszynachcyfrowychużywasięukładówopodstawie b = 2. yframisą tutaj0i1. Liczby należące do różnych systemów zliczania zapisuje się często w nawiasach zindeksem b,np. (10101.0101) 2 Wsystemiedziesiętnym b = 10. yframisą0,1,...9. Wczęstoużywanych systemachósemkowym(b = 8)iszesnastkowym(b = 16)cyframisą0,1,...7oraz 0,1,...,9,a,b,c,d,e,fodpowiednio.Przykłady: (123.45) 8 = 1 8 2 +2 8 1 +3 8 0 +4 8 1 +5 8 2 = 84.125. (c3.af) 16 = 12 16 1 +3 16 0 +10 16 1 +15 16 2 = 196.5625 by dokonać zamiany liczby dziesiętnej na liczbę o podstawie b należy ją najpierw podzielić na część całkowitą i ułamkową i dokonać zamiany poszczególnych części. Zamianę części całkowitej wykonujemy dzieląc ją kolejno przez podstawę systemu beta i zbierając kolejne reszty z dzielenia w porządku ź prawa na lewo". Zamiany ułamka właściwego dokonujemy mnożąc go przez podstawę b i biorąc z wyniku część całkowitą. Następnie, po odrzuceniu części całkowitej proces powtarzamy(mnożenie, zapamiętanie części całkowitej wyniku, odrzucenie jej), aż do chwili gdy w wyniku dostaniemy jedynkę lub gdy uzyskamy wymaganą dokładność. Przykład. Zamienimy 35 na liczbę dwójkową. 35/2 = 17r1,17/2 = 8r1,8/2 = 4r0,4/2 = 2r0,2/2 = 1r0,1/2 = 0r1. Mamy więc: (35) 10 = (100011) 2. Przykład. Zamienimy 0.90625 na ułamek dwójkowy. 0.90625 2 = 1.8125 1 0.81250 2 = 1.6250 1 1
0.65000 2 = 1.2500 1 0.35000 2 = 0.5000 0 0.50000 2 = 1.0000 1 Wynik (0.90625) 10 = (0.11101) 2 Przykład.Zamienimyliczbę (321.123) 10 naliczbęósemkową.ponieważ (321) 10 = (501) 8, (0.123) 10 = (0.144) 8, to (321.123) 10 = (501.144) 8. Zauważmy, że skończoność rozwinięcia dziesiętnego nie pociąga skończoności np.rozwinięciadwójkowego.przykład: 7/20 = (010110100...) 2. Liczby dwójkowe łatwo jest zamieniać na liczby ósemkowe(i szesnastkowe). W tymcelunależyliczbępodzielićnagrupytrzy(cztero)bitowewlewoiwprawo od kropki dziesiętnej i zastąpić otrzymane grupy cyframi dziesiętnymi(szesnastkowymi). Przykład. (100100111100111.1010101) 2 = (100100111100111.1010101) 2 = (44747.521) 8 = (100100111100111.1010101) 16 = (49e7.55) 16 1.2. Kody uzupełnieniowe Uzupełnień używa się w układach cyfrowych do przedstawiania liczb ujemnych. Upraszcza to operację odejmowania. W każdym systemie zliczania o bazie b mamy dwa sposoby uzupełniania. 1. uzupełnianiedo (b 1) 2. uzupełnianie do b 1Uzupełnieniedo b 1.Uzupełnienie n-cyfrowejliczby Nopodstawie bdo (b 1)jestzdefiniowanejako (b n 1) N. Wprzypadkuliczbdziesiętnych (b 1) = 9,adladwójkowych1. Przykład.Uzupełnieniemliczby (53412) 10 do9jest (b n 1) N = (10 5 1) 53412 = 46587. Przykład.Uzupełnieniemdo1liczby (1010101) 2 jest (b n 1) N = (2 7 ) 10 1 (1010101) 2 = (128 1 85) 10 = (42) 10 = (101010) 2. Uzupełnienie liczby do 1 w systemie dwójkowym dostaje się przez odjęcie każdej jej cyfry od 1. Liczbę otrzymaną w ten sposób można też otrzymać przez zanegowaniewszystkichcyfrliczby( 0 = 1, 1 = 0). 2
Przykład.Uzupełnieniemdo1liczby (11001110101) 2 jest (110001010) 2. 2 Uzupełnienie do b. Drugim rodzajem uzupełnienia n-cyfrowej liczby N jest uzupełnienie do b. Jest ono zdefiniowane jako Możnatotezzapisaćwpostaci b n N b n N = [(b n 1) N]+1 Możnajewięcotrzymaćprzezdodanie1douzupełnienialiczbydo (b 1). Uzupełnienie liczby dwójkowej można otrzymać następująco: idąc od lewej strony liczby pozostawiamy wszystkie zera i pierwszą jedynkę bez zmiany i negujemy następne cyfry. Przykład. Wliczbie (100011010101) 2 pozostawiamy1000bezzmianinegujemy 11010101.Otrzymamyuzupełnienieliczbyrówne (100000101010) 2. 3Odeljmowaniewsystemieopodstawieb.OdejmowanieM N.Jeśliliczbysą bez znaku odejmowanie możemy wykonać następująco: 1. Do odjemnej M dodajemy uzupełnienie do b odjemnika N M+(b n N) = M N+b n. 2. Jeśli M Ntowostatnimwyrażeniupomijamy b n,otrzymującwwyniku M N. 3. Jeśli M < Ntowyrażeniez1)możnazapisaćwpostaci M+(b n N) = b n (N M).Jesttouzupełnieniedobróżnicy(N M).iorącuzupełnieniedobimnożąc je przez-1 otrzymamy ( 1){b n [b n (N M)]} = (N M) = M N. Zadanie 1. Odejmowanie 1 1 Odjąć,pokazanąmetodą,liczby M = (1999) 10 i (1948) 10. Zadanie 2. Odejmowanie 2 1 Odjąć M = 1999iN=1999. Zadanie 3. Odejmowanie 3 1 Odjąć M = (1948) 10 i N = (1999) 10. Zadanie 4. Odejmowanie 4 1 W powyższych zadaniach zamienić liczby dziesiętne na dwójkowe i wykonać następnie ich odejmowanie metodą uzupełnień. 1.3. Dwójkowe liczby ze znakiem Znak liczby dwójkowej można reprezentować pisząc 0(plus, +) lub 1(minus,-) na początku liczby. n-bitowa liczba dwójkowa ze znakiem może być wobec tego przedstawionazapomocą n+1bitów. Liczby dwójkowe ze znakiem dają się więc przedstawić następująco 1. znak-moduł(lub znak-moduł prosty) 2. znak-uzupełnienie do 1(lub znak-moduł odwrotny) 3
3. znak-uzupełnienie do 2(lub kod uzupełnieniowy) Zadanie 5. Reprezentacje liczbowe 1 Wypisać wszystkie liczby 4-bitowe ze znakiem w reprezentacjach znak-moduł, znak-uzupełnienie do 1, znak-uzupełnienie do 2. Zaletą zapisu znak-uzupełnienie do 2 jest to, że zero ma jednego reprezentanta. W kodowaniu znak-moduł lub znak-uzupełnienie do 1, zero ma podwójną reprezentację. Zadanie 6. Zero 1 Wypisz reprezentantów zera dla kodów znak-moduł, znak-uzupełnienie do 1 i znak-uzupełnienie do 2. Jeśli przy dodawaniu n-bitowych liczb(dodatnich lub ujemnych) wynik jest liczbą(n + 1)-bitową to nazywamy to przepełnieniem(overflow) lub nadmiarem. 2. Sprzęt liczący 2.1. Tranzystor Podstawowymi elementami współczesnych komputerów są tranzystory. Pierwszy tranzystor zbudowali John ardeen i William Shapley w 1949 roku. Obecnie używane tranzystory różnią się od tych pierwszych pod wieloma względami. Są bardzo małe. Na jednym milimetrze kwadratowym powierzchni można zmieścić kilkaset tysięcy tranzystorów typu MOSFET(Metal Oxide Semiconductor Field Effect Tranzistor). Tranzystor taki zbudowany jest z materiałów półprzewodnikowych napylonych na specjalnej płytce. Tranzystor oznacza się często tak jak to pokazuje poniższy rysunek. Strzałki wskazują kierunek prądu. Jeśli napięcie na bazie żośnie"to sygnał z tranzystora jest większy, jeśli maleje- mniejszy. Ta prosta zależność między sygnałami pozwala na budowę bardziej złożonych układów logicznych, z których składa się komputer. aza Kolektor Emiter Najprostsze układy elektroniczne noszą nazwę bramek logicznych. Jedną z nich jest bramka ND. Dodaje ona logicznie dwie cyfry binarne: zera lub jedynki. Jej schematyczną budowę i wyniki działania pokazuje następny rysunek. ND 0 0 0 0 1 0 1 0 0 1 1 1 "zasilanie" Inną, bardzo prostą bramką logiczną jest NOT- urządzenie negujące. rak sygnału na wejściu (baza tranzystora) powoduje pojawienie się sygnały w, natomiast jego obecność na powoduje, że prąd ze źródła zasilania płynie bezpośrednio do - jest sygnał wyjściowy(patrz rysunek). 4
NOT W 0 1 1 0 "zasilanie" Wpodobnysposóbbudujesięinnebramkilogiczne,np.OR,NOR,XORitp. OR 0 0 0 0 1 1 1 0 1 1 1 1 "zasilanie" ramki logiczne odpowiednio połączone tworzą bardziej skomplikowane i użyteczne układy logiczne. Przykładem może służyć tzw. przełącznik flip flop, przerzutnik. Jest to element, z którego budowane są pamięci komputerów. Jego schemat przedstawia następny rysunek. Użyta została tutaj bramka NOR. Zadanie 7. Schemat NOR 1 Narysuj schemat bramki NOR używając symbolu tranzystora. 2.2. Sumator Prostym układem elektronicznym realizującym dodawanie jest tak zwany sumator. Jego schemat można przedstawić następująco. Z 2 Z 1 Przezwejścia,iZ 1 doukładudocierająsygnałyelektryczne impulsy,które przekształcanesąwimpulsynawyjściachiz 2.Wtabelipodsumowanowyniki jegopracy(1-impuls,0-brakimpulsu). 5
Z 1 Z 2 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1 1 1 Jeśli a, b i z są jednobitowymi liczbami dwójkowymi to doprowadzając do wejść,iz 1 impulsyodpowiadającetymliczbom,nawyjściuotrzymamyliczbędwójkową c = a+b+z (10) 2 z gdzie z = { 0, gdy a+b+z < (10)2 1 w przeciwnym razie. Widzimywięc,żesumatordodajeliczbya,b,zmodulo2.Wynikpodajenawyjście,anawyjście Z 2 podajeprzeniesienie"wlewo".jeśli a+b+z 2to z = 1w przeciwnymrazie z = 0. Odpowiednio połączone sumatory jednopozycyjne tworzą tzw. sumator wielopozycyjny"bez przeniesieniałub ź przeniesieniem"(patrz rysunek). Sumatory tego typu mogą wykonywać operacje dodawania liczb n-bitowych. Jeśli np. na wejście sumatora podane będą odpowiednio zakodowane ułamki właściwe to na jego wyjściu pojawi się ich zakodowana suma. Rysunki przedstawiają sumator wielopozycyjny bez przeniesienia oraz sumator wielopozycyjny z przeniesieniem } 2.3. rytmometr W celu wykonania innych działań niż dodawanie używa się wyspecjalizowanych układów logicznych. Składają się one na tzw. arytmometr maszyny liczącej. Prócz układów liczących komputery posiadają w arytmometrze inne układy, tzw. układy pamiętające rejestry. Rejestry wraz z arytmometrem tworzą tzw. akumulator Dowolne ciągi operacji arytmetycznych takich jak +,-,*,/ mogą być realizowane w akumulatorze procesora. Innym ważnym elementem komputera jest pamięć, gdzie przechowuje się dane. iągi sygnałów(0, 1) pamiętane są w ciągach komórek pamięci. Sygnały te są ciągle odświeżane. Można je pobierać i zapisywać, a następnie przekształcać w akumulatorze, realizując w ten sposób obliczenia. 6