Systemy liczenia. System dziesiętny jest systemem pozycyjnym, co oznacza, Ŝe wartość liczby zaleŜy od pozycji na której się ona znajduje np. w liczbie 333 kaŜda cyfra oznacza inną wartość bowiem: 333= 3*100+3*10+3*1 - kaŜdą z cyfr mnoŜymy przez tzw. wagę pozycji, która jest kolejną potęgą liczby 10 będącej podstawą systemu liczenia co moŜemy zapisać jako: 2 1 333(10) =3*10 + 3*10 + 3*10 0 a dowolną liczbę dziesiętną moŜna zapisać jako: L(10) =an*10n + an-1*10n-1 + an-2*10n-2 ...+... a2*102 + 1 0 a1*10 + a0*10 Przy czym współczynniki an mogą mieć wartość 0,1,2,3,4,5,6,7,8,9 Czy moŜna liczyć inaczej ? MoŜna stworzyć dowolny pozycyjny system liczenia o podstawie np. 2, 3, 4, 7, 8, 16. W technice komputerowej praktyczne zastosowanie znalazły systemy: o podstawie 2 - tzw. system binarny (dwójkowy) uŜywany do przechowywania i przetwarzania danych przez układy elektroniczne komputera o podstawie 16 - tzw. system heksadecymalny (szesnastkowy), uŜywany głównie do prezentacji niektórych danych m.in adresów komórek pamięci System binarny. Zgodnie z pokazanym poprzednio na przykładzie systemu dziesiętnego rozwinięciem liczbę w systemie o podstawie 2 moŜemy więc przedstawić jako: n n-1 n-2 2 L(2) =an*2 + an-1*2 + an-2*2 ... + ... a2*2 + 1 0 a1*2 + a0*2 a współczynniki an mogą przybierać tylko dwie wartości: 0 lub 1 Uwaga! Zwróćmy uwagę, Ŝe ilość dostępnych cyfr w systemie jest równa podstawie systemu, a więc w syst. dziesiętnym – 10, w systemie dwójkowym – 2 itd. System szesnastkowy TakŜe analogicznie do systemu dziesiętnego czy binarnego liczbę w systemie szesnastkowym (o podstawie 16) moŜemy przedstawić jako: L(16) =an*16n + an-1*16n-1 + an-2*16n-2 ... + 2 1 0 ... +a2*16 + a1*16 + a0*16 natomiast współczynniki an mogą być liczbami: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 jednak aby zapis liczby był jednoznaczny, na kaŜdej pozycji powinna być umieszczona tylko 1 cyfra – np. pisząc 145 nie moŜemy mieć wątpliwości czy kolejne cyfry tak zapisanej liczby to: 1 4 5 czy 14 5 Cyfry od 10 do 15 zastąpiono w zapisie literami: 10 - A, 11 - B, 12 – C, 13 – D, 14 – E, 15 – F Z systemu do systemu Posługiwanie się róŜnymi systemami liczenia wymaga umiejętności nie tylko przedstawiania liczb w róŜnych systemach ale równieŜ konwersji (zamiany) liczby przedstawionej w jednym systemie na liczbę w innym systemie. Najwygodniej jest to powierzyć komputerowi ale naleŜy poznać zasady takiej zamiany Zamiana liczby dziesiętnej na binarną 69 34 17 8 4 2 1 0 1 0 1 0 0 0 1 Najmłodszy bit Podstawowy sposób polega na kolejnym dzieleniu liczby dziesiętnej przez 2 z resztą i zapisaniu liczby od najstarszego do najmłodszego bitu więc: 69 (10)= 1000101 (2) Najstarszy bit KaŜdą pozycję liczby binarnej nazywamy bitem (binary digit) i jest to najmniejsza jednostka ilości informacji Zamiana liczby binarnej na dziesiętną Przypomnijmy, Ŝe aby obliczyć dziesiętną wartość naszej liczby binarnej mnoŜymy cyfrę stojącą na kaŜdej pozycji przez jej wagę, czyli kolejną potęgę liczby 2 będącej podstawą systemu 6 5 4 3 1000101 (2)=1*2 + 0*2 + +0*2 +0*2 + 2 1 0 1*2 + 0*2 + 1*2 = =64+0+0+0+4+0+1=69 • Algorytm zamiany liczby dziesiętnej na binarną Jak przedstawić liczbę dziesiętną w systemie heksadecymalnym? Nasza liczba dziesiętna 69 to binarnie: 1000101 Algorytm zamiany liczby binarnej na heksadecymalną jest następujący: dzielimy liczbę binarną na tzw. kęsy o długości 4 bity (licząc od ostatniej pozycji) czyli: 100 0101 Dla kaŜdego kęsa znajdujemy wartość dziesiętną i zapisujemy ją w postaci heksadecymalnej binarnie 100 0101 dziesiętnie 4 5 heksadecymalnie 45 tak więc: 45(16)=4*161 + 5*160=64+5=69 Kodowanie informacji Przedstawiając liczbę dziesiętną w systemie binarnym czy teŜ heksadecymalnym musimy pamiętać, Ŝe w dalszym ciągu jest to ta sama liczba lecz przedstawiona za pomocą innego zestawu znaków. MoŜemy więc mówić o kodzie binarnym czy teŜ kodzie heksadecymalnym Zasada tworzenia kodu Zbiór symboli A Zbiór symboli B A2 A1 B2 B1 A3 B3 Kodowanie liczb Liczby binarne 1000101 Liczby dziesiętne 69 Liczby heksadecymalne 45 Jak wprowadzić do komputera informacje tekstowe? Jak juŜ wiemy do przechowywania i przetwarzania danych przez układy elektroniczne komputera uŜywany jest system binarny. NaleŜy więc przedstawić tekst za pomocą liczb czyli jednoznacznie przyporządkować literom i innym znakom alfanumerycznym - liczb (numerów). W ten sposób powstał w 1965 r. kod ASCII (American Standard Code for Information Interchange). Oczywiście kod ten jest jawny i uŜywany przez wszystkich uŜytkowników i twórców oprogramowania. Jest to kod 7 bitowy, a więc moŜemy za jego pomocą przedstawić 27 czyli 128 znaków. W 1981 r. IBM wprowadził rozszerzony do 8 bitów kod, co pozwala na przedstawienie 256 znaków (w tym znaki specjalne, graficzne, matematyczne i diakrytyczne znaki narodowe) Fragment Fragment tabeli tabeli kodu kodu ASCII ASCII Znak Kod dzies. A B C K L ź ¦ + 65 66 67 75 76 171 179 188 Kod binarny Znak Kod dzies. Kod binarny 01000001 01000010 01000011 01001011 01001100 10101011 10110011 10111100 a b c k l ś Ă - 97 98 99 107 108 189 198 196 00110001 00110010 00110011 01101011 01101100 10111101 11000110 11000100 Piszemy w kodzie ASCII A l 65 97 01000001 00110001 binarnie a 108dziesiętnie 01101100 Kod UNICODE 256 znaków alfanumerycznych jakie moŜna zakodować za pomocą rozszerzonego kodu ASCII nie dawało moŜliwości zakodowania znaków diakrytycznych wielu języków np.:japońskiego, arabskiego, hebrajskiego itp. Odpowiedzią jest kod nazywany UNICODE o długości 16 bitów dla kaŜdego znaku, a to daje juŜ moŜliwość zakodowania 216 czyli 65536 znaków Kodowanie w praktyce Jednostka centralna 0110010 Jednostki informacji 1kbit [Kb]=210b=1024 bity 1Mbit[Mb]=1024 Kb=1048576 bity 1 byte=8 bitów 1kB =210bajtów=1024 B 1MB=1024 KB=1048576 B