210 likes | 535 Views
Systemy Liczbowe (technika cyfrowa). System liczbowy - to inaczej zbiór reguł do jednolitego definiowania, zapisywania i nazywania liczb.
E N D
Systemy Liczbowe (technika cyfrowa) System liczbowy - to inaczej zbiór reguł do jednolitego definiowania, zapisywania i nazywania liczb. Do zapisywania liczb zawsze używa się pewnego skończonego zbioru znaków - zwanych cyframi (np. arabskimi lub rzymskimi), które jednak można zestawiać ze sobą na różne sposoby (w różnej kolejności) otrzymując odpowiednią liczbę kombinacji. • Pozycyjne systemy liczbowe: • jedynkowy system liczbowy • dwójkowy system liczbowy • siódemkowy system liczbowy • ósemkowy system liczbowy • dziesiętny system liczbowy • dwunastkowy system liczbowy • szesnastkowy system liczbowy • sześćdziesiątkowy system liczbowy
Złożone systemy liczbowe można już podzielić na: • addytywne - posiadają osobne symbole dla pierwszych kilku liczb, a następnie posiadają kolejne symbole dla ich wielokrotności. W systemach tych liczby tworzy się przez "dodawanie" kolejnych symboli i stąd ich nazwa (np. liczby rzymskie "X"=10,"V"=5,"I"=1 to XVI = 10+5+1 = 16). Najstarszym tego rodzaju systemem liczbowym był stosowany w Mezopotamii sześćdziesiątkowy system liczbowy, w którym podstawowymi wielokrotnościami były 12 i 60. • pozycyjne - które posiadają pojedyncze symbole tylko dla kilku pierwszych liczb. Cyfry te są kolejno umieszczane w ściśle określonych pozycjach i oznaczają mnożnik potęgi podstawy systemu (najwyższej liczby reprezentowanej pojedynczą cyfrą plus jeden na cyfrę zero).np. liczba 6003 w dziesiętnym systemie liczbowym, w którym podstawą pozycji jest właśnie 10 odczytuje się jako: • 6×103+0×102+0×101+3×100 = 6×1000+0×100+0×10+3×1 = 6003
W praktyce najczęściej stosuje się różne systemy liczbowe w Informatyce. • Z racji reprezentacji liczb w pamięci komputerów za pomocą bitów, najbardziej naturalnym systemem jest dwójkowy system liczbowy. • W okresie pionierskich czasów komputeryzacji ważną rolę odgrywał system ósemkowy, który spotyka się niekiedy do dziś. • Natomiast naturalny dla ludzi system dziesiętny został wprowadzony dopiero wraz z powstaniem języków programowania wyższego poziomu, których celem było jak największe ułatwienie w korzystaniu z komputerów. • Z racji budowy komputerów, w której np. adresy są potęgą liczby 2 oraz dzielą się przez 8 i 16, często używany jest szesnastkowy system liczbowy. Sprawdza się on szczególnie przy zapisie dużych liczb takich jak adresy pamięci, zakresy parametrów itp. Dla przykładu: • 216 = 6553610 = 1000016 • 232 = 429496729610 = 10000000016 • 1000016 i 10000000016 są znacznie łatwiejsze do zapamiętania. • System szesnastkowy spotykany jest też na stronach WWW (HTML), gdzie w ten sposób oznacza się kolory poszczególnych elementów strony.
Binarny (dwójkowy) system liczbowy to pozycyjny system liczbowy, w którym podstawą pozycji są kolejne potęgi liczby 2. Do zapisu liczb potrzebne są więc tylko dwa znaki: 0 i 1. Powszechnie używany w informatyce. Jak w każdym pozycyjnym systemie liczbowym, liczby zapisuje się tu jako ciąg cyfr, z których każda jest mnożnikiem kolejnej potęgi liczby stanowiącej podstawę systemu np. liczba zapisana w dziesiętnym systemie liczbowym jako 10, w systemie dwójkowym przybiera postać 1010, gdyż: • 1x23 + 0x22 + 1x21 + 0x20 = 8+2 = 10. • Liczby w systemach niedziesiętnych oznacza się czasami indeksem dolnym zapisanym w systemie dziesiętnym, a oznaczającym podstawę pozycji danego systemu. W celu podkreślenia, że liczba jest dziesiętna można również napisać obok niej indeks, np. • 101012 = 2110 • W systemie dwójkowym można przedstawiać również liczby rzeczywiste. • Dla przykładu ułamki dziesiętne dają się zapisać jako: • 0,1510 = 0,00(1001)2 • 0,2810 = 0,(01000111101011100001)2
Obliczanie wartości dziesiętnej liczby zapisanej w systemie dwójkowym 43210 111102 = 11110 = 1x24 + 1x23 + 1x22 + 1x21 + 0x20 = = 1 x 16 + 1 x 8 + 1 x 4 + 1 x 2 + 0 x 1 = 16 + 8 + 4 + 2 = 30 Jedynka podobnie jak w systemie dziesiętnym ma różne wartości w zależności od swojej pozycji: na końcu oznacza 1, na drugiej pozycji od końca 2, na trzeciej 4, na czwartej 8, itd. Ponieważ 0 x 2n=0, oraz 1 x 2n = 2n aby obliczyć wartość liczby zapisanej dwójkowo, wystarczy zsumować potęgi dwójki odpowiadające cyfrom 1 w zapisie.
Obliczanie wartości binarnej liczby zapisanej w systemie dziesiętnym Zamiana 3010 na liczbę w systemie dwójkowym: 30 ÷ 2 = 15 reszta 015 ÷ 2 = 7 reszta 1 7 ÷ 2 = 3 reszta 1 3 ÷ 2 = 1 reszta 1 1 ÷ 2 = 0 reszta 1 Aby obliczyć wartość dwójkową liczby przepisujemy od końca reszty, które nam wyszły. 3010 = 111102
127 ÷ 2 = 63 reszta 1 19 ÷ 2 = 9 reszta 1 63 ÷ 2 = 31 reszta 1 9 ÷ 2 = 4 reszta 1 31 ÷ 2 = 15 reszta 1 4 ÷ 2 = 2 reszta 0 15 ÷ 2 = 7 reszta 1 2 ÷ 2 = 1 reszta 0 7 ÷ 2 = 3 reszta 1 1 ÷ 2 = 0 reszta 1 3 ÷ 2 = 1 reszta 1 1 ÷ 2 = 0 reszta 1 12710 = (1111111)2 1910 = (10011)2
Działania arytmetyczne Dodawanie w systemie dwójkowym jest prostą operacją. Odejmowanie w systemie dwójkowym.
Kod Binarny Bit to za mało, aby efektywnie kodować informację. Łączymy bity w grupy. Grupę taką traktujemy jak jeden symbol złożony. Poniższa tabelka przedstawia wszystkie symbole 1, 2, 3 i 4 bitowe: Jeśli słowo binarne złożone jest z jednego bitu, to można z niego zbudować tylko dwa symbole 0 i 1 (różowy). Dwa bity dają nam już cztery różne symbole (zielony): 00, 01, 10 i 11. Dalej trzy bity pozwalają utworzyć 8 różnych symboli (niebieski), a 4 bity 16 symboli. Zauważ, iż zwiększenie długości słowa bitowego o jeden bit podwaja liczbę możliwych do utworzenia symboli.
Dla dowolnej skończonej ilości informacji zawsze można dobrać słówka binarne o takiej ilości bitów, aby utworzyć z nich pożądaną liczbę symboli. W ten sposób powstaje kod binarny. Teraz wystarczy otrzymanym symbolom binarnym nadać znaczenia i już możemy ich używać w ten sam sposób jak języka. n bitów => 2n różnych symboli binarnych. Pytanie: Ile trzeba bitów aby uzyskać X różnych symboli binarnych ? Dobrze co najmniej [log2(n - 1) + 1] bitów
Binarny kod znakowy Znak Kod Znak Kod Znak Kod Znak Kod a 00000 h 00111 o 01110 v 10101 b 00001 i 01000 p 01111 w 10110 c 00010 j 01001 q 10000 x 10111 w a g o n d 00011 k 01010 r 10001 y 11000 10110 00000 00110 01110 01101 e 00100 l 01011 s 10010 z 11001 f 00101 m 01100 t 10011 g 00110 n 01101 u 10100 1011000000001100111001101
Binarny kod znakowy Znak Kod Znak Kod Znak Kod Znak Kod a 00000 h 00111 o 01110 v 10101 b 00001 i 01000 p 01111 w 10110 c 00010 j 01001 q 10000 x 10111 d 00011 k 01010 r 10001 y 11000 e 00100 l 01011 s 10010 z 11001 f 00101 m 01100 t 10011 g 00110 n 01101 u 10100 10011 01110 01010 11000 01110 t o k y o A teraz w drugą stronę, co to będzie ? 1001101110010101100001110
Wartość liczby stałoprzecinkowej jest określana tak jak w pozycyjnym systemie liczbowym. Wagi bitów części całkowitej mają wartości (kolejno, od najbardziej znaczącego bitu): 2k−1 ...20, natomiast wagi bitów części ułamkowej mają wartości: 2−1 ...2− n. Dokładność reprezentacji wynosi 2−n, czyli jest równa wadze najmniej znaczącego bitu części ułamkowej. • Na przykład jeśli na część całkowitą zostaną przeznaczone 4 bity (k=4), natomiast na część ułamkową 2 bity (n=2), wówczas: • wartość maksymalna: • 1111,112 = 23 + 22 + 21 + 20 + 2-1 + 2-2 = 15,7510 • wartość minimalna: • 0000,012 = 2-2 = 0,2510 • przykładowa liczba: • 1011,102 = 23 + 21 + 20 + 2-1 = 11,510
Kod BCD BCDBinary-Coded Decimal = dziesiętny zakodowany dwójkowo – stosowany w elektronice i informatyce sposób zapisu liczb; polegający na zakodowaniu kolejnych cyfr dziesiętnych liczby dwójkowo przy użyciu czterech bitów. Taki zapis pozwala na łatwą konwersję liczby do i z systemu dziesiętnego, jest jednak nadmiarowy (wykorzystuje tylko 10 czterobitowych układów z 16 możliwych). Kod BCD jest obecnie stosowany głównie w urządzeniach elektronicznych z wyświetlaczem cyfrowym (np. w kalkulatorach, miernikach cyfrowych) i w zastosowaniach finansowych informatyki (ujednoznacznia zapis części ułamkowych kwot i ułatwia dziesiętne zaokrąglanie). Czasami poszczególne cyfry są kodowane w nieco inny sposób, stąd kilka wariantów BCD (dla uściślenia wersja podstawowa zwana jest też BCD 8421 lub NBCD):
127 w podstawowym wariancie BCD: 0001 0010 0111