Mateusz Pańkowski
1
Urządzenia
Techniki
Klasa I TI
1. SYSTEMY LICZBOWE UŻYWANE W TECHNICE KOMPUTEROWEJ
System liczenia
- sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie
operacji arytmetycznych na liczbach. Do zapisu liczb używa się skończonego zbioru znaków, zwanych cyframi.
Rozróżnić można systemy liczbowe
pozycyjne
i
addytywne
.
do systemów pozycyjnych zalicza się m.in.: dziesiętny, dwójkowy, ósemkowy, szesnastkowy.
do systemów addytywnych zalicza się m.in.: rzymski, alfabetyczny, hieroglificzny.
Czym jest liczba ? Jest to po pojęcie abstrakcyjne, najczęściej używane w matematyce.
Pozycyjny system liczbowy
- sposób zapisywania liczb za pomocą skończonego zbioru znaków (cyfry arabskie, litery
alfabetu), w którym wartość liczbowa zależy od jej umiejscowienia (pozycji) względem sąsiednich znaków. W systemie
pozycyjnym charakterystyczna jest liczba zwana
podstawą systemu pozycyjnego
, określająca liczbę używanych cyfr
(znaków).
Wzór ogólny
Zakładamy, że:
p
- podstawa systemu pozycyjnego,
c
n
- cyfra systemu pozycyjnego i
n
- pozycja cyfry
Wtedy wartość reprezentowaną przez symbol liczby zapisujemy jako sumę iloczynów postaci:
c
n
*
p
n
+ . . . +
c
2
*
p
2
+
c
1
*
p
1
+
c
0
*
p
0
Do najpopularniejszych systemów liczbowych należą: dziesiętny (decymalny), dwójkowy (binarny), ósemkowy (oktalny)
i szesnastkowy (heksadecymalny).
System dziesiętny
(
decymalny
) -> DEC
Jest to najczęściej używany system liczbowy przez ludzi. W systemie tym podstawę stanowi liczba 10, a do zapisu liczb
używa się dziesięciu symboli cyfr arabskich {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. Każdemu z tych symboli przyporządkowana jest
pewna wartość. Z tych prostych symboli tworzymy elementy bardziej złożone ustawiając cyfry na tzw. pozycjach,
szeregując je od prawej do lewej. Najbardziej skrajna, prawa pozycja to pozycja jedności, następna to pozycja
dziesiątek, dalej są pozycje setek, tysięcy itd.
Przykład:
pozycja setek pozycja dziesiątek pozycja jedności
579 = 5 * 100 + 7 * 10 + 9 * 1
Liczbę dziesiętną możemy zapisać na trzy sposoby. Pierwszy, najczęściej stosowany w życiu codziennym to np. 149.
Zapisy, które będzie stosować będą następujące: 149
D
lub 149
(10)
.
Mateusz Pańkowski
2
Urządzenia
Techniki
Klasa I TI
System dwójkowy
(
binarny
) -> BIN
System ten jest wykorzystywany przez cyfrowe urządzenia elektroniczne. Podstawą jest liczba 2, natomiast liczby
zapisuje się za pomocą cyfr arabskich {0, 1}. Mimo, że zapis liczby dwójkowej jest dłuższy niż liczby dziesiętnej, to
jednak dzięki niemu nastąpiła rewolucja świata techniki i powstała taka dziedzina jak informatyka. Stosowanie tylko
dwóch cyfr znacznie ułatwiło budowanie układów cyfrowych, w których cyfry te symbolizują np. dwa stany:
1 -
stan wysoki
(np. przepływ prądu, włączony)
0 -
stan niski
(np. brak przypływu prądu, wyłączony)
Liczby w systemie dwójkowym zapisujemy w postaci: 1011 (czyt. jeden zero jeden jeden, nie tysiąc jedenaście!!!)
Jako, że system ten podobnie jak dziesiętny, jest systemem pozycyjnym, to bez problemu można dokonać konwersji
liczb binarnych na dziesiętne i odwrotnie.
Liczby dwójkowe zapisywać będziemy w postaci 10011
B
lub 10011
(2)
.
Przykład zamiany liczby dziesiętnej na binarną (DEC -> BIN):
Dokonaj zamiany liczby dziesiętnej 74
(10)
na binarną (DEC -> BIN).
74
(10)
= X
(2)
74
(10)
=
74 : 2 = 37
r. = 0
= 1001010
(2)
37 : 2 = 18
r. = 1
18 : 2 = 9
r. = 0
9 : 2 = 4
r. = 1
4 : 2 = 2
r. = 0
2 : 2 = 1
r. = 0
1 : 2 = 0
r. = 1
74
(10)
= 1001010
(2)
O co tu chodzi ? Aby dokonać zamiany liczby dziesiętnej na postać binarną, należy po prostu wykonać cykliczne
dzielenie z resztą. Dzielną jest liczba dziesiętna, natomiast dzielnikiem jest podstawa systemu binarnego, czyli 2. Wynik
z pierwszego dzielenia (74 : 2) ponownie dzielony jest przez 2, i tak aż do uzyskania 0. Liczba binarna powstaje poprzez
zapisanie reszt z dzielenia zapisanych w odwrotnej kolejności (od dołu do góry). Skąd reszta ? Jeśli dzielimy liczbę
nieparzystą przez 2, to nie ma możliwości aby dwójka zmieściła się tam pełną ilość razy i zostanie nam reszta 1, np.:
7 : 2 - dwójka w siedmiu zmieści się 3 razy i wtedy zostanie nam 1. W jedynce dwójka się nie zmieści. W ten sposób ta
jedynka staje się resztą z dzielenia.
6 : 2 - dwójka mieści się tu 3 razy i nic nam nie zostaje, czyli reszta to 0.
W momencie gdy dochodzimy do sytuacji, gdy nasza dzielna będzie wynosić 1, to jeszcze nie kończymy i ją również
dzielimy przez dwa. Ale w tym przypadku należy pamiętać,
że wynik tego dzielenia to 0, a jako resztę przepisujemy 1
.
Mateusz Pańkowski
3
Urządzenia
Techniki
Klasa I TI
Przykład zamiany liczby binarnej na dziesiętną (BIN -> DEC):
Dokonaj zamiany liczby binarnej 101011
(2)
na dziesiętną (BIN -> DEC).
101011
(2)
= X
(10)
101011
(2)
= 1*2
0
+ 1*2
1
+ 0*2
2
+ 1*2
3
+ 0*2
4
+ 1*2
5
=
= 1*1 + 1*2 + 0*4 + 1*8 + 0*16 + 1*32 = 1 + 2 + 8 + 32 = 43
(10)
101011
(2)
= 43
(10)
Zamiana jest bardzo prosta. Kolejne cyfry w liczbie binarnej należy ponumerować, zaczynając od pierwszej z prawej
strony (otrzymuje ona numer pozycji 0, następna 1, kolejna 2 itd.). Numeracja pozycji dla powyższego przykładu będzie
wyglądała następująco:
pozycja:
5
4
3
2
1
0
liczba binarna:
1 0 1 0 1 1
(2)
Następnie każdą z cyfr mnoży się przez wagę otrzymaną z podstawy podniesionej do potęgi równej pozycji. Po
przemnożeniu cyfr przez wagi należy je zsumować. Otrzymana liczba powinna odpowiadać liczbie binarnej. Dla
uproszczenia:
1 *
2
0
+ 1 *
2
1
+ …
Aby szybko móc przekształcać liczby binarne na postać dziesiętną warto zapamiętać wartości poszczególnych wag
systemu binarnego. Wygląda to następująco:
2
10
2
9
2
8
2
7
2
6
2
5
2
4
2
3
2
2
2
1
2
0
1024 512
256
128
64
32
16
8
4
2
1
System szesnastkowy
(
heksadecymalny
) -> HEX
System ten wykorzystywany jest najczęściej do uproszczonego zapisu długich liczb binarnych. Podstawę systemu
heksadecymalnego stanowi 16 cyfr. Pierwsze dziesięć cyfr to cyfry arabskie od 0 do 9, a pozostałe sześć, to litery
alfabetu łacińskiego A do F (10 - 15). Liczba w systemie szesnastkowym zapisywana jest przy pomocy liczb ze zbioru {0,
1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} i wygląda następująco: 1A4B
H
lub 1A4B
(16)
.
Przy wykonywaniu konwersji liczb pomiędzy systemami DEC/BIN/HEX najłatwiej posłużyć się tabelką:
dziesiętna
binarna
szesnastkowa
dziesiętna
binarna
szesnastkowa
0
0000
0
8
1000
8
1
0001
1
9
1001
9
2
0010
2
10
1010
A
3
0011
3
11
1011
B
4
0100
4
12
1100
C
5
0101
5
13
1101
D
6
0110
6
14
1110
E
7
0111
7
15
1111
F
TABELA KONWERSJI LICZB
liczba
binarna
waga, czyli podstawa
podniesiona do potęgi
potęga, czyli pozycja, na
której znajduje się cyfra
Mateusz Pańkowski
4
Urządzenia
Techniki
Klasa I TI
Przykład zamiany liczby dziesiętnej na szesnastkową (DEC -> HEX):
Dokonaj zamiany liczby dziesiętnej 1221
(2)
na szesnastkową (DEC -> HEX).
1221
(10)
= X
(16)
1221
(10)
=
1221 : 16 = 76 r. = 5
= 4C5
(16)
76 : 16 = 4 r. = 12 (C)
4 : 16 = 0 r. = 4
1221
(10)
= 4C5
(16)
W tym przypadku zamiany, również dokonujemy dzielenia z resztą. Dzielną jest liczba dziesiętna, dzielnikiem -
podstawa systemu szesnastkowego, czyli 16. Wynik pierwszego dzielenia ponownie dzielimy przez 16, aż do uzyskania
0. Nasza liczba szesnastkowa odpowiadająca dziesiętnej, powstaje poprzez zapisanie reszt w kolejności od dołu do
góry. Jeśli wartość reszty jest większa od 9, to zapisujemy ją przy pomocy litery alfabetu (A, B, C, D, E i F). Aby szybko
obliczyć resztę z dzielenia (np. 1221 : 16) wystarczy pomnożyć część całkowitą (76) wyniku (w 1221 mieście się 76,3125
szesnastek) przez 16. Następnie wynik mnożenia trzeba odjąć od dzielnej (1221 - (76*16)) i otrzymamy resztę 5.
Przykład zamiany liczby szesnastkowej na dziesiętną (HEX -> DEC):
Dokonaj zamiany liczby szesnastkowej 14AC
(16)
na dziesiętną.
14AC
(16)
= X
(10)
14AC
(16)
= C*16
0
+ A*16
1
+ 4*16
2
+ 1*16
3
= 12*1 + 10*16 + 4*256 +
+ 1*4096 = 12 + 160 + 1024 + 4096 = 5292
(10)
14AC
(16)
= 5292
(10)
Zamiany liczby szesnastkowej na dziesiętną dokonujemy analogicznie jak zamianę liczby binarnej na dziesiętną, z tym
że w tym przypadku mnożymy każdą cyfrę (również od prawej strony) przez podstawę (16) podniesioną do potęgi.
Potęga jest równa pozycji, na której znajduje się dana liczba. W naszym przypadku pozycje są następujące:
pozycja:
3
2
1
0
liczba szesnastkowa:
1 4 A C
(16)
Przykład zamiany liczby binarnej na szesnastkową (BIN -> HEX):
Dokonaj zamiany liczby binarnej 1011110101110100000101
(2)
na szesnastkową.
1011110101110100000101
(2)
= X
(16)
Zamianę liczby binarnej na szesnastkową powinniśmy zacząć od pogrupowania jej na części po 4 cyfry. Grupowanie
rozpoczynamy od strony prawej i kontynuujemy do końca liczby. Jeżeli w ostatniej części jest mniej niż 4 cyfry, to
należy uzupełnić ją o zera na pustych pozycjach:
1011110101110100000101 = 10 1111 0101 1101 0000 0101
(2)
=
Mateusz Pańkowski
5
Urządzenia
Techniki
Klasa I TI
= 0010 1111 0101 1101 0000 0101
(2)
Teraz wykorzystamy tabelkę konwersji liczb i wszystkie, czterocyfrowe, pogrupowane znaki zamieniamy na
odpowiadające im cyfry szesnastkowe:
0010
1111
0101
1101
0000
0101
2
F
5
D
0
5
001011110101110100000101
(2)
= 2F5D05
(16)
Tak więc, w bardzo prosty sposób otrzymaliśmy liczbę szesnastkową.
Przykład zamiany liczby szesnastkowej na binarną (HEX -> BIN):
Dokonaj zamiany liczby szesnastkowej A4B9F0
(16)
na binarną.
A4B9F0
(16)
= X
(2)
Konwersja w tą stronę jest jeszcze prostsza. Również i tu wykorzystamy tabelę konwersji liczb. Aby dokonać zamiany,
wystarczy zamiast cyfr heksadecymalnych podstawić odpowiadające im ciągi binarne (po cztery cyfry) i połączyć
później w jedną liczbę. Mamy liczbę A4B9F0
(16)
:
A
4
B
9
F
0
1010
0100
1011
1001
1111
0000
Łączymy czterocyfrowe ciągi binarne w całość i zapisujemy liczbę binarną. Wynik jest następujący:
A4B9F0
(16)
= 101001001011100111110000
(2)
Konwertowanie BIN -> HEX / HEX -> BIN w przedstawiony sposób jest o wiele łatwiejsze, niż mielibyśmy zamieniać
BIN -> DEC -> HEX / HEX -> DEC -> BIN. Nie dość, że obliczenia wykonujemy znacznie szybciej, to przy okazji zmniejsza
się prawdopodobieństwo popełnienia gdzieś błędu w obliczeniach.
System ósemkowy
(
oktalny
) -> OCT
Pozycyjny system liczbowy w którym podstawą jest liczba 8. Liczby zapisuje się przy pomocy kolejnych cyfr arabskich
{0, 1, 2, 3, 4, 5, 6, 7}. Mimo, że system ten jest dużo rzadziej stosowany niż poprzednie systemy liczbowe, to jednak
warto znać. Typowym zastosowaniem systemu ósemkowego w informatyce jest nadawanie uprawnień dostępu do
plików w systemie Linux przy pomocy polecenia chmod.
Konwersja liczb ósemkowych na postać dziesiętną i odwrotnie, jest wykonywana analogicznie jak konwersja w
systemach binarnych i heksadecymalnych.
Mateusz Pańkowski
6
Urządzenia
Techniki
Klasa I TI
ĆWICZENIA
1) Dokonaj konwersji liczb dziesiętnych na binarne.
a) 389
(10)
b) 693
(10)
c) 1732
(10)
d) 2214
(10)
2) Dokonaj konwersji liczb binarnych na dziesiętne.
a) 110101
(2)
b) 1110111100
(2)
c) 11010010011001
(2)
d) 11111111000011111
(2)
3) Dokonaj konwersji liczb binarnych na szesnastkowe
a) 10111010111011111
(2)
b) 10001110101000011111
(2)
c) 1110000011101001111101010111
(2)
d) 111100001111000101010100110011111010100011111010101010100000
(2)
4) Dokonaj konwersji liczb szesnastkowych na binarne
a) C56E
(16)
b) ABCDE
(16)
c) 66BF13A
(16)
d) FF99CB61AA
(16)