Systemy liczbowe


Za pomocą programu "Systemy liczbowe" zapoznasz się z pozycyjnymi systemami liczenia: szesnastkowym, dziesiątkowym, ósemkowym i dwójkowym.

Zaznacz w programie kropką system dziesiątkowy przycisk10.gif (1165 bytes), wpisz liczbę 2003 i naciśnij Enter lub "Oblicz".

Otrzymałeś zapis tej liczby w czterech różnych postaciach: 7D3, 2003, 3723, 11111010011. Wyjaśnimy każdy z tych zapisów, rozpoczynając od systemu dziesiątkowego, który jest naszym podstawowym systemem liczenia. To, że system jest systemem pozycyjnym oznacza, że pozycja na której stoi cyfra, decyduje o tym, jaką liczbę ona reprezentuje. Cyfra 3 stojąca na ostatniej pozycji liczby 2003, oznacza liczbę jednostek, czyli liczbę potęg 100, w tym przypadku 3.100 = 3. Cyfra 0 stojąca na drugiej pozycji od końca, oznacza liczbę potęg 101, w tym przypadku 0.101 = 0. Cyfra 0 stojąca na trzeciej pozycji od końca, oznacza liczbę potęg 102, w tym przypadku 0.102 = 0. Cyfra 2 stojąca na czwartej pozycji od końca, oznacza liczbę potęg 103, w tym przypadku 2.103 = 2000. Zatem możemy zapisać: 3.100  + 0.101 + 0.102 + 2.103 = 3 + 2000 = 2003. To samo można obliczyć prościej, biorąc cyfry 2, 0, 0, 3 w odwrotnej kolejności: ((2.10+0).10+0).10+3 = 2003.
Analogicznie przedstawia się liczby w każdym systemie pozycyjnym, z tym, że w każdym systemie jest inna podstawa. W systemie szesnastkowym podstawą jest liczba 16, w systemie ósemkowym liczba 8, zaś w systemie dwójkowym liczba 2. Oczywiście, możliwe są systemy o dowolnej podstawie, ale nie będziemy się nimi tutaj zajmować.

W systemie dwójkowym podstawą jest liczba 2 i zawiera on tylko dwie cyfry: 0 i 1. Zatem liczba 11111010011 jest równa (cyfry bierzemy od końca): 1.20+1.21+0.22+0.23+1.24+0.25+1.26+1.27+1.28+ 1.29+1.210 = 1+2+0+0+16+0+64+128+256+512+1024 = 2003.
To samo można obliczyć prościej, bez obliczania potęg o dużych wykładnikach, biorąc cyfry w odwrotnej kolejności: (((((((((1.2+1).2+1).2+1).2+1).2+0).2+1).2+0).2+0).2+1).2+1 = 2003.  W przypadku systemu dwójkowego zamianę taką można wykonać zawsze w pamięci, ponieważ mnożenie przez dwa i dodawanie 0 lub 1 jest bardzo łatwe. W tym przypadku przebiega to następująco:
1.2+1 =>3.2+1 =>7.2+1 =>15.2+1 =>31.2+0 =>62.2+1 =>125.2+0 =>250.2+0 =>500.2+1 =>1001.2+1 =>2003.

Zadanie 1.
Zamień w pamięci liczbę 11111010000 na postać dziesiętną.

W systemie ósemkowym podstawą jest liczba 8 i zawiera on 8 cyfr: 0, 1, 2, 3, 4, 5, 6, 7. Zatem liczba 3723, zawiera 3 potęgi 80,  2 potęgi 81, 7 potęg 82 oraz 3 potęgi 83. Łącznie mamy więc: 3.80 + 2.81 + 7.82 + 3.83  = 3.1 +  2.8 + 7.64 + 3.512  = 3 + 16 + 448 + 1536 = 2003.

Podstawą systemu szesnastkowego jest liczba 16 i posiada on 16 cyfr: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Cyfry od 0 do 9, są to te same cyfry, co w systemie dziesiątkowym. Cyfry A, B, C, D, E, F oznaczają odpowiednio: A - dziesięć, B - jedenaście, C - dwanaście, D - trzynaście, E - czternaście, F - piętnaście.
Zatem liczba 7D3, biorąc cyfry od końca, zawiera: 3 potęgi 160,  D (13) potęg 161 oraz 7 potęg 162. Łącznie mamy więc: 3.160 + 13.161 + 7.162  =  3.1 + 13.16 + 7.256 = 3 + 208 + 1792 = 2003. To samo można wykonać prościej, biorąc cyfry od początku: (7.16+13).16+3 = 2003.

