Zastosowanie systemów liczbowych w informacji cyfrowej

11

Click here to load reader

Transcript of Zastosowanie systemów liczbowych w informacji cyfrowej

Page 1: Zastosowanie systemów liczbowych w informacji cyfrowej

1

Moduł 2

Zastosowanie systemów liczbowych w informacji cyfrowej

1. Pozycyjne systemy liczbowe 2. Zasady zapisu liczb w pozycyjnych systemach liczbowych 3. Podstawowe działania na liczbach binarnych 4. Liczby binarne stało i zmiennoprzecinkowe 5. Zastosowania praktyczne systemów liczbowych w systemach informa-

tycznych

Page 2: Zastosowanie systemów liczbowych w informacji cyfrowej

2

Systemem liczbowym nazywamy sposób zapisywania liczb oraz zbiór reguł umoż-

liwiających wykonywanie działań na tych liczbach. Dla każdego systemu liczbowego ist-nieje zbiór znaków, za pomocą których tworzy się liczby. Znaki te zwane cyframi można zestawiać ze sobą na różne sposoby otrzymując nieskończoną liczbę kombinacji. W in-formatyce powszechnie stosowane są systemy liczbowe które bazują na pozycyjny spo-sobie zapisu liczb.

1. Pozycyjne systemy liczbowe System pozycyjny to metoda zapisywania liczb w taki sposób, że w zależności od

pozycji danej cyfry w ciągu, oznacza ona wielokrotność potęgi pewnej liczby uznawanej za podstawę danego systemu liczbowego. Liczby zapisujemy przy pomocy cyfr od strony lewej do prawej. W takim systemie zapisu, każda pozycja ma ściśle określoną i nie-zmienną wagę liczbową, która jest równa podstawie podniesionej do potęgi o wartości numeru pozycji. Wartość liczby w dziesiętnym systemie liczenia uzyskujemy po zsumo-waniu poszczególnych iloczynów wag i cyfr pozycji.

Jeżeli p oznacza podstawę systemu pozycyjnego to dowolną liczbę lp n-cyfrową można wówczas zapisać w następującej postaci:

n1

l p ai * pi

i 0

an-1 an-2 … a2 a1 a0 = an-1 * pn-1 + an-2 * pn-2 +… + a2 * p2 + a1 * p1 + a0 * p0, gdzie: ai to cyfry należące do zbioru {0, 1, …, p–1}, pi - waga, i - numer pozycji cyfry w ciągu liczbowym, n - liczba cyfr w ciągu, * - iloczyn. Do podstawowych cech dowolnego systemu pozycyjnego o podstawie p zaliczamy:

- system pozycyjny charakteryzuje liczba zwana podstawą systemu pozycyjnego, - do zapisu liczby służą cyfry, - cyfr jest zawsze tyle, ile wynosi podstawa systemu: 0, 1, 2, ..., (p-1), - cyfry ustawiamy na kolejnych pozycjach, - pozycje numerujemy od 0 poczynając od strony prawej zapisu, - każda pozycja posiada swoją wagę, - waga jest równa podstawie systemu podniesionej do potęgi o wartości numeru

pozycji, - cyfry określają ile razy waga danej pozycji uczestniczy w wartości liczby, - wartość liczby obliczamy sumując iloczyny cyfr przez wagi ich pozycji.

Do najbardziej popularnych i stosowanych w informatyce pozycyjnych systemów liczbowych zaliczamy:

- system dziesiętny/decymalny, - system dwójkowy/binarny, - system szesnastkowy/heksadecymalny, - system ósemkowy/oktalny.

Liczby w poszczególnych systemach zaznaczane są za pomocą indeksu dolnego w postaci liczby podstawy lub pierwszej litery nazwy angielskiej.

2. Zasady zapisu liczb w pozycyjnych systemach liczbowych

2.1 System dziesiętny/decymalny W życiu codziennym posługujemy się systemem dziesiętnym. Podstawą pozycji są

kolejne wielokrotności liczby 10. Do zapisu liczb korzysta się z dziesięciu cyfr, którymi są 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Page 3: Zastosowanie systemów liczbowych w informacji cyfrowej

3

Zapis liczby 345 oznacza, że cyfra 5 znajduje się na pierwszej pozycji, 4 na drugiej,

3 na trzeciej. Pierwsza ma wagę potęgi zerowej postawy 100 czyli 1. Dlatego często na-zywana jednostkami. Druga pozycja ma wagę 101czyli 10 (dziesiątki). Trzecia pozycja ma wagę 102czyli 100 (setki). Dlatego:

