You are on page 1of 7

BROJEVNI SISTEMI

================

*) Brojevni sistemi se koriste za zapisivanje brojeva (bilo u svesci,


na tabli, u racunaru ili na nekom drugom medijumu). Brojevi su
apstraktni matematicki objekti koji postoje nezavisno od toga kako
ih zapisujemo. Jedan isti broj se moze zapisati na mnogo razlicitih
nacina, pri cemu su neki nacini pogodniji za coveka, a neki za
racunar.

*) Broj se najcesce zapisuje pomocu niza cifara. Cifre predstavljaju


osnovne oznake (simbole) cijim se kombinovanjem dobijaju zapisi
razlicitih brojeva. Pritom, postoje NEPOZICIONI brojevni sistemi
kod kojih vrednost cifre ne zavisi od pozicije na kojoj se nalazi
u zapisu broja, i POZICIONI brojevni sistemi kod kojih vrednost
cifre zavisi od pozicije na kojoj se nalazi u zapisu broja.

*) Najpoznatiji nepozicioni brojevni sistem jesu RIMSKI BROJEVI. Na


primer, u broju VIII, cifra 'I' se ponavlja tri puta i na sve tri
pozicije vredi isto (jedan). Dakle, vrednost koju cifra donosi
broju ne zavisi od pozicije na kojoj se cifra nalazi.

*) Najpoznatiji pozicioni brojevni sistem je sistem ARAPSKIH BROJEVA,


koji ljudi danas najcesce koriste. Ovaj sistem potice iz stare
Indije, a arapski trgovci su ga u srednjem veku doneli u Evropu.
Na primer, u broju 535 prva petica vredi 500, dok druga vredi samo
5, jer se nalaze na razlicitim pozicijama. Dakle, vrednost koju
cifra donosi broju zavisi od pozicije na kojoj se cifra nalazi.

*) Sistem arapskih brojeva je pozicioni sistem sa osnovom deset, zbog


cega ga cesto zovemo i DEKADNI BROJEVNI SISTEM. U njemu postoji 10
cifara (0,1,2,3,4,5,6,7,8,9) koje oznacavaju prvih deset elemenata
skupa N_0 = { 0, 1, 2, 3, ...} (prirodni brojevi i nula). Prvi
sledeci broj (a to je upravo osnova deset) se mora zapisati sa dve
cifre, tj. tako sto se najniza cifra (cifra jedinice) vraca na 0, a
ispred nje se dopisuje 1. Otuda je zapis desetke u dekadnom sistemu
upravo 10. Nadalje se ponovo cifra jedinice uvecava do 9, a zatim
se ponovo vraca na 0, a cifra desetice se uvecava na 2, i
td. Najveci dvocifren broj je 99 (dva pojavljivanja najvece cifre),
nakon cega ce prvi trocifreni broj biti 100 (obe devetke se vrate
na 0, a ispred se dopise jedinica). Na ovaj nacin brojimo u
dekadnom sistemu. Dekadni sistem je zapravo najzgodniji za ljude,
zbog toga sto ljudi imaju deset prstiju, pa im je zato brojanje do
deset (pa onda iz pocetka) najprirodniji nacin brojanja.

*) Vrednost broja zapisanog u dekadnom sistemu se moze odrediti tako


sto vrednost svake cifre pomnozimo vrednoscu pozicije na kojoj se
cifra nalazi, i onda tako dobijene proizvode saberemo. Na primer,
broj 5412 = 5*10^3 + 4*10^2 + 1*10 + 2. Dakle, sa desna u levo
pozicije imaju vrednosti 1, 10, 10^2, 10^3, 10^4, ... (u pitanju
su rastuci stepeni desetke, tj. osnove sistema). Zbog ovoga
cifre koje su vise levo u zapisu nose mnogo vecu vrednost.

*) Ista ideja koja se koristi u dekadnom zapisu se moze uopstiti i


