Krótka informacja o systemie dwójkowym
Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków
UTP Bydgoszcz
02a
Sposoby przedstawiania liczb naturalnych
W systemie dziesiętnym używamy dziesięciu cyfr:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a zapis dmdm−1. . . d1d0 oznacza liczbę
dm· 10m+ dm−110m−1+ . . . + d1· 101+ d0· 100=
m
X
i =0
di· 10i.
Przykład. Zapis 2345 oznacza liczbę 2 · 103+ 3 · 102+ 4 · 101+ 5.
W systemie dwójkowym (binarnym) używamy dwóch cyfr (bitów): 0, 1, a zapis bmbm−1. . . b1b0 oznacza liczbę
bm· 2m+ bm−12m−1+ · · · + b1· 21+ b0· 20=
m
X
i =0
bi · 2i.
Przykład. Zapis 1101 w systemie dwójkowym oznacza liczbę 1 · 23+ 1 · 22+ 0 · 21+ 1 · 20, co w systemie dziesiętnym zapisujemy jako 8 + 4 + 1 = 13.
System dwójkowy
Przykład.
Liczby naturalne od 0 do 10 zapisane w systemie dwójkowym mają postać:
0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010.
Fakt.
Liczba x ma w systemie dziesiętnym blog10x c + 1 cyfr.
x ma blog
10x c + 1 cyfr
Uzasadnienie.
Oznaczmy przez n liczbę cyfr w zapisie dziesiętnym liczby x . Na przykład, gdy x = 87, to n = 2; gdy x = 7, to n = 1;
gdy x = 100 lub x = 999, to n = 3; gdy x = 1000 = 103, to n = 4.
Wtedy
10n−1¬ x < 10n. Logarytmując:
log1010n−1¬ log10x < log1010n, czyli
n − 1 ¬ log10x < n, skąd
log10x < n ¬ log10x + 1.
Zatem n = blog10x + 1c = blog10x c + 1.
System dwójkowy
Podobnie dowodzi się:
Fakt.
Liczba x ma w systemie o podstawie (bazie) b cyfr blogbx c + 1.
Wniosek.
Liczba , która ma w systemie dziesiętnym k cyfr, ma około k · log210 ≈ 3.321928 · k bitów w systemie dwójkowym.
Zamiana systemu dziesiętnego na dwójkowy i odwrotnie.
Metoda pierwsza, naturalna, powolna.
Zapisujemy liczbę w postaciPmi =0di· 10i, zamieniamy di oraz 10i na postać dwójkową i wykonujemy działania. Podobnie, mając liczbę w postaciPmi =0bi · 2i, wymnażamy i dodajemy.
Przykład.
23 = 2·10+3 = (10)2·(1010)2+(11)2= (10100)2+(11)2 = (10111)2
Przykład.
(10111)2= 1 · 24+ 0 · 23+ 1 · 22+ 1 · 21+ 1 = 23
Zamiana systemu dziesiętnego na dwójkowy.
Metoda druga. Dzielimy (wielokrotnie) liczbę w zapisie
dziesiętnym przez dwa i zapisujemy reszty w odwrotnej kolejności.
Uzasadnienie. Gdy podzielimy przez dwa liczbę bm. . .b1b0, czyli k = bm· 2m+ · · · + b2· 22+b1· 21+b0,
to otrzymamy
k/2 = bm· 2m−1+ · · · + b2· 21+b1
i resztę z dzielenia równąb0, jest to ostatnia cyfra w zapisie binarnym. Gdy znowu podzielimy przez dwa otrzymamy resztęb1, jest to przedostatnia cyfra w zapisie binarnym ...
Zamiana systemu dziesiętnego na dwójkowy.
Przykład.
k k/2 reszta
23 11 1
11 5 1
5 2 1
2 1 0
1 0 1
23 = (10111)2.
Uwaga. Tę metodę możemy stosować do zamiany z systemu dziesiętnego na system z inną bazą b. Wtedy dzielimy nie przez dwa, ale przez b.
System dwójkowy
Algorytm porównywania liczb w postaci dwójkowej:
Jeśli liczby nie są tej samej długości, to liczba dłuższa jest większą.
Jeśli liczby są tej samej długości, to porównuj bity, kolejno, od lewej do prawej
jeśli bity są takie same, to
sprawdź następny bit po prawej, jeżeli bity są różne, to
zakończ; liczba z 1 jest większa,
jeśli wszystkie bity są takie same, to liczby są równe.
Przykład. 11001111 > 11001101
System dwójkowy
Algorytm zwiększania o jeden:
weź ostatni bit, powtarzaj:
jeśli bit jest zerem, to
zamień go na 1 i zakończ;
jeśli bit to 1, to
zmień go na 0 i weź następny bit po lewej, jeśli nie ma następnego po lewej, to
dostaw 1 na początku liczby i zakończ.
Przykład.
110011 + 1 = 110100 111111 + 1 = 1000000
Dodawanie, odejmowanie, mnożenie w system dwójkowym wykonujemy podobnie jak w systemie dziesiętnym
Przykład.
1101 + 1001 10110
101011
− 1111 11100
1011
· 101 1011 0000 +1011
110111 Obserwacja. Pomnożenie liczby (zapisanej w systemie dwójkowym) przez 2n oznacza dopisanie n zer na końcu.
Dzielenie w system dwójkowym wykonujemy podobnie jak w systemie dziesiętnym
Przykład.
1011 110111 : 101 101
111 101 101 101 0
Ułamki
Ułamki w systemie dziesiętnym zapisujemy jako 0.d1d2. . . dm
(tutaj di są liczbami ze zbioru {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), czyli
d1· 10−1+ d2· 10−2+ · · · + dm· 10−m =
m
X
i =1
di· 10−i.
Podobnie w systemie dwójkowym
(tym razem bi są liczbami ze zbioru {0, 1}),
0.b1b2. . . bm = b1· 2−1+ b2· 2−2+ · · · + bm· 2−m=
m
X
i =1
bi · 2−i.
Przykład.
(0.5)10= (0.1)2, (0.25)10= (0.01)2, (0.125)10= (0.001)2
System szesnastkowy
Tu baza składa się z szesnastu cyfr, zazwyczaj 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C , D, E , F .
Przykład.
(A)16= (10)10, (B1)16= (11 · 16 + 1)10= (177)10, (C 2)16= (12 · 16 + 2)10= (194)10,
(FED)16= (15 · 162+ 14 · 161+ 13)10= (4077)10