345 = 3*102+4*101+5*100=3*100 + 4*10 +5*1 = 300 +40 +5

2.2 System dwójkowy/binarny Cyfrowe urządzenia elektroniczne wykorzystują dwójkowy pozycyjny system licz-

bowy, gdzie podstawą jest liczba 2, a liczby zapisuje się za pomocą dwóch cyfr arabskich: 0 lub 1. Zapis liczby dwójkowej jest dłuższy niż dziesiętnej, jednak stosowanie tylko dwóch cyfr ułatwia budowanie układów półprzewodnikowych, gdzie w uproszczeniu 1 oznacza przepływ prądu a 0 brak przepływu.

Przykładowy zapis liczby w systemie dwójkowym wygląda następująco: 1001(2). Zaczynając czytać od strony prawej taki zapis interpretujemy wagę każdej pozycji jako liczbę 2 podnoszoną do kolejnej potęgi.

Rysunek 2.1 Waga pozycji w systemie dwójkowym.

1001(2)

1 0 0 1

23 22

21 20

Źródło własne

Kluczowe dla umiejętności posługiwania się tym systemem jest zapamiętanie ko-lejnych potęg liczby 2. W tabeli 2.1 przedstawiono pomocne zestawienie wag systemu binarnego.

Tabela 2.1 Wagi systemu dwójkowego

210 29 28 27 26 25 24 23 22 21 20

1024 512 256 128 64 32 16 8 4 2 1

Źródło własne Aby dokonać konwersji liczby dwójkowej na postać dziesiętną, należy każdą cyfrę

mnożyć przez wagę otrzymaną z podstawy podniesionej do potęgi równej pozycji po-czynając od prawej strony. Po przemnożeniu cyfr przez wagi należy je zsumować. Otrzymana liczba dziesiętna jest odpowiednikiem liczby binarnej. Na przykładzie poni-żej liczba zapisana w systemie dwójkowym jako 1001(2) odpowiada 21(10)w systemie dziesiętnym. Przykład 1: 1001(2)= 1*20+0*21+0*22+1*23 = 1+8 =9(10)

Aby dokonać zamiany liczby dziesiętnej na postać binarną, należy wykonać cy-kliczne dzielenie przez 2 z resztą w postaci liczby całkowitej 1 lub 0. Wynik z pierwszego dzielenia ponownie jest dzielony przez 2, i tak aż do uzyskania 0. Liczba

Page 4: Zastosowanie systemów liczbowych w informacji cyfrowej

4

binarna powstaje na bazie reszt zapisanych w odwrotnej kolejności.

Tabela 2.2 Przykład zamiany liczby dziesiętnej na postać binarną. Działanie Wynik Reszta

9:2 4 1

4:2 2 0

2:2 1 0

1:2 0 1

Źródło własne Łatwo możemy dopatrzeć się zależności, że jedna pozycja zapisu liczby binarnej

przyjmująca zapis 1 lub 0 oznacza 1 bit informacji.

2.3 System szesnastkowy/heksadecymalny. Podstawę systemu heksadecymalnego stanowi 16 cyfr. Pierwsze 10 to arabskie cy-

fry: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, pozostałe 6 to pierwsze litery alfabetu łacińskiego: A, B, C, D, E, F oznaczające kolejno dziesiętne: 10, 11, 12, 13, 14, 15.

Przykładem zapisu liczby w systemie szesnastkowym jest: F15(16). Chcąc dokonać konwersji liczby szesnastkowej na postać dziesiętną należy każdą cyfrę przemnożyć przez wagę otrzymaną z podstawy systemu podniesionej do potęgi równej pozycji za-czynając od prawej strony. Po przemnożeniu cyfr przez wagi wykonujemy sumowanie. Otrzymana liczba dziesiętna jest odpowiednikiem liczby szesnastkowej. Liczba zapisana w systemie szesnastkowym jako F15(16) odpowiada 1221(10)w systemie dziesiętnym.

Przykład 2:

F15(16) = 5*160+ 1*161+15*162 =5 + 16 + 3840 = 3861(10)

Widać na tym przykładzie wyraźnie, że ręczna konwersja liczb z systemu szesnast-kowego może być skomplikowana. Dlatego też w konwersjach długich liczb można uży-wać aplikacji systemowej kalkulator w widoku profesjonalnym lub programisty (w za-leżności od wersji systemu Windows).

Page 5: Zastosowanie systemów liczbowych w informacji cyfrowej

5

Rysunek 2.2 Kalkulator w widoku programisty dla Windows 7.

Źródło własne