na proizvoljnu osnovu B >= 2. Dakle, umesto da osnova bude jednaka
deset, mozemo uzeti bilo koji drugi prirodan broj (razlicit od 1)
za osnovu sistema. Na primer, ako je osnova B = 5, tada cemo imati
5 razlicitih cifara (uzecemo da su to cifre 0,1,2,3,4) kojima
zapisujemo prvih 5 brojeva iz skupa N_0. Nakon toga, prvi sledeci
broj (a to je upravo osnova 5) zapisujemo najmanjim dvocifrenim
zapisom 10. Dalje brojimo 11, 12, 13, 14, 20, 21, 22, 23, 24, 30,
31, ..., 44, 100, 101, 102, 103, 104, 110, .... Dakle, na svakoj
cifarskoj poziciji brojimo od 0 do 4, a zatim se vracamo na 0,
uz uvecanje sledece cifre. Princip brojanja je isti kao kod
dekadnog sistema, samo sto imamo manje cifara.

*) Slicno, vrednost broja u osnovi B = 5 se izracunava tako sto se


vrednosti cifara u zapisu mnoze vrednostima pozicija na kojima se
nalaze odgovarajuce cifre. Vrednost svake pozicije je neki stepen
osnove 5 (sa desna u levo, vrednosti pozicija su 1, 5, 5^2, 5^3,
5^4, ....). Na primer, broj 2314 = 2*5^3 + 3*5^2 + 1*5 + 4. Ako
desnu stranu ove jednakosti sracunamo u dekadnom zapisu, dobicemo
zapis istog tog broja u dekadnom zapisu (primetimo da smo zato
osnovu 5 napisali onako kako se ona zapisuje u dekadnom zapisu, a
ne onako kako se zapisuje u zapisu sa osnovom 5, a to je 10).
Zbog toga se ovaj jednostavan postupak koristi za konverziju iz
sistema sa proizvoljnom osnovom u dekadni sistem. Dakle, imamo:

2314 (u osnovi 5) = 2*5^3 + 3*5^2 + 1*5^1 + 4*5^0 =


2*125 + 3*25 + 1*5 + 4*1 =
250 + 75 + 5 + 4 = 334 (u osnovi 10)

*) Jedan od cesto koriscenih pozicionih zapisa je tzv. binarni zapis


kod koga je osnova B = 2. Shodno tome, binarni sistem ima samo
dve cifre (0 i 1) kojima se zapisuju prva dva broja iz skupa N_0
(upravo brojevi 0 i 1). Prvi sledeci broj (a to je osnova 2) se
zapisuje najmanjim dvocifrenim zapisom, tj. sa 10. Dalje brojimo
11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, 1101, 1110,
1111, 10000, .... Dakle, na svakoj cifarskoj poziciji brojimo
od 0 do 1, nakon cega se vracamo na 0 uz promenu sledece cifre.

*) Postupak konverzije iz binarnog u dekadni sistem je isti kao i


ranije: npr. vrednost binarnog zapisa 11011010 je 1*2^7 + 1*2^6 +
0*2^5 + 1*2^4 + 1*2^3 + 0*2^2 + 1*2 + 0 = 128 + 64 + 16 + 8 + 2 =
218 (u osnovi 10). Dakle, cifarske pozicije u binarnom sistemu
imaju vrednosti koje su stepeni dvojke, tj. sa desna u levo redom
1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,... Ono sto je jos
zgodno kod binarnog zapisa je to sto su cifre uvek 0 ili 1, pa se
svaka vrednost cifarske pozicije mnozi ili sa 1 ili sa 0, zbog cega
se vrednost binarnog zapisa svodi na zbir stepena dvojki koje
odgovaraju pozicijama na kojima se nalaze jedinice. Evo jos par
primera:

10111101 (u osnovi 2) = 2^7 + 2^5 + 2^4 + 2^3 + 2^2 + 2^0 =


= 128 + 32 + 16 + 8 + 4 + 1 = 189 (u osnovi 10)

Dakle, sabiramo samo one stepene dvojke koji odgovaraju pozicijama


u zapisu gde se nalaze jedinice (pozicije brojimo sa desna u levo
pocev od nule; krajnja desna pozicija ima vrednost 2^0=1, sledeca
ima vrednost 2^1=2, i td).

01101010 (u osnovi 2) = 2^6 + 2^5 + 2^3 + 2^1


= 64 + 32 + 8 + 2 = 106 (u osnovi 10)
*) Binarni zapis se tipicno koristi za cuvanje brojeva u racunarima.
Ovo je zato sto racunari lako mogu da razlikuju dva stanja (napona,
namagnetisanja, naelektrisanja, i sl.) kojima se predstavljaju dve
cifre binarnog sistema (npr. napon od +5V je cifra '1', a napon 0V
je cifra '0'). Dakle, kao sto je nama zgodan dekadni zapis (zbog
nasih 10 prstiju), tako je racunaru zgodan binarni zapis.