Zadanie 2.
Przedstaw za pomocą programu "Systemy liczbowe" rok swojego urodzenia w systemie dwójkowym, ósemkowym i szesnastkowym, a następnie, wykonując odpowiednie obliczenia, przekształć każdą postać z powrotem do postaci dziesiętnej.


W jaki sposób program "Systemy liczbowe" zamienia liczby z postaci dziesiętnej na postać dwójkową, ósemkową i szesnastkową?

Zamiana na postać dwójkową jest prosta - dzielimy ciągle przez 2  i zapisujemy resztę 0 lub 1:
2003 : 2 = 1001 reszta 1;
1001 : 2 = 500 reszta 1;
500 : 2 = 250 reszta 0;
250 : 2 = 125 reszta 0;
125 : 2 = 62 reszta 1;
62 : 2 = 31 reszta 0;
31 : 2 = 15 reszta 1;
15 : 2 = 7 reszta 1;
7 : 2 = 3 reszta 1;
3 : 2 = 1 reszta 1;
1 : 2 = 0 reszta 1.
Ostatecznie otrzymujemy 11111010011.

Analogicznie wykonywana jest zamiana na postać ósemkową, z tym, że podstawą jest 8, więc dzielimy ciągle przez 8 i zapisujemy reszty. Zrób to sam!

Podobnie zamieniamy liczbę 2003 na postać szesnastkową. Dzielimy 2003 przez 16 i otrzymujemy 125 i resztę 3; zatem ostatnią cyfrą w zapisie szesnastkowym będzie 3. Otrzymaną z dzielenia liczbę 125 znów dzielimy przez 16 i otrzymujemy 7 i resztę 13, a ponieważ 13 oznacza się jako D, zatem D jest drugą cyfrą zapisu szesnastkowego. Liczbę 7 otrzymaną z ostatniego dzielenia znów dzielimy przez 16 i otrzymujemy 0 i resztę 7, więc 7 jest trzecią cyfrą szukanego zapisu. Ostatecznie otrzymujemy 7D3.

Zadanie 3.
Zapisz dzisiejszą datę w postaci dwójkowej i otrzymany wynik sprawdź za pomocą programu.

Zadanie 4.
Pewna liczba składa się z 4 cyfr w zapisie: a) dwójkowym; b) ósemkowym; c) dziesiątkowym; d) szesnastkowym. Jaka najmniejsza, a jaka największa może to być liczba?


Systemy liczenia szesnastkowy i dwójkowy mają duże znaczenie w informatyce. System szesnastkowy z tego powodu, że liczby mają krótszy zapis, natomiast system dwójkowy, ponieważ jest on odzwierciedleniem przepływu prądu: gdy prąd płynie mamy sygnał, któremu przypisujemy 1, gdy prąd nie płynie, brak sygnału i temu stanowi przypisujemy 0.

Istnieją również inne sytuacje, w których zastosowanie innego niż dziesiątkowy systemu liczenia, pozwala łatwiej rozwiązać problem.  Zapoznaj się z jedną z takich sytuacji w lekcji "Gra NIM".


Odpowiedzi

1. 1.2+1 =>3.2+1 =>7.2+1 =>15.2+1 =>31.2+0 =>62.2+1 =>125.2+0 =>250.2+0 =>500.2+0 =>1000.2+0 =>2000.

2. Zakładając, że rok urodzenia to 1988, otrzymujemy postać dwójkową: 11111000100, ósemkową: 3704, szesnastkową: 7C4.
Zamiana z powrotem na system dziesiętny przebiega następująco dla systemu:
dwójkowego:
1.2+1 =>3.2+1 =>7.2+1 =>15.2+1 =>31.2+0 =>62.2+0 =>124.2+0 =>248.2+1 =>497.2+0 =>994.2+0 = 1988;
ósemkowego: ((3.8+7).8+0).8+4 = 1988;
szesnastkowego: (7.16+C).16+4 = (7.16+12).16+4 = 1988.

3. Jeśli dzisiejszym dniem jest 15.01.2004 to zapis dwójkowy ma postać 1111.01.11111010100.

4. W poniższych odpowiedziach indeks dolny przy liczbie oznacza, w jakim systemie jest podana liczba, np. 10002 oznacza, że liczba 1000 jest zapisana w systemie dwójkowym.
a) 10002 = 810 i 11112 = 1510; b) 10008 = 51210 i 77778 = 409510; c) 100010 i 999910; d) 100016 = 409610 i FFFF16 = 6553510.