Aby dokonać zamiany liczby dziesiętnej na postać szesnastkową, należy wykonać cykliczne dzielenie przez 16 z resztą w postaci liczby całkowitej od 0 do 15. Wynik uzy-skany z pierwszego dzielenia ponownie jest dzielony przez 16, i tak aż do uzyskania 0. Liczba szesnastkowa powstaje na bazie reszt zapisanych w odwrotnej kolejności. War-tości powyżej 9 koduje się za pomocą odpowiednich cyfr-liter. Przykład takiego działa-nia przedstawia tabela 2.3.

Tabela2.3 Przykład zamiany liczby dziesiętnej na postać szesnastkową. Działanie Wynik Reszta

3861:16 241 5

241:16 15 1

15:16 0 15(F)

Źródło własne Konwersję liczby binarnej na postać szesnastkową należy rozpocząć od pogrupo-

wania ciągu po cztery cyfry. Pomocna będzie zawartość tabeli 2.4 Grupowanie rozpo-czynamy od prawej strony, aż do uzyskania końca liczby. Jeżeli ostatnie cyfry w pogru-powanej liczbie mają mniej niż cztery znaki, należy uzupełnić puste pozycje zerami. Konwersja z liczby szesnastkowej na binarną jest jeszcze prostsza. Wystarczy na pod-stawie tabeli 2.4 cyfry z systemu szesnastkowego zamienić na czterocyfrowe ciągi bi-narne i połączyć je w jeden zapis. Wynik konwersji należy zapisywać od strony lewej a nie prawej.

Page 6: Zastosowanie systemów liczbowych w informacji cyfrowej

6

Tabela 2.4 Porównanie zapisu cyfr systemów: szesnastkowego i binarnego. Cyfra szesnastkowa Cyfra dwójkowa Cyfra szesnastkowa Cyfra dwójkowa

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

Źródło własne

Przykład konwersji liczby szesnastkowej na binarną: F15(16) =1111 0001 0101(2)

Przykład konwersji liczby binarnej na szesnastkową: 1000111010100(2) = 0001 0001 1101 0100 =11D4(16)

2.4 System ósemkowy/oktalny. System ósemkowy jest pozycyjnym system liczbowym, w którym podstawę

stanowi 8 a do zapisu używa się kolejnych cyfr arabskich: 0, 1, 2, 3, 4, 5, 6, 7. Przykładem zapisu liczb w systemie ósemkowym jest 107(8). Konwersję liczb

ósemkowych na postać dziesiętną i odwrotnie wykonuje się analogicznie jak w przykładach poświęconych systemom binarnemu i szesnastkowemu. Konwersję zapisu ósemkowego na dwójkowy i odwrotnie wykonuje się analogicznie jak w przypadku systemu szesnastkowego, wykorzystując zapisy z tabeli 2.5.

Tabela 2.5 Porównanie zapisu cyfr systemów: oktalnego i binarnego. Cyfra oktalna Cyfra binarna

0 000

1 001

2 010

3 011

4 100

5 101

6 110

7 111

Źródło własne

Systemy pozycyjne nie są osiągnięciem naszych czasów. Na przykład, zanim sys-tem dziesiętny stał się systemem powszechnym, różne cywilizacje posługiwały się in-

Page 7: Zastosowanie systemów liczbowych w informacji cyfrowej

7

nymi systemami. Na przykład system dwójkowy spotykano u niektórych plemion Au- stralii i Polinezji. Natomiast Majowie w I w. p.n.e. używali układu dwudziestkowego. Ba-bilończycy posługiwali się pozycyjnym sześćdziesiętnym systemem liczbowym. Podzieli-li godzinę na 60 minut, a minutę na 60 sekund. Inne pozostałości niektórych systemów, stosowanych w różnych epokach spotykamy w podziale roku na 12 miesięcy lub posłu-giwaniu się jednostką miary – tuzin.

3. Podstawowe działania na liczbach binarnych.

3.1 Dodawanie liczb binarnych. Dodawanie liczb binarnych opiera się na tabliczce dodawania, w której reprezen-

towane są cztery sumy cząstkowe pokazane w tabeli 2.6.

Tabela 2.6 sumy cząstkowe liczb binarnych 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0

i 1 do przeniesienia Źródło własne

Zasady podstawowej arytmetyki określają wyniki sumowania w trzech pierwszych wierszach. W czwartym, wynikiem jest liczba 2, która w systemie binarnym zapisywana jest jako 10, w związku z tym 0 pozostaje w kolumnie, natomiast 1 przenoszona jest do następnej kolumny.

