wstecz

08.03.2014 by noniwoo

Czytałeś już artykuł nt. systemów liczbowych?

Może warto też zobaczyć jak się uczyć? zanim zaczniesz?

Liczby binarne

Ludzie liczą w systemie dziesiętnym. Komputery natomiast w systemie binarnym. Żeby gładko zrozumieć czym jest system binarny przypomnijmy sobie najpierw czym jest:

System dziesiętny

System dziesiętny to sposób w jaki zapisujemy liczby na co dzień.

Przykładowe liczby to: 0, 1, 2, 3, 15, 27, 371, 45865

Liczby zapisane w systemie dziesiętnym nazywamy liczbami dziesiętnymi, chociaż rzadko to robimy bo dziesiętny jest tutaj systemem domyślnym.

Nazwa systemu dziesiętnego bierze się z tego, że używa on dziesięciu znaków do zapisu dowolnej liczby. Znaki za pomocą których zapisywane są liczby to cyfry.

Cyfry systemu dziesiętnego: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

W szkole podstawowej uczyliśmy się rozpisywania liczb na prostsze składowe (jedności, dziesiątki, setki itd.) np.

254 = 200 + 50 + 4

Jest to ważny krok do zrozumienia jak działają liczby.

Następnie został on rozwinięty do kolejnych operacji. Zamiast liczby bierzemy pojedynczą cyfrę i przemnażamy przez 1, 10, 100, 1000 itp. tak żeby uzyskać odpowiednią liczbę np.

4000 = 4 * 1000
50 = 5 * 10
8 = 8 * 1

a w naszym przykładzie będzie to

254 =
200 + 50 + 4 =
2 * 100 + 5 * 10 + 4 * 1

Pójdźmy jeszcze krok dalej. Widzimy że cyfry są przemnażane przez 100, 10, 1, a to są przecież potęgi liczby 10. Zapiszmy więc wszystko używając tej obserwacji.

254 =
200 + 50 + 4 =
2 * 100 + 5 * 10 + 4 * 1 =
2 * 102 + 5 * 101 + 4 * 100

Ciekawą rzeczą do zauważenia jest tutaj to, że liczba dziesięć występuje przy kolejnych cyfrach i zawsze jest ona podniesiona do innej potęgi.

2 * 102 + 5 * 101 + 4 * 100

Co więcej, widzimy że są to kolejne potęgi od 102 do 100.

Kolejne przykłady

182 = 100 + 80 + 2 =
1 * 100 + 8 * 10 + 2 * 1 =
1 * 102 + 8 * 101 + 2 * 100
86572 = 80000 + 6000 + 500 + 70 + 2 =
8 * 10000 + 6 * 1000 + 5 * 100 + 7 * 10 + 2 * 1 =
8 * 104 + 6 * 103 + 5 * 102 + 7 * 101 + 2 * 100
203 = 200 + 3 =
2 * 100 + 0 * 10 + 3 * 1 =
2 * 102 + 0 * 101 + 3 * 100

Jak widać liczba 10 w ostatecznym rozpisaniu liczby na dość elementarne kawałki pojawia się zawsze w odpowiedniej potędze.

Jeszcze szybka informacja na koniec przypomnienia informacji o liczbach dziesiętnych

10 jest w systemie dziesiętnym tzw. podstawą systemu.

Zauważ, że podstawa systemu

System binarny

System binarny używa jedynie dwóch cyfr. Stąd często system binarny nazywa się też systemem dwójkowym.

Cyfry systemu binarnego: 0, 1

Podstawą systemu binarnego jest 2.

Zauważmy od razu, że największą cyfrą systemu binarnego jest 1 = 2 - 1 = podstawa systemu -1, zupełnie jak w systemie dziesiętnym.

Liczby zapisane w systemie binarnym to liczby binarne bądź liczby dwójkowe.

Przykładowe liczby binarne: 0, 1, 10, 100, 1101

Ponieważ system binarny jest bardzo ważny w informatyce, telekomunikacji i pokrewnych dziedzinach, jego cyfry mają swoją własną nazwę. Cyfry systemu binarnego to bity. Jeśli ktoś więc mówi, że bajt składa się z 8 bitów, znaczy to tyle, że do zapisu wartości jednego bajta potrzeba ośmiu cyfr binarnych. Prędkość 1Mbit/s oznacza zaś 1 milion cyfr binarnych na sekundę.

Zobaczmy jak się mają do siebie liczby w systemie dziesiętnym i binarnym.

system 10 0 1 2 3 4 5 6 7 8
system 2 0 1 10 11 100 101 110 111 1000

Moglibyśmy więc napisać

101 = 5

Po lewej jest liczba w systemie binarnym, a po prawej w dziesiętnym. Jednak sto jeden to nie jest to samo co pięć, gdy myślimy o obu liczbach jako liczbach dziesiętnych. Trzeba więc jakoś zaznaczyć, że wraz ze znakiem = następuje zmiana systemu w którym liczby są zapisane. Możemy to zrobić w następujący sposób:

101 =10 5

