pd1_h_pirek_030418.pdf

(61 KB) Pobierz
1
Henryk Pirek
nauczyciel informatyki
Gimnazjum nr 5
w Piotrkowie Tryb.
Porównanie dziesiętnego i binarnego systemu liczenia
-
propozycja metodyczna dla nauczycieli matematyki i informatyki
Wstęp
Systemy (układy) liczbowe
są to sposoby zapisywania i nazywania liczb. Rozróżniamy
dwa systemy zapisu:
- niepozycyjny ( addytywny),
- pozycyjny.
W
addytywnych
systemach liczbowych wartość przedstawionej liczby jest sumą wartości
jej znaków cyfrowych. W tych systemach znaczenie cyfry jest niezależne od miejsca
położenia w liczbie. Addytywny system zapisu liczb wykorzystywany jest między innymi
przez system liczbowy: hieroglificzny, rzymski i alfabetyczny.
W
pozycyjnych
systemach liczbowych liczbę przedstawiamy jako ciąg cyfr, a wartość
cyfry zależy od miejsca, czyli pozycji jaką ta cyfra przyjmuje w zapisanej liczbie. Każda
pozycja ma określoną i niezmienną wagę.
Wartość liczby
n
– cyfrowej możemy obliczyć według wzoru:
n
1
i
=
0
c
i
gdzie:
i
p
i
=
c
n
1
p
n
1
+
...
+
c
1
p
1
+
c
0
p
0
,
c
{
0,1,2,...,
p
1
}
, a
p
– jest podstawą systemu liczenia.
2
Zapis taki nazywamy wielomianowym zapisem liczby w pozycyjnym systemie liczbowym
lub pozycyjnym systemem zapisu liczb, a kolejne potęgi podstawy systemu
p
nazywamy
rzędami.
W niniejszej pracy porównam dwa pozycyjne systemy liczbowe: dziesiętny i dwójkowy
(binarny).
System dziesiętny używany jest na co dzień, natomiast system dwójkowy jest
powszechnie stosowany w komputerach dzięki następującym własnościom:
1)cyfry 0 i 1 łatwo jest realizować technicznie przez procesy fizyczne, w których wyróżnia
się tylko dwa stany: jeden z nich reprezentuje 0, drugi 1; np. w komputerze element
półprzewodnikowy może znajdować się w jednym z dwóch stanów – przewodzi prąd
elektryczny (cyfra 1) lub nie przewodzi (cyfra 0). Trudne zaś technicznie jest zbudowanie
układu elektronicznego realizującego dziesięć stanów stabilnych odpowiadających cyfrom
0, 1, ..., 9;
2)algorytmy działań w dwójkowym systemie liczbowym są prostsze niż w innych
systemach liczbowych;
3)cyfry 0 i 1 mogą być interpretowane jako wartości logiczne zdań (dwuwartościowy
rachunek zdań); 1 – zdanie prawdziwe, 0 – zdanie fałszywe. Związek dwójkowego
systemu liczbowego z rachunkiem zdań ma duże znaczenie przy projektowaniu
komputerów. Podczas współpracy z komputerem zachodzi konieczność przechodzenia od
zapisu liczb w systemie dziesiątkowym do zapisu liczby w dwójkowym systemie
liczbowym; po wykonaniu przez maszynę obliczeń, wyniki otrzymuje się z powrotem
w systemie dziesiątkowym. Dla określenia jednostki w dwójkowym systemie liczbowym
używa się często symbolu
L;
nie trzeba wtedy pisać,
że
podstawa systemu wynosi 2.
Zastosowanie dwójkowego systemu liczbowego w maszynach cyfrowych zaproponował
już matematyk niemiecki G. W. Leibniz.
3
I. Postać liczb w systemie dziesiętnym i dwójkowym
System dziesiątkowy i dwójkowy to pozycyjne systemy liczenia. Dlatego liczby
w tych systemach zapisujemy za pomocą wielomianu.
Wartość liczby w systemie dziesiętnym możemy obliczyć według wzoru:
n
1
i
=
0
C
i
10
i
=
C
n
1
10
n
1
+
...
+
C
1
10
1
+
C
0
10
0
gdzie p = 10 i
C
i
{
0,1,2,...,9
}
np.
(
256
)
10
=
2
10
2
+
5
10
1
+
4
10
0
.
Wartość liczby w systemie dwójkowym ( binarnym) obliczamy według wzoru:
n
1
i
=
0
C
gdzie p = 2 i
C
i
{
0,1
}
i
2
i
=
C
n
1
2
n
1
+
...
+
C
1
2
1
+
C
0
2
0
Cyfry dwójkowe nazywamy bitami ( binary digit), gdzie:
C
0
2
0
- nazywamy najmniej znaczącym bitem, czyli najmłodszym,
- nazywamy najbardziej znaczącym bitem, czyli najstarszym.
C
n
1
2
n
1
Każdą liczbę dziesiętną możemy zapisać w systemie dwójkowym i na odwrót.
1. Zamiana liczb dwójkowych na dziesiętne.
Wszelkie wartości i liczby wyobrażamy sobie zazwyczaj jako liczby dziesiętne. Dlatego,
jeżeli zobaczymy liczbę np. 45, wiemy od razu ile to jest. Natomiast nie mówi nam nic
(101101)
2
. Jest to ta sama liczba, tylko inaczej zapisana. Trzeba ją więc „przeliczyć” na
system dziesiętny.
Wystarczy znać wartości pozycyjne każdego miejsca w liczbie
binarnej, czyli po prostu kolejne potęgi podstawy (liczby 2).
Zaczynając od pozycji zerowej (pierwszej od prawej) i przesuwając się w lewo dodajemy
do siebie wartości pozycyjne tych pozycji, na których stoi cyfra 1. Pozycje, na których jest
0, pomijamy.
4
* Przykład:
Mamy liczbę binarną (110011)
2
.
- Pozycja 0 (pierwsza z prawej) zawiera cyfrę 1. Wartość dla tej pozycji - pozycji 0
wynosi 2
0
= 1. Mamy więc na razie 1.
- Na pozycji 1 (druga od prawej) też jest jedynka, a wartość pozycyjna wynosi tu 2.
Dodajemy 1 + 2 = 3.
- Pozycje 2 i 3 zawierają zera, więc je pomijamy.
- Na pozycji 4 stoi cyfra 1. Wartość pozycji 4 wynosi 2
4
= 16. Dodajemy więc tę liczbę
do uprzednio otrzymanego wyniku: 3 + 16 = 19.
- Kolejna pozycja (5) też zawiera jedynkę, a jej wartość pozycyjna wynosi 2
5
= 32.
Dodajemy: 19 + 32 = 51.
Uzyskaliśmy liczbę 51. Tyle właśnie równa jest liczba (110011)
2
.
2. Zamiana liczb dziesiętnych na dwójkowe.
Przeliczanie liczb dziesiętnych na dwójkowe jest nieco trudniejsze niż w kierunku
odwrotnym. Przedstawię to na przykładzie.
Weźmy liczbę dziesiętną 51. Pierwszym krokiem w zamianie tej liczby na binarną jest
znalezienie pozycji w zapisie liczby binarnej o wartości największej mieszczącej się
poniżej wartości przekształcanej liczby. Tutaj wartością taką jest liczba 32. Wartość
następnej pozycji to 64, a to jest już więcej niż 51. 32 to wartość pozycji 5 liczby binarnej
i będzie to najwyższa pozycja w przekształcanej liczbie. Liczba ta będzie miała 6 cyfr
(przypominam,
że
pozycje liczymy od 0). Jako pierwszą cyfrę zapisujemy 1, gdyż 32
mieści się w liczbie 51. Od 51 odejmujemy teraz wartość zapisanej już liczby, czyli 32.
Otrzymaliśmy 51 – 32 = 19. Tę liczbę musimy zapisać w pozostałych 5 cyfrach liczby
binarnej. Sprawdzamy, czy wartość kolejnej pozycji liczby binarnej mieści się w
otrzymanej reszcie (19). Wartość pozycji 4 wynosi 16. Liczba ta jest mniejsza od 19, więc
zapisujemy kolejną jedynkę. Mamy już 11. Od 19 odejmujemy 16 i otrzymujemy 3.
Sprawdzamy kolejną pozycję liczby binarnej - pozycję 3. Jej wartość wynosi 8. Liczba ta
nie mieści się w otrzymanej reszcie, więc piszemy 0 (mamy 110). Przechodzimy do
5
następnej pozycji - 2. Jej wartość to 4. Nie mieści się w 3. Piszemy 0 – otrzymujemy 1100,
i sprawdzamy następną pozycję - 1. Jej wartość to 2. Mieści się w 3. Piszemy 1, a od 3
odejmujemy 2. Zostało tylko 1. Pozostała nam ostatnia pozycja 0, której wartość
pozycyjna wynosi 1. Do naszej liczby binarnej dopisujemy więc 1 i mamy gotową liczbę
(110011)
2
, która równa jest (51)
10
. Możemy to zapisać następująco:
(
51
)
10
=
1
2
5
+
1
2
4
+
0
2
3
+
0
2
2
+
1
2
1
+
1
2
0
=
(
110011
)
2
51 = 32 + 16 + 0 + 0 + 2 + 1
Liczbę zapisaną w systemie dziesiętnym możemy również zamienić na binarną dzieląc ją
przez 2 i zapisując kolejno otrzymywane reszty (0 lub
1).
Na przykład (51)
10
= 51 : 2 = 25 reszty
1
25 : 2 = 12 reszty
1
12 : 2 = 6 reszty
0
6 : 2 = 3 reszty
0
3 : 2 = 1 reszty
1
1 : 2 = 0 reszty
1
Czytając od dołu otrzymujemy (110011)
2
.
3. Zamiana liczb całkowitych ujemnych na dwójkowe.
W jaki sposób komputer widzi liczby ujemne ?
Jeżeli mamy liczbę np.5 = (101)
2
, to liczbę ujemną otrzymamy po postawieniu kreski,
czyli -5. Można równie dobrze zapisać -101. Komputer niestety nie może tak po prostu
zapisać minusa, gdyż zna tylko dwa znaki: 0 i 1. Dlatego komputery stosują zapis tzw.
uzupełnienia do dwóch.
Zgłoś jeśli naruszono regulamin