Przykład 3:

1 0 0(2) + 1 0 1(2) = 1 0 0 1(2)

3.2 Odejmowanie liczb binarnych. Odejmowanie liczb binarnych opiera się na tabliczce odejmowania, w której repre-

zentowane są cztery różnice cząstkowe pokazane w tabeli 2.7.

Tabela 2.7 Różnice cząstkowe liczb binarnych.

0 – 0 = 0 1 – 0 = 1 1 – 1 = 0 0 – 1 = 1 i 1 do pożyczenia z następ-nej kolumny

Źródło własne

Page 8: Zastosowanie systemów liczbowych w informacji cyfrowej

8

Ostatnia różnica 0 – 1 daje jedynkę oraz wymusza pożyczkę z następnej kolumny. Przykład 4:

1 0 0 1(2)

- 1 0 1(2) = 1 0 0(2)

3.2 Mnożenie liczb binarnych. Mnożenie liczb binarnych opiera się na tabliczce mnożenia, w której reprezento-

wane są cztery iloczyny cząstkowe pokazane w tabeli 2.8.

Tabela 2.8 Iloczyny cząstkowe liczb binarnych. 0 * 0 = 0 1 * 0 = 0 1 * 1 = 1 0 * 1 = 0

Źródło własne

Mnożną wymnaża się przez wszystkie kolejne cyfry mnożnika analogicznie do mnożenia sposobem pisemnym, a uzyskane wyniki wprowadza się, począwszy od aktu-alnie używanej cyfry mnożnika w wierszach. Powstałe wiersze sumujemy zgodnie z za-sadami dodawania liczb binarnych.

Przykład 5:

1 0 1 0(2)

× 0 1 1 0(2)

0 0 0 0

1 0 1 0

1 0 1 0

+ 0 0 0 0

1 1 1 1 0 0(2)

3.2 Zapis ujemnych liczb binarnych. Stosując system binarny w informatyce (w systemach komputerowych) nie mamy

możliwości stosowania znaku (-), który pozwoliłby określić liczbę ujemną tak, jak to ma miejsce w przypadku systemu dziesiętnego. Mamy do dyspozycji tylko bity 0 i 1. Jedną z najpopularniejszych metod zapisu liczb ujemnych jest metoda uzupełnień do 2 (U2). Istotą tej metody jest to, ze znak jest oznaczany przez cyfrę binarną, stanowiącą inte-gralną część liczby,, co pozwala na wykonywanie obliczeń arytmetycznych.

Aby uzyskać zapis binarny dziesiętnej liczby ujemnej, na początku obliczamy jej postać binarną z wartości bezwzględnej. Powstałą liczbę binarną należy uzupełnić ze-rami do ilości cyfr będących krotnością dwójki. Następnie należy zamienić wszystkie cyfry w liczbie binarnej na przeciwne, czyli jedynki na zera i odwrotnie. A na koniec do powstałej liczby dodajemy binarną jedynkę, a wynik jest ujemną liczbą binarną.

Page 9: Zastosowanie systemów liczbowych w informacji cyfrowej

9

Przykład 6: 1. konwersja 5(10)=101(2) 2. uzupełnienie 0101(2) 3. zamiana 1010(2)

4. dodanie jedynki:

1 0 1 0(2)

+ 0 0 0 1(2)

= 1 0 1 1(U2)

Sprawdzenie: 1*(-23)+0*22+1*21+1*20= -8+2+1=-8+3=-5 4. Liczby binarne stało i zmiennoprzecinkowe.

Podobnie jak w systemie dziesiętnym liczby binarne również mogą być zapisane w postaci ułamkowej. Zapis binarnych liczb pozycyjnych z przecinkiem może przyjąć po-stać stało lub zmiennoprzecinkową.

Liczby stałoprzecinkowe umożliwiają zapis liczb w postaci ułamkowej, gdzie pozy-cja przecinka ustalana jest arbitralnie w zależności od wymaganej dokładności. Binarną liczbę stałoprzecinkową można potraktować jako złożenie dwóch części, liczby całkowi-tej oraz ułamkowej rozdzielonych przecinkami: 1011, 11(2)

Wartości wag części ułamkowej przyjmują postać ułamków, gdzie dokładność określona jest przez wagę ostatniej cyfry.

W porównaniu do liczb stałoprzecinkowych, liczby zmiennoprzecinkowe umożli-wiają obsługę większego zakresu liczb kosztem wolniejszego przetwarzania i mniejszej dokładności. Termin „zmiennoprzecinkowe” oznacza, że nie istnieje stała liczba cyfr przed i po przecinku. Liczba zmiennoprzecinkowa składa się z dwóch części: liczby sta- łoprzecinkowej — mantysy (m) oraz podstawy (b) podniesionej do potęgi, zwanej cechą lub wykładnikiem (e).