Teraz powinno być jasne, że to nie jest zwykłe równa się, a że ma ono coś wspólnego z liczbą 10 - w naszym przypadku zmianę systemu na dziesiętny.

Oczywiście możemy zapisać to w drugą stronę - liczba dziesiętna po lewej a liczba binarna po prawej - jeśli zmienimy przypis na 2

5 =2 101

Wyrażając więc całą powyższą tabelę i używając naszego symbolu możemy zapisać

0 =2 0
1 =2 1
2 =2 10
3 =2 11
4 =2 100
5 =2 101
6 =2 110
7 =2 111
8 =2 1000
9 =2 1001
10 =2 1010
itd.

Teraz jesteśmy gotowi zobaczyć, co nam wyjdzie, jeśli rozpiszemy liczbę binarną na sumę potęg używając systemu dziesiętnego.

110 =
100 + 10 + 0 =10
1 * 22 + 1 * 21 + 0 * 20

Zauważ, że między linią drugą a trzecią zmieniamy system z binarnego na dziesiętny.

Powinieneś teraz przyjrzeć się temu zapisowi i wywnioskować, że

100 =10 1 * 22
oraz
10 =10 1 * 21

i zapytać:

A skąd ja mam wiedzieć do jakiej potęgi podnieść tą dwójkę?

Aby odpowiedzieć na to pytanie wróćmy na chwilę do systemu dziesiętnego i zobaczmy skąd tam biorą się potęgi.

100000 = 105
10000 = 104
1000 = 103
100 = 102
10 = 101
1 = 100

Można próbować ciągle przeliczać kolejne wartości 10*10=100, 100*10=1000 itd. ale jest to nudne, żmudne i niepotrzebne. Chwila myślenia (zarówno teraz jak i w życiu) pozwala nam zauważyć ciekawą zależność i oszczędzić sobie pracy (jeśli nie wymyśliłeś jeszcze, to się zastanów zamiast czytać dalej).

Okazuje się, że potęga przy 10 jest dokładnie taka sama jak ilość zer w liczbie!

No tak, przecież przemnożenie liczby x przez 10 (x*10) to to samo co napisanie x i dopisanie jednego zera na końcu

35 * 10 = 350
123 * 10 = 1230
7583 * 10 = 75830

Można też na to spojrzeć z innej strony (tej dziwnej). Rzućmy jeszcze raz okiem na kolejne potęgi 10.

100000 = 105
10000 = 104
1000 = 103
100 = 102
10 = 101
1 = 100

Co jeśli ponumerowali byśmy kolejne cyfry w liczbie, ale od prawej strony? Zobaczmy dla 1000.

pozycja: 4321
cyfry  : 1000 = 103

Nic ciekawego się nie rzuca w oczy. Zobaczmy jeszcze ze dwa przykłady.

pozycja: 654321
cyfry  : 100000 = 105

pozycja: 987654321
cyfry  : 100000000 = 108

Wygląda na to że istnieje jakaś zależność - potęga przy 10 jest o 1 mniejsza niż pozycja pierwszej cyfry (tej niebędącej zerem). Nie jest to jednak tak ładna zależność jak z zerami. Tam wystarczyło policzyć zera i wychodziło. Chwila! Przecież potęgi przy 10 są od zera. Jeśli więc będziemy numerować pozycje od 0, to wszystko będzie się zgadzać!

Wróćmy więc do systemu binarnego i pytania, które zadałeś - A skąd ja mam wiedzieć do jakiej potęgi podnieść tą dwójkę?

Okazuje się, że w systemie binarnym jest tak samo jak w dziesiętnym, z tym że to 2 jest podnoszona do odpowiedniej potęgi zamiast 10 np.:

1 =10 1 * 20
10 =10 1 * 21
100 =10 1 * 22
1000 =10 1 * 23
10000 =10 1 * 24

Jak widać wyżej, potęga przy 2 jest taka sama jak ilość zer w liczbie (bądź taka sama jak pozycja pierwszej niezerowej cyfry licząc pozycje od zera, od prawej strony).

Binarny na dziesiętny

Rozpisaliśmy wcześniej liczbę binarną do postaci

110 =
100 + 10 + 0 =10
1 * 22 + 1 * 21 + 0 * 20

Zobaczmy, gdzie nas to zaprowadzi jeśli będziemy kontynuować obliczenia.

1 * 22 + 1 * 21 + 0 * 20 =
4      +   2    +   0    = 6

Z obliczeń powyżej wynika, że 110 =10 6, co zgadza się z tabelą wyżej. Tak samo zamienia się inne liczby binarne na system dziesiętny.

1001 =  1000   +   1    =10
        1 * 23 + 1 * 20 =
          8    +   1    = 9
1010 =  1000   +   10   =10
        1 * 23 + 1 * 21 =
        8      +    2   = 10
11 =    10   +   1    =10
      1 * 21 + 1 * 20 =
        2    +   1    = 3

Jeśli czujesz się na siłach, możesz też przeczytać liczby binarne 2 i dowiedzieć się jak się robi zamianę w drugą stronę.