wstecz

25.09.2014 by noniwoo

Systemy liczbowe

Wstęp

Często słyszy się o liczbach binarnych, albo o tym że komputery przetwarzają tylko zera i jedynki. Aby zrozumieć jak te rzeczy działają, trzeba zrozumieć ogólną ideę systemów liczbowych, co ten artykuł czyni. Bardziej szczegółowe informacje nt. systemu binarnego są w kolejnych artykułach

Uwaga na wstęp

Gdy mówimy o systemach liczbowych warto na początek ograniczyć się tylko do liczb całkowitych (żadne ułamki, żadne części po przecinku) i nieujemnych (tylko 0 lub większe). Nie oznacza to jednak, że tych liczb nie da się zapisać w różnych systemach liczbowych, a jedynie że my nie będziemy się tym tutaj zajmowali.

Przykładowe liczby

Zacznijmy od napisania przykładowych liczb.

0, 1, 2, 3, 5, 12, 57, 64, 291, 10739362

Liczby te są stworzone z mniejszych klocków, które nazywa się cyframi. Na przykład:

Trochę mało intuicyjne na początku są liczby, które składają się z dokładnie jednej cyfry np.

Cyfry

Skoro wiemy już czym są cyfry, to wypiszmy wszystkie używane przez nas cyfry, dzięki którym możemy zapisać dowolną liczbę:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Zatem wszystkich cyfr jest dziesięć. Przy ich pomocy jesteśmy w stanie zapisać dowolną liczbę, o jakiej pomyślimy.

Mniej cyfr

A co jeśli chcielibyśmy używać mniejszej ilości cyfr? Co jeśli ustalimy, że nie wolno nam używać cyfry 9? Wtedy liczb 9, 19, 29, 39 itd. nie jesteśmy w stanie zapisać. Ale czy na pewno?

Wypiszmy po kolei liczby 0-20 z wszystkimi 10 cyframi, a obok nich liczby z pominięciem tych, które zawierają cyfrę 9.

normalne 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
bez 9 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 17 18 20 21 22

Widzimy, że każdej normalnej liczbie towarzyszy inna liczba z tej wersji liczb bez cyfry 9.

Zapewne w tym momencie wydaje ci się dziwne, czemu robimy coś takiego? Już wyjaśniam.

Otóż im mniej cyfr mamy, tym mniejszą ich ilością musimy się posługiwać. Dla człowieka nie ma to większego znaczenia, ale dla komputera już tak.

Dowolna liczba bez 10 cyfr

A teraz odpowiedzmy na pytanie, które z pozoru wydaje się nie mieć rozwiązania: czy nie używając cyfry 9 możemy zapisać dowolną liczbę?

Jeśli traktujemy liczby jako coś co jest (bo tak nam w szkole mówili), to jest to niemożliwe. Jak w końcu mam zapisać liczbę 19 nie używając cyfry 9?

Jednak jeśli myślimy o liczbach jak o sposobie zapisu ilości czegoś, sprawa wygląda zupełnie inaczej.

Liczby to tylko oznaczenie

Na każdej ręce mamy ileś palców (i nie jest ważne ile).

Jeśli czegoś jest tyle ile palców, to znamy dokładnie ilość tego - mimo że nie użyliśmy nigdzie liczby.

Jeśli czegoś jest tyle ile palców w obu rękach, to też znamy ilość tego, mimo że ciągle nie mówimy o liczbach.

A co jeśli czegoś jest ręka i trochę? Też jesteśmy w stanie powiedzieć ile tego jest np. czegoś jest ręka i kciuk i palec wskazujący.

Wydaje ci się to głupie? To pomyśl jak liczą małe dzieci. One nie używają liczb - one szukają odwzorowania między tym co wiedzą i widzą (ilość palców) a tym co mają policzyć. Dopiero w szkole wpajana jest im wiedza, że ręka i kciuk i palec wskazujący to 7.

Nie jest to może najwygodniejszy sposób liczenia, ale zdecydowanie liczyć się w nim da.

Liczenie bez liczb

Jak zatem można liczyć nie znając liczb? Potrzebujemy jednoznacznego odwzorowania - np. jeden palec to jeden obiekt, który liczymy. Nie użyjemy drugi raz tego samego palca do policzenia dwóch rzeczy, bo ten palec już jest zajęty przy liczeniu pierwszej.

A jak to się ma do naszego szaleństwa w którym jesteśmy na tyle ekscentryczni, że nie używamy cyfry 9?

Wypiszmy jeszcze raz liczby normalne i liczby bez 9.

normalne 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
bez 9 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 17 18 20 21 22

Ponieważ wypisujemy liczby po kolei, nie zdarzy się nam że użyjemy jakiejś liczby dwa razy. I to zarówno w przypadku liczb normalnych, jak i liczb bez cyfry 9. Zatem jakaś normalna liczba A będzie odpowiadała dokładnie jednej liczbie bez 9 B, a ta liczba B będzie odpowiadała dokładnie tej samej normalnej liczbie A. Stworzyliśmy jednoznaczne odwzorowanie!

Zatem te dwie liczby, mimo tego że są różnie zapisane, mówią o dokładnie tej samej ilości czegoś.

Na przykład normalna liczba 10, oraz "liczba bez 9" 11 odpowiadają tej samej ilości, co palce obu rąk.

Systemy liczbowe

Teraz, normalne liczby, to liczby zapisane w systemie dziesiętnym - bo używają dziesięciu cyfr (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), a liczby "bez 9" to liczby w systemie dziewiątkowym - bo używają dziewięciu cyfr (0, 1, 2, 3, 4, 5, 6, 7, 8).

Jeszcze mniej cyfr

Zanim pójdziemy na całego, zobaczmy jak to wygląda jeśli nie używamy cyfr 9 ani 8. Ponownie wypiszmy kolejne liczby 0-20 w systemie dziesiętnym (normalnym) oraz w systemie ósemkowym (nie używamy cyfr 9 ani 8).

dziesiętny 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
ósemkowy 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24

I znowu udało nam się stworzyć jednoznaczne odwzorowanie liczby z systemu dziesiętnego na system ósemkowy, oraz w drugą stronę (z systemu ósemkowego na system dziesiętny).

Tak więc mamy:

Liczby binarne

A co to ma wspólnego z komputerami? Komputery poszły na całego w uproszczaniu. Nie używają 8 cyfr, ani nawet 5 cyfr. One używają tylko dwóch cyfr - 0 i 1. Zatem komputery używają systemu dwójkowego, który bardzo często jest też nazywany binarnym.

- Zaraz, zaraz - zapewne powiesz. Skoro nie możemy używać prawie żadnych cyfr, to liczby w systemie binarnym muszą być strasznie długie. - A ja jedynie przytaknę głową. Dlatego tym razem wypiszemy wszystko w pionie.

dziesiętnybinarny
00
11
210
311
4100
5101
6110
7111
81000
91001
101010
111011
121100
131101
141110
151111
1610000
1710001
1810010
1910011
2010100

I znowu udało nam się stworzyć jednoznaczne odwzorowanie liczb dziesiętnych na binarne i liczb binarnych na dziesiętne.

- No dobrze - powiesz. Ale przecież to jest strasznie niewygodne skoro muszę za każdym razem wypisać liczby w systemie dziesiętnym i liczby w systemie binarnym żeby wiedzieć, która liczba której odpowiada. Co jeśli chcę przedstawić liczbę dziesiętną 500 w systemie binarnym? Albo liczbę 1110000101011101 w systemie dziesiętnym?

Odpowiedź znajdziesz czytając artykuł nt. liczb binarnych.