*) Jos jedan cesto korisceni zapis je HEKSADEKADNI ZAPIS, kod koga je


osnova B = 16. Tada nam je potrebno 16 cifara, pa pored standardnih
arapskih cifara 0-9 koristimo jos i prvih 6 slova abecede
(A,B,C,D,E,F). Ovim ciframa se predstavlja prvih 16 elemenata
skupa N_0, pri cemu cifre A,B,C,D,E,F predstavljaju redom (dekadne)
brojeve 10,11,12,13,14,15. Prvi sledeci broj (a to je opet osnova
16) mora biti zapisana najmanjim dvocifrenim zapisom 10 (primetimo
da se u svim pozicionim zapisima osnova uvek zapisuje kao
10). Dalje brojimo 11,12,13,14,15,16,17,18,19,1A,1B,1C,
1D,1E,1F,20,21,...,2F,30,31,...,FF,100, 101, ...

*) Konverzija u dekadni zapis se opet obavlja na isti nacin. Na


primer, za hekadekadni zapis 2A3D vredost mozemo izracunati izrazom
2*16^3 + 10*16^2 + 3*16 + 13. Dakle, pozicije sada imaju vrednosti
stepena broja 16 (sa desna u levo, redom, 1, 16, 16^2, 16^3, ...).
Primetimo da smo osnovu 16 kao i cifre u gornjem izrazu zapisali u
dekadnom zapisu, kako bismo mogli da sracunamo vrednost i dobijemo
zapis tog istog broja u dekadnoj osnovi (to je vrednost 2*4096 +
10*256 + 3*16 + 13 = 10813). Evo jos par primera:

BABA (u osnovi 16) = 11*16^3 + 10*16^2 + 11*16^1 + 10*16^0 =


= 11*4096 + 10*256 + 11*16 + 10*1
= 47802 (u osnovi 10)

DEDA (u osnovi 16) = 13*4096 + 14*256 + 13*16 + 10*1 =


= 57050 (u osnovi 10)

*) Sa stanovista matematike, sve osnove su potpuno ravnopravne i nema


razloga da neku posebno izdvajamo. U svim osnovama se mogu zapisati
svi brojevi skupa N_0. Ukoliko je osnova veca, tada ce nam tipicno
biti potrebno manje cifara za zapis, dok ce u slucaju manje osnove
brojevi imati veci broj cifara (npr. za dekadni broj 1024 nam u
binarnom zapisu treba cak 11 cifara). Dakle, SVAKI PRIRODNI BROJ
RAZLICIT OD JEDAN MOZE BITI OSNOVA, a princip zapisivanja brojeva
je isti kod svih osnova (jedino se menja broj cifara, kao i
vrednosti cifarskih pozicija). U praksi, mi se ipak drzimo osnova
koje su nama iz nekih razloga zgodne (za ljude to je dekadni
sistem, a za racunare binarni; smisao heksadekadnog zapisa videcemo
nesto kasnije).

*) KONVERZIJA ZAPISA IZ DEKADNE U PROIZVOLJNU OSNOVU B

U prethodnom tekstu smo se upoznali sa postupkom konverzije zapisa


iz proizvoljne osnove B u dekadnu osnovu (postupak se svodio na
prosto izracunavanje vrednosti u dekadnom sistemu, po definiciji
samog zapisa u osnovi B). U nastavku opisujemo obrnuti postupak,
postupak konverzije iz dekadne osnove u proizvoljnu osnovu B.
Algoritam se sastoji u tome da se uzastopno deli osnovom B
i u svakom koraku se uzima ostatak kao sledeca cifra (sa
desna u levo, tj. u obrnutom poretku) a celobrojni kolicnik
ostaje za deljenje u sledecem koraku. Postupak se zavrsava
kada celobrojni kolicnik postane 0.

PRIMER: 764 (iz osnove 10 u osnovu 7):

764 | 1
109 | 4
15 | 1
2 | 2
0 |

Citanjem odozdo na gore dobijamo 2141 (zapis u osnovi 7).

Isti broj iz osnove 10 u osnovu 2:

764 | 0
382 | 0
191 | 1
95 | 1
47 | 1
23 | 1
11 | 1
5 | 1
2 | 0
1 | 1
0 |

