2.Systemy liczb

advertisement
1. Systemy liczb
1.1.
System dziesiętny
Najpopularniejszym systemem liczb jest system dziesiętny, którym posługujemy się na
co dzień.
W systemie dziesiętnym występują cyfry: 0, 1, 2, 3, …, 9.
Podstawą systemu dziesiętnego jest liczba 10, czyli wszystkie liczby są ciągiem cyfr,
które są rozumiane jako mnożnik kolejnych potęg liczby 10:
૜૝૞, ૚૛ = ૜ ∙ 10ଶ + ૝ ∙ 10ଵ + ૞ ∙ 10଴ + ૚ ∙ 10ିଵ + ૛ ∙ 10ିଶ
1.2.
System dwójkowy – binarny
W systemie dwójkowym występują dwie cyfry: 0, 1.
Podstawą systemu jest liczba 2, co oznacza, że kolejne cyfry liczby zapisanej w systemie
dwójkowym oznaczają mnożniki kolejnych potęg liczby 2.
0111(2) = 0·23 + 1·22 + 1·21 +1·20 = 0 + 4 + 2 + 1 = 7(10)
1.3.
System ósemkowy – oktalny
W systemie ósemkowym mamy 8 cyfr: 0, 1, 2,…,7.
Podstawą systemu jest liczba 8.
341(8) = 3·82 + 4·81 +1·80 = 192 + 32 +1 = 225(10)
1.4.
System szesnastkowy – heksagonalny
Cyfry w systemie szesnastkowym:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Podstawą systemu jest liczba 16.
D5(16) = D·161 + 5·160 = 13·16 +5·1 = 213(10)
2. Przeliczanie liczb pomiędzy systemami
2.1.
Zamiana z systemu dziesiętnego na binarny i odwrotnie
Metoda zamiany liczby z systemu dziesiętnego na dwójkowy polega na dzieleniu liczby
przez 2 i zapamiętywanie reszty z tego dzielenia. Następnie dzielimy przez 2 wynik
poprzedniego dzielenia aż do otrzymania liczby 0.
67
33
16
8
4
2
1
0
1
1
0
0
0
0
1
↑
67:2 = 33 reszty 1
33:2 = 16 reszty 1
16:2 = 8 reszty 0
8:2 = 4 reszty 0
4:2 = 2 reszty 0
2:2 = 1 reszty 0
1:2 = 0 reszty 1
1000011(2) = 1·26 +0·25 + 0·24 + 0·23 + 0·22 + 1·21 + 1·20 = 64 + 2 + 1 = 67(10)
2.2.
Zamiana z systemu dziesiętnego na ósemkowy i
odwrotnie
43
5
0
3
5
↑
43:8=5 reszty 3
5:8 = 0 reszty 5
53(8) = 5·81 + 3·80 = 40 +3 =43(10)
2.3.
Zamiana z systemu dziesiętnego na szesnastkowy i
odwrotnie
437
27
1
0
5
11
1
↑
437:16 = 27 reszty 5
27:16 = 1 reszty 11 (B)
1:16 = 0 reszty 1
11(10) = B
1B5(16) = 1·162 + B·161 + 5·160 = 256 + 11·16 + 5 = 261 + 176 = 437(10)
3. Dodawanie i odejmowanie liczb binarnych
W dodawaniu liczb binarnych należy pamiętać o kilku zasadach:
0+0=0
0+1=1
1+0=1
1 + 1 = 0 a 1 zapisujemy w pamięci ( przenosimy o jedną pozycję w lewo)
1 + 1 + 1 = 1 i 1 zapisujemy w pamięci (przenosimy o jedna pozycję w lewo)
5 + 6 = 11
5(10) = 000101(2)
6(10) = 000110(2)
1
000101
+ 000110
001011
Odejmowanie liczb w systemie binarnym to nic innego jak dodawanie liczb ujemnych.
4. Liczby ujemne w systemie dwójkowym
Istnieje wiele umownych sposobów zapisywania liczb ujemnych w systemie dwójkowym.
Najprostszym z nich jest zapisanie bitu znaku na najbardziej znaczącej pozycji (pierwszej od
lewej strony). Przyjmujemy, że liczba ujemna ma bit znaku 1, natomiast liczba dodatnia i zero
ma bit znaku równy 0.
1=0001, -1=1001.
Ważnym jest, aby system zapisu liczb był ściśle określony, aby wiadomo było, iż liczby
zapisujemy na przykład na czterech bitach, z których pierwszy jest bitem znaku. Nie
określenie dokładnie sposoby zapisu liczb może prowadzić do błędów. Dla przykładu liczba 1 zapisana w systemie dwójkowym na czterech bitach, gdzie pierwszy jest bitem znaku może
być zinterpretowana jako liczba 9.
Taki system jednak nie jest stosowany ze względu na problemy z operacjami arytmetycznymi
(np. dodanie 1 i -1 nie daje 0!)
4.1.
System zapisu U1
W systemie zapisu liczb binarnych U1 kod binarny liczby ujemnej zostaje odwrócony (1
zamieniamy na 0)
6 = 00110
-6 = 11001(U1)
Zasady odejmowania liczb w systemie U1:
• Odejmowanie dwóch liczb ujemnych od siebie realizowane jest przez dodanie ich
do siebie wraz z bitem znaku
• Jeżeli dodawanie prowadzi do przeniesienia jedynki z najbardziej znaczącej
pozycji, to przeniesienie to wykonujemy na pozycje najmniej znaczącą (czyli
dodajemy 1)
• Jeżeli wynik dodawania jest dodatni to wynik jest liczbą binarną
• Jeżeli wynik dodawania jest ujemny, to wykonujemy na nim jeszcze raz zapis U1
(odwracamy bity) pozostawiając bit znaku bez zmian.
9 – 12 = –3
12(10) = 01100
-12(10) = 10011
0
1
1
1001
0011
1100
1
0011
9
-12
Wynik ujemny więc jeszcze raz wykonujemy zapis U1 (odwrócenie bitów
bez zmiany bitu znaku)
-3
9–6=3
9 = 01001
6 = 00110
-6 = 11001(U1)
1
1
1
0
+1
+0
1001
1001
0010
+0
0
0001
0011
9
-6
Mamy przeniesienie jedynki z najbardziej znaczącej pozycji, więc
dodajemy ją do najmniej znaczącej pozycji:
Wynik jest dodatni, więc jest to liczba binarna 00011(2) = 3(10)
4.2.
System zapisu U2
W zapisie liczb binarnych U2 liczby ujemne uzyskujemy z liczb dodatnich poprzez
odwrócenie bitów i dodanie do wyniku liczby 1.
6 = 00110
Negujemy bity: 11001
+ 00001
-6 = 11010(U2)
Zasady odejmowania liczb w systemie U2:
• Odejmowanie dwóch liczb ujemnych od siebie realizowane jest przez dodanie ich
do siebie wraz z bitem znaku
• Jeżeli dodawanie prowadzi do przeniesienia jedynki z najbardziej znaczącej
pozycji, to przeniesienie to zostaje odrzucone
• Jeżeli wynik dodawania jest dodatni to wynik jest liczbą binarną
• Jeżeli wynik dodawania jest ujemny, to wykonujemy na nim jeszcze raz zapis U2
(odwracamy bity) pozostawiając bit znaku bez zmian.
9 – 12 = –3
12(10) = 01100
-12(10) = 10100
0
1
1
1001
0100
1101
1
+0
1
0010
0001
0011
9
-12
Wynik ujemny więc jeszcze raz wykonujemy zapis U2 (odwrócenie bitów
bez zmiany bitu znaku)
Odwracamy bity
Dodajemy 1
-3
9–6=3
9 = 01001
6 = 00110
-6 = 11010(U2)
1
1
0
+1
+0
1001
1010
0011
9
-6
Mamy przeniesienie jedynki z najbardziej znaczącej pozycji, ignorujemy
tą jedynkę
Wynik jest dodatni, więc jest to liczba binarna 00011(2) = 3(10)
Download