Słowem wstępu
Człowiek, jak natura go stworzyła jest istotą elektryczną. W naszym ciele zachodzi nieskooczenie wiele procesów chemicznych, których skutkiem jest wywoływanie impulsów prądu. W samym mózgu
niezliczona ilość neuronów przesyła impulsy, powodując jakąś reakcję ciała na nie. Dzięki tym właśnie impulsom, człowiek zaczął logicznie myśleć, stał się kreatywny. Istota ludzka, jako że jest niesamowicie leniwa, zaczęła wymyślać na początku istnienia różnorodne narzędzia, które pomagały mu w czynnościach potrzebnych do przetrwania. Z biegiem czasu jednak spodobało nam się wygodne życie oraz staliśmy się bardziej skrupulatni w tym, co robiliśmy. W ten sposób powstało pierwsze koło, matematyka, systemy miar i wag itd. Idąc dalej drogą rozwoju, ludzie zainteresowali się zjawiskiem prądu. Był to niesamowity okres, który był rewolucją w świecie teleinformatyki. Odkryto wiele bardzo ciekawych zjawisk związanych z prądem elektrycznym, których opisanie zajęło wiele lat rozmaitym uczonym. Jak już powiedziałem... Człowiek jest leniwy. I nic tego nie zmieni. Jedna osoba zapragnęła przesyład informacje za pomocą kabla miedzianego zamiast doręczyciela. W taki sposób naukowcy stanęli przed problemem przesyłania informacji kablem. Jednym z pierwszych śmiałków był Samuel Morse, który to stworzył sposób reprezentacji alfabetu i cyfr za pomocą impulsów elektrycznych. Impulsy te były krótsze, bądź dłuższe. Od tego zależało czy znakiem jest kreska, czy też kropka.
Drodzy czytelnicy. Poznaliście sposób porozumiewania się ludzi za pomocą maszyn. Jednak informatyka, którą będziemy się tutaj zajmowad wymaga zupełnie innej metody porozumiewania. Komputery są maszynami logicznymi. Przyjmują, więc tylko dwa stany logiczne:
1(jedynka) – prąd płynie
O(zero) – brak prądu
Skoro przyjmuje tylko dwa stany słuszne byłoby opracowanie systemu, który tak jak ludzki ukochany dziesiętny, będzie zrozumiały dla maszyn. Przyjęto, że podstawą tego systemu liczbowego będzie liczba 2, ze względu na występowanie dwóch stanów logicznych. W dalszej części publikacji przyswoimy wiedzę, która zostanie w naszej głowy już do kooca naszego życia oraz jeden dzieo dłużej.
Mianowicie poznamy:
Wiemy już, czego się dowiemy czytając opracowanie, wiemy już również, że komputer przyjmuje dwa stany logiczne i za ich pomocą porozumiewają” się jego części składowe zwane układami cyfrowymi. Czas uchylić rąbka tajemnicy... Zapraszam do poznania wiedzy.
Mówiąc o systemach liczbowych mamy na myśli ogól zasad
umożliwiających przedstawienie liczb za pomocą umownych
znaków. Znaki, którymi zapisuje się liczby nazywamy
cyframi.
Wyróżniamy dwa rodzaje systemów liczbowych:
System liczbowy – niepozycyjny
Znaczenie cyfry jest niezależne od miejsca położenia w zapisie liczby
Przykład:
I=1 V=5 X = 10 L = 50 C = 100 D = 500 M = 1000
MCMXCVIII = 1998D
Liczba:
XD – oznacza liczbę w zapisie dziesiętnym
System liczbowy – pozycyjny
Znaczenie cyfry jest zależne od miejsca (pozycji), które ona zajmuje w liczbie. W pozycyjnym systemie liczbowym, (n+m) – pozycyjną nieujemną liczbę:
A = an-1 ∙ pn-1 + ... + a1 ∙ p1 + a0 ∙ p0 + a-1 ∙ p-1 + ... + a-m ∙ p-m
Zapisuje się w postaci:
(A)p = (an-1...a1,a0,a-1...a-m) = (CA, UA)p = (CA)p, (UA)p
Objaśnienia:
Najbardziej popularne systemy liczbowe
System dziesiętny (decymalny)
p = 10 ai = { 0,1,2,3,4,5,6,7,8,9 }
425D = 4 ∙ 100 + 2 ∙ 10 + 5 ∙ 1
W systemie dziesiętnym każda cyfra zajmuje określoną pozycję. Pozycję liczy się standardowo od zera (najmłodszej), tak więc:
Widzimy więc, że cyfra na danej pozycji jest mnożona przez odpowiednią potęgę liczby 10, przy czym wykładnik tej potęgi zależy od położenia (pozycji) danej cyfry w liczbie. Uwaga! Pozycje cyfr w liczbie numerujemy zawsze od 0 (najmłodsza cyfra).
425D = 4 ∙ 102 + 2 ∙ 101 + 5 ∙ 100
System dwójkowy (binarny)
p=2 ai = { 0,1}
Dla systemu dwójkowego podstawą jest liczba 2 i wagami są odpowiednie potęgi tej liczby. Kolejne pozycje liczby zwane są więc pozycjami: jedynek, dwójek, czwórek, ósemek ... itd.
Zapis: 10100B
10100B = 1 * 24 + 0 * 23 + 1 * 22 + 0 * 21 * 0 * 20 =
= 1 * 16 + 0 * 8 + 1 * 4 + 0 * 2 + 0 * 1 =
= 16 + 4 =
= 20D
Sposób konwersji (przeliczania) liczby binarnej na dziesiętną z początku może się wydad dośd skomplikowany. Jest to na szczęście o wiele prostsze w praktyce niż w teorii. Niektórzy by zapamiętad kolejne potęgi liczby 2, na początku nauki rozrysowują sobie tabelkę:
| 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 |
Analizując dane wprowadzone do tabelki zliczamy wartości pozycji jedynek:
1001001101B = 512+64+8+4+1 = 520 + 73 = 593D
Dokonywanie konwersji z liczby dziesiętnej na binarną
Konwersji liczby dziesiętnej na binarną dokonuje się poprzez dzielenie przez podstawę systemu binarnego – czyli 2. W zależności od wyniku dzielenia przyjmuje się czy cyfra dwójkowa będzie zerem czy jedynką.
Jeśli dzielenie jest całkowite (bez reszty – części ułamkowych) to cyfrą binarną będzie: 0
Jeżeli zaś dzielenie jest z resztą (z miejscami po przecinku) to cyfrą binarną będzie: 1
Przykład: 69D = ?B
69 : 2 = 34,5 || r. 1
34 : 2 = 17 || r. 0
16 : 2 = 8,5 || r. 1
8:2 =4 || r. 0
4:2 =2 || r. 0
2:2 =1 || r. 0
1:2 = 0,5 || r. 1
Wynik zapisujemy czytając liczby od dołu, czyli: 1000101B Można zauważyd, że do dzielenia wybieramy tylko częśd całkowitą liczby, pomijając dosłownie częśd ułamkową. Jest to bardzo ważne, gdyż jeśli zapomnimy o tym – nasze liczenie można rozbid o kant ściany
Ćwiczenia
1. Zbierz daty urodzenia członków rodziny – dokładniej chodzi w dwiczeniu o rok urodzenia. Zadanie polega na wyliczeniu średniej z tych dat. Dodajemy i dzielimy w dziesiętnym, tylko że liczby zapisujemy w systemie binarnym. Nie zwracamy w tym przykładzie uwagi na części ułamkowe.
Przykład: (1990 + 1967 + 1964) : 3 = 1973 || (11111000110 +
11110101111 + 11110101100) : 11 = 11110110101B
2. Przekonwertuj liczby w działaniu: (1001011 – 100010 + 100111) * 111 : 101 na system dziesiętny oraz podaj wynik w systemie decymalnym i binarnym
3. Podaj wartości potęg: 210, 220, 230 oraz nazwij je przedrostkami.
System szesnastkowy (heksadecymalny – hex)
p = 16 ai = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F }
A = 10 B = 11 C = 12 D = 13 E = 14 F = 15
System szesnastkowy jest w dzisiejszej informatyce bardzo
powszechny i stosowany w wielu jej dziedzinach. Podstawą systemu
jest liczba 16, więc musi on posiadad 16 cyfr.
Pierwsze dziesięd to: 0 1 2 3 4 5 6 7 8 9. Natomiast kolejne sześd zmieniło się w znaki alfabetu łacioskiego, gdyż jedna cyfra powinna odpowiadad jednemu symbolowi graficznemu – znakowi. Kolejne sześd: A B C D E F Zatem w systemie heksadecymalnym liczby: 2, 7, 9, 11, 15, 16 będą wyglądad następująco: 2, 7, 9, B, E, F
Konwersja z systemu szesnastkowego do liczby dziesiętnej:
4C2H = 4 * 162 + C * 161 + 2 * 160 =
= 4 * 256 + 12 * 16 + 2 * 1 =
= 1024 + 192 + 2 =
= 1218D
Znając już metody obliczania liczby binarnej na dziesiętną, możemy skonstruowad następną tabelkę z kolejnymi potęgami podstawy systemu – 16. Myślę jednak, drogi czytelniku, że załapałeś już trochę i sam dasz radę coś takiego wykombinowad. Jeśli będziesz miał jakieś problemy zajrzyj troszkę wyżej i przeczytaj jeszcze raz materiał tak by wszystko stało się zrozumiałe.
Konwersja z systemu dziesiętnego do liczby szesnastkowej
Jest to o tyle ciekawa sprawa, że dokonujemy dzielenia liczby dziesiętnej przez podstawę – 16, lecz reszta z dzielenia ma zupełnie inne znaczenie niż w przypadku binarnego systemu.
2009D = ?H
2009 : 16 = 125,5625 || r. 0,5625 * 16 = 9
125 : 16 = 7,8125 || r. 0,8125 * 16 = 13 = D
7 : 16 = ... || r. 7
Wynik odczytujemy również jak w przypadku systemu dwójkowego od dołu: 7D9H W tym przypadku dzielimy całkowitą liczbą przez 16, wydzielając jej częśd ułamkową, którą następnie mnożymy przez 16. Otrzymana liczba jest dokładnie tą, którą chcemy otrzymad. W przypadku gdy dzielna jest mniejsza od 16 nie dokonujemy żadnych obliczeo i przepisujemy jej wartośd bez zmian.
256 : 16 = 16 || r. 0 * 16 = 0
16 : 16 = 1 || r. 0 * 16 = 0
1 : 16 = ... || r. 1
Wynik: 100H
Konwersja systemu szesnastkowego do liczb binarnych
Jest to najprostsza konwersja do wykonania. Jej zasada polega na tym, że bierzemy cyfrę liczby szesnastkowej i przeliczamy ją na 4- bitową liczbę binarną.
9D5F1AH = ?B
9D5F1A = 1001 1110 0101 1111 0001 1010B
9 = 1001
D = 1110
5 = 0101
F = 1111
1 = 0001
A = 1010
Konwersja systemu binarnego na liczbę szesnastkową
By skonwertowad liczbę binarną na hex, należy liczyd od pierwszego bita z prawej strony, co cztery, rozdzielając na 4-bitowe grupy (tetrady).
Przykład:
10010010010010111010110101 B = 10 0100 1001 0010 1110 1011 0101B
Zauważ, że liczba posiada 6 tetrad, natomiast ostatnia liczba od prawej strony posiada tylko dwa bity. W takim przypadku należy dopisad do niej z przodu dwa zerowe bity.
10 → 0010
Więc:
10010010010010111010110101 B = 0010 0100 1001 0010 1110 1011 0101B
2 4 9 2 D B 5
System liczbowy ósemkowy (oktalny)
p=8 a = {0, 1, 2, 3, 4, 5, 6, 7 }
Ósemkowy system liczbowy to pozycyjny system liczbowy o
podstawie równej 8. Nazywamy go również oktalnym – od słowa
octal. Do zapisu liczb używa się w nim ośmiu cyfr: od 0 do 7. Jego
zastosowanie zostało wykorzystane w informatyce na przykład do
zapisu praw dostępu do pliku w systemach z rodziny Linux. Prawa te
mogą przyjąd jako argument oktalną reprezentację żądanych praw
dostępu (chmod 754 plik).
Konwersja systemu oktalnego na dziesiętny
Przyjmijmy sytuację, że musimy przejśd z oktetu na liczbę dziesiętną. Jak to zrobić Nie jest to trudne, gdy znamy już poprzednie metody przechodzenia z różnych systemów liczbowych na dziesiętny.
144O = ?? D
144 = 4 * 80 + 4 * 81 + 1 * 82 = 4 + 32 + 64 = 100D
Konwersja decymalnego systemu liczbowego na ósemkowy
123D = ?? O
123 : 8 = 15 r. 0.375 * 8 = 3
15 : 8 = 1 r. 0.875 * 8 = 7
1:8 =... r. 1
123D = 173O
Konwersja systemu ósemkowego na binarny
Jest to niemalże skopiowana metoda konwersji, jak w przypadku hex→bin. Różnica polega jedynie na długości słowa bitowego. Wcześniej używaliśmy dokładnie 4 bitów do zapisania cyfry, teraz wykorzystamy ich dokładnie 3.
Liczbę 7253O w systemie binarnym zapiszemy jako 111010101011B
7 = 111 2 = 010 5 = 101 3 = 011
Konwersję systemu dwójkowego na ósemkowy przedwiczcie sami, wykorzystując podane informacje. W dwiczeniu chodzi o ruszenie samodzielnie szarymi komórkami.
Zapraszam do wspólnej wędrówki po świecie informatyki dalszymi
publikacjami mojego autorstwa. Tematem kolejnej części serii
publikacji będzie arytmetyka dwójkowa a w niej dodawanie,
odejmowanie, mnożenie oraz zapis liczb ujemnych.
Pozdrawiam event15.