Citanjem odozdo na gore dobijamo 1011111100 (zapis u binarnom sistemu).

Isti broj iz osnove 10 u osnovu 16:

764 | 12
47 | 15
2 | 2
0 |

Citanjem odozdo na gore (i zamenom brojeva 12 i 15 odgovarajucim


heksadekadnim ciframa C i F) dobijamo 2FC.

NAPOMENA: Ukoliko ne mozete da napamet podelite brojeve (sto je i


razumno za velike brojeve) slobodno izvrsite deljenje negde sa
stane. Na primer, deljenje 764 sa 7 bi izgledalo ovako:

764 : 7 = 109
-7
06
- 0
64
-63
1

Slicno, deljenej 764 sa 16 izgleda ovako:


764 : 16 = 47
-64
124
-112
12

*) Binarni zapis se najvise koristi u racunarima koji sve brojeve


predstavljaju binarno. Za binarnu cifru (0 ili 1) se obicno koristi
termin BIT (skraceno od BInary digiT). Najmanji binarni brojevi sa
kojima racunari mogu zasebno da barataju su 8-bitni brojevi. Jedan
8-bitni binarni broj se zove BAJT. Svaka memorija se sastoji iz
niza bajtova, a velicina memorije se izrazava brojem
bajtova. Pritom, uvodimo i vece jedinice: KILOBAJT (KB) = 1024
BAJTA; MEGABAJT (MB) = 1024 KB, GIGABAJT (GB) = 1024 MB, TERABAJT
(TB) = 1024 GB i td. Primetimo da se umesto 1000 ovde koristi 1024.
Ovo je zato sto je 1024 = 2^10 (to je u binarnom svetu "okrugao"
broj, zapisuje se kao 10000000000, tj. 1 i 10 nula). Medju svim
okruglim binarnim brojevima, 1024 je najpriblizniji po vrednosti
dekadnom broju 1000, pa se zato koristi u definiciji jedinica kilo,
mega, giga, i td.

*) PREVODJENJE IZMEDJU PROIZVOLJNIH OSNOVA

Ako je potrebno prevesti zapis iz osnove B1 u osnovu B2 (medju


kojima ni jedna od osnova nije 10), tada najcesce prevodjenje
radimo posredno, preko osnove 10. U prvoj fazi prevedemo zapis
iz osnove B1 u 10 (tako sto raspisemo zapis u osnovi B1 prema
definiciji pozicionog zapisa, pa sracunamo vrednost u dekadnom
zapisu), a zatim izvrsimo konverziju iz osnove 10 u osnovu B2
(prema prethodno opisanom algoritmu).

Primer: konvetovati zapis 21021 (osnova 3) u osnovu 5.

Najpre konvetujemo u osnovu 10:

2*3^4 + 1*3^3 + 0*3^2 + 2*3 + 1 = 2*81 + 1*27 + 6 + 1 =


162 + 27 + 6 + 1 = 196

Sada dekadni broj 196 konvertujemo u osnovu 5:

196 | 1
39 | 4
7 | 2
1 | 1
0 |

Dakle, zapis u osnovi 5 je 1241.

Specijalno, ako su osnove takve da je B2 = B1^k, tada se


prevodjenje obavlja znatno jednostavnije: grupisemo po k cifara
zapisa u osnovi B1 (sa desna u levo), a zatim svaku k-torku
zapisemo u osnovi B2 (to ce uvek biti jedna cifra u osnovi B2).
Slicno vazi i u obratnom slucaju: ako je dat zapis u osnovi B2,
tada se svaka cifra konvertuje u zapis u osnovi B1 sa tacno k
cifara. Na primer, ako imamo osnove 2 i 16 (primetimo da je 16=2^4)
tada treba grupisati po 4 cifre binarnog sistema, a svaka takva
cetvorka binarnih cifara ce odgovarati jednoj heksadekadnoj cifri.
Primer:
1010101101110101110101

Grupisemo po 4 cifre sa desna u levo:

0010 1010 1101 1101 0111 0101

(primetimo da smo dopisali dve vodece nule, kako bismo i u


poslednjoj grupi imali 4 cifre).

Sada svaku grupu zamenimo jednom heksadekadnom cifrom koja


predstavlja isti broj:

2 A D D 7 5

i dobijamo heksadekadni zapis 2ADD75