Liczba zmiennoprzecinkowa = m * be 5. Zastosowania praktyczne systemów liczbowych w systemach informatycznych.

Powszechnie dwójkowy system liczbowy używany jest w elektronice cyfrowej i in-formatyce, gdzie minimalizacja liczby stanów (do dwóch) pozwala na prostą implemen-tację sprzętową odpowiadającą zazwyczaj stanom wyłączony i włączony. Najbardziej znanym obszarem zastosowań są funktory logiczne nazywane też bramkami logicznymi. Są to elementy konstrukcyjne układów cyfrowych składające się z odpowiednio połą-czonych rezystorów, tranzystorów, kondensatorów i diod półprzewodnikowych.

Podstawowe bramki logiczne AND, OR i NOT odzwierciedlają funkcje logiczne opi-sane przez algebrę Boole’a. Współcześnie fizyczne funktory rzadko budowane są na ba-zie pojedynczych elementów półprzewodnikowych, najczęściej korzysta się z gotowych bramek zawartych w układach scalonych typu TTL (rysunek 2.4). Podstawowe bramki OR i AND (oraz pochodne) mają dwa wejścia i jedno wyjście, natomiast bramka NOT ma jedno wejście i jedno wyjście. Działanie funktorów prezentowane jest za pomocą tablic prawdy, w których opisuje się kolejne kombinacje stanów na wejściach oraz odpowied-nie wartości na wyjściu. Piktogramy najpopularniejszych bramek oraz tablice prawdy prezentuje rysunek 2.3.

Page 10: Zastosowanie systemów liczbowych w informacji cyfrowej

10

Rysunek 23 Tablice prawdy i piktogramy bramek logicznych.

Źródło: http://www.if.p.lodz.pl Rysunek 2.4 Układ TTL 7432 wykorzystujący bramki logiczne

Źródło: http://zto.ita.pwr.wroc.pl

Innym przykładem praktycznego zastosowania systemu binarnego może być pro-

ces wyznaczania adresu sieci lub maski podsieci na podstawie adresu IP w notacji dwój-kowej. Sam adres IPv4 (32 bity) zapisuje się w postaci binarnej lub decymalnej.

Page 11: Zastosowanie systemów liczbowych w informacji cyfrowej

11

Przykład 7: adres IPv4(2) – 11000000. 10101000. 00000001. 00000001 adres IPv4(10) – 192.168.1.1

Przykładem praktycznego zastosowania systemu szesnastkowego jest określanie adresu IPv6 lub adresacja kart sieciowych. Posiadają one 48-bitowy unikatowy adres sprzętowy (MAC) zapisany w postaci np. 00:50:56:C0:FF:08. Ponadto adres IPv6, które-go zapis składa się z 128 bitów zapisywany jest jako ciąg podzielony na 8 16-bitowych bloków. Przedstawia się je jako 4-znakowe liczby szesnastkowe rozdzielone dwukrop-kami.

Przykład 8: adres IPv6(16) - 21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A

Szesnastkowy system liczbowy stosuje się również, w przypadku programowania niskopoziomowego i sterowania innymi elementami sprzętu komputerowego.

Zastosowanie systemu ósemkowego można zobaczyć w uniksowym poleceniu chmod, służącym do zmiany uprawnień dostępu do plików i katalogów.

Bibliografia:

1. Kowalski T., Kwalifikacja E.12 Montaż i eksploatacja komputerów osobistych oraz urządzeń peryferyjnych, Gliwice, Helion 2012

2. Marciniuk T., Pytel K., Osetek S., Przygotowanie stanowiska komputerowego do pracy. Część 1 i 2, Warszawa, WSiP 2013

3. Mueller S., Rozbudowa i naprawa komputerów PC., Gliwice, Helion 2009

4. Wojtuszkiewicz K., Urządzenia techniki komputerowej, Warszawa, PWN 2011

5. Adamczewski P., Słownik informatyczny. Gliwice, Helion 2005

Netografia:

1. http://zto.ita.pwr.wroc.pl - Strona główna Zespołu Teorii i Obwodów, Katedra Systemów Przetwarzania Sygnałów na Wydziale Elektroniki Politechniki Wrocławskiej

2. http://www.if.p.lodz.pl - Strona główna Instytutu Fizyki Politechniki Łódzkiej