Primer: konvertujmo heksadekadni zapis u binarni:

5AC82D --> 0101 1010 1100 1000 0010 1101

Dakle, svaku cifru smo prebacili u cetvorocifreni binarni


zapis. Spajanjem tih zapisa dobijamo:

010110101100100000101101

(vodeca nula se moze izostaviti jer ne utice na vrednost)

Primer: konvertujmo prethodni binarni broj u oktalni zapis (zapis


sa osnovom 8). Kako je 8 = 2^3, sledi da treba grupisati po 3 cifre
u binarnom zapisu:

010 110 101 100 100 000 101 101

Sada svaku grupu prevodimo u oktalnu cifru koja predstavlja isti


broj:

2 6 5 4 4 0 5 5

odakle dobijamo zapis u osnovi 8: 26544055

Primer: konvertujmo zapis iz osnove 8 u osnovu 2:

75362 --> 111 101 011 110 010

Dakle, svaku cifru oktalnog sistema raspisujemo kao trocifreni


binarni broj.

Primer: konvertujmo zapis iz osnove 3 u osnovu 9:

102022120

Kako je 9 = 3^2, potrebno je grupisati po dve cifre:

01 02 02 21 20
Zatim se svaka grupa zamenjuje odgovarajucom cifrom u osnovi 9:

1 2 2 7 6

odakle dobijamo zapis 12276.

Primetimo da smo u gornjoj konverziji svaki dvocifreni broj u


osnovi 3 morali da konvertujemo u osnovu 9. Uz malo vezbe, ovo
se moze uraditi i napamet
(na primer, konverzijom broja 21 iz osnove 3 u dekadnu osnovu
dobijamo 21 = 2*3^1 + 1*3^0 = 6 + 1 = 7. Kako sistem sa osnovom
9 koristi iste cifre kao i dekadni (osim sto ne koristi cifru 9)
svaka cifra dekadnog sistema manja od 9 bice istovremeno i cifra
sistema sa osnovom 9. Ovo znaci da zapisu 21 u osnovi 3 upravo
odgovara zapis 7 u osnovi 9).

Primetimo da se ova brza konverzija moze koristiti i kada imamo dve


osnove koje su obe stepeni istog broja (npr osnove B^m i B^n). U
tom slucaju u zapisu sa osnovom B^m najpre svaku cifru raspisemo
kao m cifara u osnovi B, a zatim u dobijenom zapisu grupisemo po n
cifara i konvertujemo ih u cifre sistema sa osnovom B^n.

Primer: konvertovati zapis A2CD54F (osnova 16) u zapis sa osnovom


8. Kako je 16 = 2^4, a 8 = 2^3, najpre treba konvertovati u osnovu
2:

A 2 C D 5 4 F --> 1010 0010 1100 1101 0101 0100 1111

Sada u dobijenom binarnom zapisu grupisemo po 3 cifre:

001 010 001 011 001 101 010 101 001 111

(dopisujemo dve vodece nule da bismo kompletirali poslednju grupu)

Sada se svaka grupa konvertuje u jednu oktalnu cifru:

1 2 1 3 1 5 2 5 1 7

Odavde je oktalni zapis 1213152517.

*) Uloga heksadekadnog i oktalnog sistema u prakticnoj primeni je


upravo u kracem zapisivanju binarnih brojeva. Naime, binarni brojevi
koji se koriste u praksi po pravilu imaju veliki broj cifara
(npr. 32-bitni brojevi imaju 32 cifre, a 64-bitni cak 64). Racunarima
to nije veliki problem, ali u ljudskoj interakciji to moze da bude
prilicno naporno i za citanje i za pisanje. Zato se prilikom pisanja
u svesci, knjizi, na tabli ili prilikom ispisa na ekranu racunara
obicno koriste ekvivalentni zapisi u heksadekadnom i (nesto redje)
oktalnom zapisu, jer se time zapis kompresuje cetiri (odnosno tri)
puta. S obzirom da je konverzija u binarni izuzetno jednostavna i da
je vecina ljudi moze lako obaviti i napamet, time se postize cilj da
se ljudima predoci binarni zapis, a da se ne ispisuju svi bitovi, vec
odgovarajuce heksadekadne (oktalne) cifre.

Autor: Milan Banković, docent na Matematičkom fakuletetu u Beogradu

You might also like