nermin okiˇci´c elvis barakovi´c

40
UNIVERZITET U TUZLI PRIRODNO-MATEMATI ˇ CKI FAKULTET Nermin Okiˇ ci´ c Elvis Barakovi´ c Matematiˇ cke osnove kompjuterske nauke - Skripta - Tuzla, 2020.

Upload: others

Post on 11-Nov-2021

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Nermin Okiˇci´c Elvis Barakovi´c

UNIVERZITET U TUZLIPRIRODNO-MATEMATICKI FAKULTET

Nermin Okicic Elvis Barakovic

Matematicke osnove kompjuterske nauke

- Skripta -

Tuzla, 2020.

Page 2: Nermin Okiˇci´c Elvis Barakovi´c

Sadrzaj

2 Brojni sistemi 27

2.1 Kodiranje i dekodiranje . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.2 Brojni sistemi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.3 Prevodenje zapisa broja iz jednog u drugi brojni sistem . . . . . . . . . . 33

2.3.1 Prevodenje cijelih brojeva . . . . . . . . . . . . . . . . . . . . . . . 34

2.3.2 Prevodenje razlomljenog broja . . . . . . . . . . . . . . . . . . . . 36

2.3.3 Prevodenje mjesovitog broja . . . . . . . . . . . . . . . . . . . . . . 38

2.3.4 Prevodenja izmedu binarnog, oktalnog i heksadekadnog sistema . . 39

2.4 Racunske operacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

2.4.1 Sabiranje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2.4.2 Oduzimanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.4.3 Mnozenje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.4.4 Dijeljenje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

2.5 Zapis brojeva u brojnom sistemu . . . . . . . . . . . . . . . . . . . . . . . 48

2.5.1 Znak i apsolutna vrijednost . . . . . . . . . . . . . . . . . . . . . . 49

2.5.2 Nepotpuni komplement broja . . . . . . . . . . . . . . . . . . . . . 50

2.5.3 Potpuni komplement broja . . . . . . . . . . . . . . . . . . . . . . 53

Bibliografija 63

i

Page 3: Nermin Okiˇci´c Elvis Barakovi´c

Sadrzaj

26

Page 4: Nermin Okiˇci´c Elvis Barakovi´c

2

Brojni sistemi

Svako pismo, bez obzira sluzi li nam ono za pravopis ili neko drugo (naucno)izrazavanje (naprimjer, brojanje), sadrzi kao svoj osnovni dio neki skup polaznihsimbola koga nazivamo alfabet. Svaki od simbola alfabeta je elementaran, odnosnonedjeljiv element. Uobicajeno je simbole alfabeta nazivati slovima. U programiranju jecesca upotreba rijeci ”znak” jer se rijec ”slovo” koristi za posebnu vrstu ”znakova”.Tako u nasem pravopisu (abecedi) imamo 30 znakova, u engleskom alfabetu je 26znakova, specijalo za svakodnevno koristenje brojeva koristimo se alfabetom (brojnisistem) koji ima 10 znakova. Dopisivanjem znakova jednog za drugim dobijamo ”rijeci”.Broj znakova u jednoj rijeci odreduje duzinu rijeci. Ukoliko se alfabet sastoji od nznakova (n ∈ N), broj rijeci duzine k (k ∈ N) koje se mogu zapisati tim alfabetomprdstavlja broj varijacija k-te klase od n elemenata sa ponavljanjem i kao takav imavrijednost nk. Treba primjetiti da bez obzira sto je neki alfabet konacan, pomocu njegamozemo zapisati beskonacno mnogo rijeci jer duzine rijeci nisu ogranicene. Skup svihrijeci koje mozemo konstruisati nad nekim alfabetom X oznacavat cemo sa X.

Primjer 2.1. Neka je alfabet dat sa X = {0, 1, 2}. Nad njim mozemo konstruisati rijeci:

• duzine 1: 0, 1 i 2.

• duzine 2: 00, 01, 02, 10, 11, 12, 20, 21, 22.

• duzine 3: 000, 001, 002, 010, 020, 100, 200, 011, 021, 012, 022, 101, 102, 201,202, 110, 120, 210, 220, 111, 112, 121, 211, 212, 122, 221, 222.

Kako primjecujemo, broj rijeci duzine 1 je 31 = 3, broj rijeci duzine 2 je 32 = 9, brojrijeci duzine 3 je 33 = 27 i tako dalje. �

2.1 Kodiranje i dekodiranje

Neka je zadat proizvoljan skup objekata (konkretnih ili apstraktnih) Y = {y1, y2, ..., yn}(n ∈ N). Pretpostavimo da imamo neki alfabet X = {x1, x2, ...xm} (m ∈ N i m > 1).Neka je svakom objektu skupa Y pridruzena po jedna rijec nad alfabetom X proizvoljneduzine. Oznacimo skup svih takvih rijeci sa K. Tada je K ⊂ X i nazivamo ga kodinformacija Y u alfabetu X . Ako su sve rijeci skupa K medusobno razlicite, kazemo daje kod jednoznacan, u suprotnom kod je viseznacan. Elemente (rijeci) skupa K nazivamokodne rijeci.

Definicija 2.1.1. Proces pridruzivanja rijeci nad alfabetom X elementima nekogskupa Y nazivamo kodiranje.Obrnuti proces, to jest raspoznavanje elemenata skupa Y na osnovu zadate rijeci nadalfabetom X nazivamo dekodiranje.

27

Page 5: Nermin Okiˇci´c Elvis Barakovi´c

2.1. Kodiranje i dekodiranje

Broj znakova alfabeta nazivamo osnovom ili bazom koda.

Definicija 2.1.2. Ako su sve rijeci koda iste duzine tada kazemo da je kodravnomijeran.Ako ravnomijeran kod, sa duzinom rijeci s, u sebi sadrzi sve rijeci nad zadatimalfabetom koje su duzine s, tada kazemo da je kod potpun, u suprotnom je kodnepotpun.

Ako je baza nekog koda m, tada je broj razlicitih rijeci koje je moguce konstruisati nadtim alfabetom, a duzine su s, jednak ms. Jasno je tada da bi kod bio ravnomjeran, morase izabrati takva duzina rijeci s da ms bude vece ili jednako od broja objekata skupakoga kodiramo. Specijalno, prema gornjoj definiciji kod ce biti potpun i ravnomjeranako je ms = n, gdje je n broj objekata skupa koga kodiramo. Duzina rijeci koje cineravnomjeran kod naziva se mjesnost koda ili arnost koda.Alfabet kojim vrsimo kodiranje moze biti bilo kakav skup znakova sa bar dva znaka. U

danasnjoj kompjuterskoj nauci od posebnog je interesa alfabet sa dva znaka. To mogu bitibilo koja dva znaka, a opet uobicajeno to je skup ciji su znaci 0 i 1 (X = {0, 1}) i nazivamoga binarni alfabet. Razlog koristenja binarnih alfabeta u danasnjoj kompjuterskoj tehnicilezi u cinjenici da je u elektronskoj tehnologiji veoma lako realizovati objekte sa dvastabilna stanja. Ovakve objekte nazivamo celije. Jednom od tih stanja tada pridruzujemo(registrujemo ga) kao 0, a drugom stanju pridruzujemo 1. Na ovaj nacin jedna celija mozeregistrovati oba znaka binarnog alfabeta. Zelimo li sada registrovati rijeci nad ovomalfabetom, organizujemo vise ovakvih celija. Ovako organizovanih vise celija kao cjelinanazivamo registar. Dakle, sadrzaj registra je binarna rijec koja moze biti ili podatak ilineka naredba.

Primjer 2.2. Neka je zadat skup Y = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} (cifre dekadnog sistema).Neka je X = {0, 1} binarni alfabet. Da napravimo jednoznacan, ravnomjeran kodelemenata skupa Y u alfabetu X, moramo odrediti duzinu rijeci s, tako da bude 10 ≤ 2s.Ocigledno za s = 3 to ne mozemo postici jer mozemo sastaviti samo 8 rijeci, te nas kodne bi bio jednoznacan. Dakle, mora biti s = 4. Sada mozemo formirati 24 = 16 binarnihrijeci, a kako treba kodirati samo 10 objekata, da bi kod bio jednoznacan, sest rijecinecemo koristiti.

Y 0 1 2 3 4 5 6 7 8 9Kod 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Tablica 2.1: Jednoznacan, ravnomjeran i nepotpun kod.

U tabeli je od 16 mogucih rijeci duzine 4 prvih deset koristeno za kodiranje, a preostalih6 ne ulazi u kodiranje. Ovakav kod cesto koristimo kod elektronskih racunara i naziva seprirodni kod. Ako sada na ulazu racunaru unesemo dekadni broj 325, on ce u racunaru,u prirodnom kodu, biti prikazan u obliku

0011︸︷︷︸

3

0010︸︷︷︸

2

0101︸︷︷︸

5

Ako sada racunar treba prikazati 001100100101 na izlazu, s obzirom da je kodravnomjeran i registar cine cetiri celije, jednostavnim djeljenjem na po cetiri binarna

28

Page 6: Nermin Okiˇci´c Elvis Barakovi´c

2.1. Kodiranje i dekodiranje

znaka i dekodiranjem, prikazuje se dekadni broj 325. Naravno da u slucaju da kod nijeravnomjeran ne bi smo imali jednoznacnost u dekodiranju, sto je jedan od razloga zastou racunarskoj tehnici uvijek koristimo jednoznacan i ravnomjeran kod. �

Ukoliko skup Y sadrzi sva velika i mala slova nase abecede, dekadne cifre i sveinterpunkcijske znakove, za binarno kodiranje ce nam trebati binarne rijeci sa viseznakova. Postoje razni nacini binarnog kodiranja, ali su se do danas ustalila dva. To suASCII-kod (American Standard Code for Information Interchange) i EBCDIC-kod(Extended Binary Coded Decimal Interchange Code). Narednom tabelom dat cemoprgled ASCII koda. To je 7-mjesni kod, te su rijeci tog koda oblika x7x6x5x4x3x2x1.

x7 0 0 1 1 1 1x6 1 1 0 0 1 1x5 0 1 0 1 0 1

x4 x3 x2 x1

0 0 0 0 space 0 P p0 0 0 1 ! 1 A Q a q0 0 1 0 ” 2 B R b r0 0 1 1 # 3 C S c s0 1 0 0 $ 4 D T d t0 1 0 1 % 5 E U e u0 1 1 0 & 6 F V f v0 1 1 1 ’ 7 G W g w1 0 0 0 ( 8 H X h x1 0 0 1 ) 9 I Y i y1 0 1 0 * : J Z j z1 0 1 1 + ; K [ k {1 1 0 0 , < L \ l |1 1 0 1 = M ] m }1 1 1 0 . > N ˆ n ∼1 1 1 1 / ? O − o br

Tablica 2.2: ASCII-kod.

Kodne rijeci kod kojih su x7x6x5 000 ili 001 su komandnog karaktera i nisu nevedeneu gornjoj tabeli. Sada smo u stanju binarno kodirati i dekodirati sve sto smo u stanjunapisati u nasem svakodnevnom govoru. Alfabet koga koristimo svakodnevno ovdje senaziva spolajsnji ili eksterni, a binarni alfabet nazivamo unutrasnji ili interni alfabetracunara. Sve informacije i naredbe unutar racunara koriste interni alfabet, pa su tostoga nizovi nula i jedinica. jasno je da ne postoji nikakva informacija da li je neki niznula i jedinica tekst, broj ili naredba. Drugim rijecima receno, racunar sve te podatkeobraduje na isti nacin.

Primjer 2.3. U ASCII-kodu zapisimo tekst: MOKN 2020.

1001101︸ ︷︷ ︸

M

1001111︸ ︷︷ ︸

O

1001011︸ ︷︷ ︸

K

1001110︸ ︷︷ ︸

N

0100000︸ ︷︷ ︸

space

0110010︸ ︷︷ ︸

2

0110000︸ ︷︷ ︸

0

0110010︸ ︷︷ ︸

2

0110000︸ ︷︷ ︸

0

0101110︸ ︷︷ ︸

.

29

Page 7: Nermin Okiˇci´c Elvis Barakovi´c

2.2. Brojni sistemi

2.2 Brojni sistemi

Pod brojnim sistemom podrazumijevamo neki skup cifara i skup pravila za zapisivanjebrojeva i njihovog tumacenja. Pravila na kojima se zasnivaju brojni sistemi u biti surazlicita, ali bez obzira na to svi brojni sistemi mogu biti podjeljeni u dvije skupine,

• nepozicioni sistemi i

• pozicioni sistemi.

Istorijski gledano, razvoj brojnih sistema se kretao od nepozicionih ka pozicionimsistemima brojeva. Tako imamo nepozicioni sistem u starom Egiptu (3000 godinap.n.e), a mnogo poznatiji je rimski brojni sistem, koji je takode nepozicioni sistem.Broj u rimskom brojnom sistemu tumacimo po sljedecim pravilima:

Rimska cifra I V X L C D MDekadna vrijednast 1 5 10 50 100 500 1000

Tablica 2.3: Rimski brojni sistem

• Niz istih cifara predstavlja brojnu vrijednost jednaku zbiru tih cifara.

• Dvije cifre, od kojih se manja nalazi lijevo do vece, predstavlja brojnu vrijednostjednaku razlici vece i manje cifre.

• Dvije cifre, od kojih se manja nalazi desno od vece, predstavlja brojnu vrijednostjednaku zbiru tih cifara.

Primjer 2.4. Broj MMM predstavlja vrijednost M +M +M , to jest vrijednost 3000(prvo pravilo).Broj XL predstavlja vrijednost L−X, to jest 40 (drugo pravilo).Broj XV I predstavlja vrijednost X + V + I, to jest 16 (trece pravilo).Broj 2019 u rimskom brojnom sistemu cemo dobiti na sljedeci nacin:

2019 = 2000 + 10 + 9 = 1000 + 1000 + 10 + 10− 1 = MMXIX .

Osnovna karakteristika nepozicionih brojnih sistema je ta da znacenje pojedinacnihcifara ne zavisi od njihovog polozaja u zapisanom broju (bilo gdje zapisana cifra uvijekima istu vrijednost). Nepozicioni brojni sistemi imaju dva velika nedostataka. Prvi,za zapisivanje velikih brojeva treba uvoditi nove cifre i drugi, obavljanje aritmetickihoperacija je veoma komplikovano.Rimski brojni sistem se u Evropi primjenjivao sve do 12. vijeka dok Arapi nisu donijeli

dekadni (decimalni) sistem, koji je zbog lakseg izvodenja racunskih operacija veoma brzopostao osnovni brojni sistem.Pozicioni brojni sistemi imaju karakteristiku da vrijednost cifre datog sistema ovisi o

samoj cifri ali i o njenoj poziciji u zapisu broja.Neka je C = {x1, x2, ..., xN} skup svih razlicitih cifara nekog pozicionog brojnog sistema.

Broj razlicitih cifara brojnog sistema nazivamo osnova brojnog sistema, te je nas brojnisistem sa osnovom N . Broj B u pozicionom brojnom sistemu sa osnovom N se zapisujeu obliku niza cifara tog sistema B(N) = bnbn−1 . . . b1b0, b−1b−2 . . . b−m, pri cemu vrijedesljedeca pravila:

30

Page 8: Nermin Okiˇci´c Elvis Barakovi´c

2.2. Brojni sistemi

1. Brojna vrijednost cifre bi ∈ C (i ∈ {−m,−m + 1, ...,−1, 0, 1, 2, ..., n}) u zapisubroja, zavisi od same vrijednosti cifre i njene pozicije u zapisu broja, sto izrazavamosa

bi = xj ·Ni , j ∈ {1, 2, ..., N} . (1)

2. Brojna vrijednost brojaB dobija se kao zbir brojnih vrijednosti njenih pojedinacnihcifara,

B(N) =

n∑

k=−m

bk . (2)

Kombinujuci (1) i (2) dobijamo polinomijalnu formu broja B

B(N) =n∑

k=−m

xjkNk (2’)

= xjnNn + xjn−1N

n−1 + · · ·+ xj1N1 + xj0N

0 + xj−1N

−1 + · · ·+ xj−m

N−m .

Primjecujemo da u polinomijalnoj formi se svaka cifra nalazi u tezinskoj poziciji, pri cemuje tezina pozicije diktirana stepenom N osnove sitema. Iz ovoga vidimo i opravdanostkonvencije o zapisu broja u sistemu sa osnovom N kao niza cifara, bez pisanja osnove injenog stepena,

B(N) = bnbn−1 . . . b1b0, b−1b−2 . . . b−m = xjnxjn−1 . . . xj1xj0 , xj−1 . . . xj

−m, (3)

pri cemu zarezom razdvajamo cjelobrojni od razlomljenog dijela broja. Mjesto cifre uzapisu broja naziva se pozicija cifre, a broj cifara odreduje duzinu broja. U zapisivanjubrojeva u pozicionim sistemima koristimo se i konvencijom o nepisanju nevazecih nula:Ako su svih prvih n− k (0 ≤ k < n) cifara s lijeva na desno u zapisu broja jednake nuli,onda se one ne navode u zapisu broja, gdje pod nulom podrazumijevamo najmanju cifrudatog brojnog sistema.

Osnova brojnog sistema moze biti bilo koji prirodni broj N > 1 i primjetimo da jetada najveca cifra tog sistema N − 1. Osim dekadnog sistema koji je standardan usvakodnevnoj upotrebi spomenut cemo i takode ceste u upotrebi, binarni, oktalni iheksadekadni brojni sistem, zbog svoje primjene u komjuterskoj nauci.

2.2.0.1 Dekadni brojni sistem

Dekadni brojni sistem ima osnovu N = 10 i koristi cifre X = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.Koristimo se njime u svakdnevnom zivotu, a jedan od razloga tome lezi vjerovatno i ucinjenici da na rukama imamo 10 prstiju.

Primjer 2.5. Broj 4355 u dekadnom sistemu, sto isticemo zapisom 4355(10), zapisujemoovako jer je

4 · 103 + 3 · 102 + 5 · 101 + 5 · 100 = 4355(10) .

31

Page 9: Nermin Okiˇci´c Elvis Barakovi´c

2.2. Brojni sistemi

2.2.0.2 Binarni brojni sistem

Osnova binarnog brojnog sistema je N = 2 sto znaci da se u tom sistemu koriste samodvije cifre X = {0, 1}. To je brojni sistem koji ima ogromnu primjenu u savremenimelektronskim uredajima, a time i u kompjuterskoj nauci. Naime, u odredenom trenutkuelektricno kolo moze biti aktivno ili ne, neki sklop moze biti ukljucen ili iskljucen, uredajmoze biti pod naponom ili ne, cestica moze biti namagnetizirana ili ne, laserski zrakse reflektuje ili ne. Sve ovo su situacije koje su odredene dvoelementnim stanjima kojemozemo interpretirati kao 0 ili 1.

Primjer 2.6. Binarni broj 101100 zapisujemo ovako jer je

1 · 25 + 0 · 24 + 1 · 23 + 1 · 22 + 0 · 21 + 0 · 20 = 101100(2) .

Odogovarajuci dekadni zapis ovog broja dobijamo kada izvrsimo gornje sumiranje istepenovanja (u dekadnom sistemu) te bi tako imali

101100(2) = 44(10) .

Iako je u pitanju jedan primjer, iz gornjeg vidimo nesto sto je generalno pravilo, a to jeda kada se osnova brojnog sistema smanjuje, duzina broja se povecava. Tako je dvocifrenibroj 44 u dekadnom sistemu prikazan kao sestocifren broj 101100 u binarnom sistemu.

Primjer 2.7.

110011, 101(2) = 1 · 25 + 1 · 24 + 0 · 23 + 0 · 22 + 1 · 21 + 1 · 20 + 1 · 2−1 + 0 · 2−2 + 1 · 2−3

= 32 + 16 + 2 + 1 + 0.5 + 0.125

= 51, 625(10)

2.2.0.3 Oktalni brojni sistem

Brojni sistem kod koga je osnova N = 8 i skup cifara X = {0, 1, 2, 3, 4, 5, 6, 7} naziva seoktalni sistem.

Primjer 2.8. Broj 253 u oktalnom zapisu predstavljen je tako jer je

2 · 82 + 5 · 81 + 3 · 80 = 253(8) .

Izracunavanjem gornje sume (koristeci se operacijama iz dekadnog sistema) imamo253(8) = 171(10). �

2.2.0.4 Heksadekadni brojni sistem

Jedan od znacajnijih brojnih sistema u racunarskoj tehnici je heksadekadni sistem kodkoga je osnova N = 16, a skup cifara X = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A,B,C,D,E, F}.Vidimo da se za cifre ovoga sistema osim ”cifara” poznatih nam kao cifre, koriste iznakovi slova kao cifre. Vrijednosti tih ”slova-cifara” u dekadnom brojnom sistemu su

A(16) = 10(10) , B(16) = 11(10) , C(16) = 12(10) ,

D(16) = 13(10) , E(16) = 14(10) , F(16) = 15(10) .

32

Page 10: Nermin Okiˇci´c Elvis Barakovi´c

2.3. Prevodenje zapisa broja iz jednog u drugi brojni sistem

Primjer 2.9. Broj A2F u heksadekadnom brojnom sistemu ima dekadni zapis,

A2F(16) = A(10) · 162 + 2(10) · 16

1 + F(10) · 160 = 10 · 162 + 2 · 161 + 15 · 160 = 2607(10) .

rimski binarni oktalni dekadni heksad.nula 0(2) 0(8) 0(10) 0(16)jedan I 1(2) 1(8) 1(10) 1(16)dva II 10(2) 2(8) 2(10) 2(16)tri III 11(2) 3(8) 3(10) 3(16)cetiri IV 100(2) 4(8) 4(10) 4(16)pet V 101(2) 5(8) 5(10) 5(16)sest VI 110(2) 6(8) 6(10) 6(16)sedam VII 111(2) 7(8) 7(10) 7(16)osam VIII 1000(2) 10(8) 8(10) 8(16)devet IX 1001(2) 11(8) 9(10) 9(16)deset X 1010(2) 12(8) 10(10) A(16)

jedanaest XI 1011(2) 13(8) 11(10) B(16)

dvanaest XII 1100(2) 14(8) 12(10) C(16)

trinaest XIII 1101(2) 15(8) 13(10) D(16)

cetrnaest XIV 1110(2) 16(8) 14(10) E(16)

petnaest XV 1111(2) 17(8) 15(10) F(16)

Tablica 2.4: Zapisi nekih prirodnih brojeva u do sada spomenutim brojnim sistemima.

Bilo koji cijeli broj veci od 1 moze se koristiti kao baza brojnog sistema. Interesantnoje spomenuti da su u starom Babilonu koristili brojni sistem sa osnovom 60 ili naprimjerMajanska civilizacija je koristila brojni sistem sa osnovom 20. Imamo mnogo dokaza dasu se u svijetu koristili i razni drugi brojni sistemi. Tako imamo da su koristeni sistemi saosnovom 3 i 4 u nekim podrucjima Juzne Amerike, brojni sistem sa osnovom 5 koristilasu neka plemena u Boliviji, sistem sa osnovom 6 koristen je u sjevero-zapadnoj Africi.Cest je bio i sistem sa osnovom 6 u kombinaciji sa osnovom 12, tzv. duodecimalni sistem.

2.3 Prevodenje zapisa broja iz jednog u drugi brojni sistem

Problem prevodenja zapisa brojeva iz jednog pozicionog sistema u drugi pozicioni sistemsastoji se u sljedecem:Neka su dati brojni sistem sa osnovom N1 i skupom cifara C1 i brojni sistem sa osnovomN2 i skupom cifara C2. Zadat nam je broj B u prvom sistemu

B(N1) = xnxn−1 . . . x1x0, x−1 . . . x−m ,

gdje su xi ∈ C1 za i = −m,−m + 1, ... − 1, 0, 1, ..., n. Treba odrediti zapis tog broja usistemu sa osnovom N2, to jest odrediti

B(N2) = ypyp−1 . . . y1y0, y−1 . . . y−q ,

33

Page 11: Nermin Okiˇci´c Elvis Barakovi´c

2.3. Prevodenje zapisa broja iz jednog u drugi brojni sistem

gdje su yi ∈ C2 za i = −q,−q + 1, ...,−1, 0, 1, ..., p.Ovaj se zadatak rjesava jednostavno tako sto broj B(N1) zapisemo u polinomijalnoj

formi, koristeci se sa (2’),

B(N1) =

n∑

k=−m

xkNk1 .

Zatim sve cifre xi i osnovu N1 zapisemo u brojnom sistemu sa osnovom N2, a onda datusumu izracunamo u brojnom sistemu sa osnovom N2.

B(N2) =

n∑

k=−m

xk(N2)(N1(N2)

)k.

Tezina ovog postupka lezi u tome sto sve aritmeticke operacije prilikom izracunavanjagornje sume treba izvoditi u brojnom sistemu sa osnovom N2. Kako su nama dobropoznate operacije u dekadnom sistemu, ovaj metod je dobro primjenjivati kada brojprevodimo u dekadni sistem.

Primjer 2.10. Prevesti broj 11010(2) u dekadni sistem.

11010(2) = 0 · 20 + 1 · 21 + 0 · 22 + 1 · 23 + 1 · 24 = 0 + 2 + 0 + 8 + 16 = 26(10) .

U daljem sto slijedi izlozit cemo postupak prevodenja u kome ce se aritmeticke operacijeizvoditi u sistemu sa osnovom N1. U ovom postupku posebno posmatramo prevodenjecjelobrojnog dijela, a posebno prevodenje razlomljenog dijela broja.

2.3.1 Prevodenje cijelih brojeva

Neka je dat cijeli broj B u brojnom sistemu sa osnovom N1 u obliku

B(N1) = xnxn−1 . . . x1x0 =

n∑

k=0

xkNk1 ,

gdje su xk (k ∈ {0, 1, ..., n}) cifre ovog brojnog sistema. Isti taj broj zapisan u sistemusa osnovom N2 imat ce oblik

B(N2) = ypyp−1 . . . y1y0 =

p∑

k=0

ykNk2 , (4)

gdje su yi (i ∈ {0, 1, ..., p}) cifre drugog brojnog sistema. Jasno je da su brojne vrijednostijednake, to jest da vrijedi B(N1) = B(N2). Ako broj B(N1) podijelimo sa N2 i takode desnustranu u (4) podijelimo sa N2, dobijamo

B(N1)

N2=

y0N2

+

p∑

k=1

ykNk−12 .

Desna strana jednakosti se sastoji od cjelobrojnog dijela i on iznosi

B1 =

p∑

k=1

ykNk−12 ,

34

Page 12: Nermin Okiˇci´c Elvis Barakovi´c

2.3. Prevodenje zapisa broja iz jednog u drugi brojni sistem

i razlomljenog dijela iz koga ocitavamo ostatak, koji je ovdje y0, sto je upravo jedinicnacifra u zapisu broja B u sistemu sa osnovom N2. Ponovimo li ovaj postupak, primjenjenna broj B1 (zapisan u bazi N1) dobijamo

B1

N2=

y1N2

+

p∑

k=2

ykNk−22 ,

to jest cjelobrojni dio kolicnika B2 =

p∑

k=2

ykNk−22 i narednu cifru y1 u zapisu broja B u

sistemu sa osnovom N2. Nastavljajuci ovaj postupak, nakon konacno mnogo koraka docicemo do

Bp =

p∑

k=p

ykNk−p2 = yp ,

gdje nemamo vise cjelobrojnog dijela, a yp je posljednja cifra iz zapisa broja B u sistemusa osnovom N2. Analizirajuci dati postupak vidimo da se za prevodenje cijelog broja Biz sistema sa osnovom N1 u sistem sa osnovom N2 mozemo posluziti rekurentnom vezom

Bi

N2= Bi+1 +

yiN2

, i = 0, 1, 2, ..., p , (5)

gdje je Bi+1 cijelobrojni dio kolicnikaBi

N2, a B0 = B(N1). Pri tome se sve aritmeticke

operacije rade u sistemu sa osnovom N1. U narednoj tabeli dajemo sematski prikaz ovogalgoritma.

Iteracija 0 1 2 · · · p

Dijeljenje B0 : N2 B1 : N2 B2 : N2 · · · Bp : N2

Ostatak y0 y1 y2 · · · yp

Algoritam zavrsava kada cjelobrojni dio (neki Bi) postane 0. Nakon primjene ovogalgoritma ostaje nam zapisati broj B u novom sistemu, tako da njegove cifre ocitavamoiz posljednje vrste, s desna na lijevo,

B(N2) = ypyp−1 . . . y1y0 .

2.3.1.1 Iz dekadnog u binarni

Primjer 2.11. Prevesti broj 52(10) u binarni zapis.U binarnom zapisu osnova je N2 = 2, pa dijeljenja vrsimo sa tim brojem. Operacijeizvodimo u sistemu sa osnovom N1 = 10.

Iteracija 0 1 2 3 4 5

Dijeljenje 52 : 2 = 26 26 : 2 = 13 13 : 2 = 6 6 : 2 = 3 3 : 2 = 1 1 : 2 = 0

Ostatak 0 0 1 0 1 1

Dakle, 52(10) zapisan u binarnom sistemu glasi 110100(2). �

35

Page 13: Nermin Okiˇci´c Elvis Barakovi´c

2.3. Prevodenje zapisa broja iz jednog u drugi brojni sistem

2.3.1.2 Iz dekadnog u oktalni

Primjer 2.12. Prevesti broj 352(10) u oktalni zapis.U oktalnom sistemu je N2 = 8, te dijeljenja vrsimo sa tim brojem. Operacije izvodimo usistemu sa osnovom N1 = 10.

Iteracija 0 1 2Dijeljenje 352 : 8 = 44 44 : 8 = 5 5 : 8 = 0

Ostatak 0 4 5

Dakle, 352(10) zapisan u oktalnom sistemu glasi 540(8). �

2.3.1.3 Iz dekadnog u heksadekadni

Primjer 2.13. Prevesti broj 6718(10) u heksadekadni zapis.U heksadekadnom sistemu je N2 = 16, te dijeljenja vrsimo sa tim brojem. Operacijeizvodimo u sistemu sa osnovom N1 = 10.

Iteracija 0 1 2 3

Dijeljenje6718 : 16 =

419419 : 16 =

2626 : 16 = 1 1 : 16 = 0

Ostatak 14 = E 3 10 = A 1

Dakle, 6718(10) zapisan u heksadekadnom sistemu glasi 1A3E(16). �

2.3.2 Prevodenje razlomljenog broja

Pod razlomljenim brojem u sistemu sa osnovom N1, podrazumijevamo broj B oblika

B(N1) = 0, x−1x−2 . . . x−m =

m∑

k=1

x−kN−k1 ,

gdje su x−k (k = 1, 2, ...,m) cifre u datom sistemu, pri cemu je 0 najmanja cifra datogsistema. Pretpostavimo da broj B u sistemu sa osnovom N2 ima zapis

B(N2) = 0, y−1y(−2)y−3 . . . = y−1N−12 + y−2N

−22 + y−3N

−32 + · · · , (6)

gdje su y−i (i ∈ N) cifre ovog sistema. Mnozenjem i lijeve i desne strane u (6) sa N2,vodeci racuna da mnozimo u sistemu sa osnovom N1, dobijamo

B(N1) ·N2 = y−1 + y−2N−12 + y−3N

−22 + · · · ,

i vidimo da se taj proizvod sastoji od cjelobrojnog dijela (y−1), sto je prva cifra s lijevana desno razlomljenog dijela i razlomljenog dijela

B−1 = y−2N−12 + y−3N

−22 + · · · .

Mnozenjem B−1 ponovo sa N2, opet dobijamo cjelobrojni dio (y−2) i razlomljeni dio B−2.Nastavljajuci ovaj postupak dobijamo sve cifre y−i (i ∈ N) razlomljenog broja B(N2).Jednostavnom analizom gornjeg zakljucujemo da za prevodenje razlomljenog dijela brojaiz pozicionog sistema sa osnovom N1 u pozicioni sistem sa osnovom N2 vazi sljedecarekurentna veza

B−i ·N2 = y−(i+1) +B−(i+1) , i = 0, 1, 2, 3, ...

36

Page 14: Nermin Okiˇci´c Elvis Barakovi´c

2.3. Prevodenje zapisa broja iz jednog u drugi brojni sistem

gdje je B−0 = B. Ovaj postupak sematski mozemo prikazati u obliku tabele

Iteracija 1 2 3 · · · q · · ·

Mnozenje B−0 · N2 B

−1 ·N2 B−2 · N2 · · · B

−q · N2 · · ·

Cijeli dio y−1 y

−2 y−3 · · · y

−q · · ·

Proces se zavrsava u konacno mnogo iteracija kada je razlomljeni dio B−q jednak 0.Medutim, kod prevodenja razlomljenog broja iz jednog u drugi pozicioni sistem moze sedogoditi da se gornji algoritam ne zavrsava u konacnom broju iteracija (nemamo konacanbroj cifara u novom sistemu) jer razlomljeni dio B−(i+1) ne mora nikad biti nula. U ovomslucaj proces prekidamo u nekom konacnom broju iteracija, prema zeljenoj tacnosti iliuocenoj periodicnosti zapisa. Jasno je tada da ce vrijediti da ako je neko B−q = 0, tadaje B(N1) = B(N2), ali ako to nije ni za jedno q ∈ N, tada je B(N1) ≈ B(N2).

2.3.2.1 Iz dekadnog u binarni

Primjer 2.14. Dekadni razlomljeni broj 0, 84375(10) prevesti u binarni zapis.

Iteracija 1 2 3 4 5

Mnozenje0, 84375·2 =

1.687500, 68750·2 =

1, 3750, 375 · 2 =

0, 750, 75 · 2 =

1, 50.5 · 2 =

1, 0Cijeli dio 1 1 0 1 1

Dakle, 0, 84375(10) zapisan u binarnom sistemu glasi 0, 11011(2). �

Primjer 2.15. Prevesti 0, 4(10) u binarni zapis.

Iteracija 1 2 3 4 5 6 7

Mnozenje0, 4 ·2 =

0, 80, 8 ·2 =

1, 60, 6 ·2 =

1, 20, 2 ·2 =

0, 40.4 · 2 =

0, 80, 8 ·2 =

1, 60, 6 ·2 =

1, 2Cijeli dio 0 1 1 0 0 1 1

Uocavamo da ce se cifre (posljednja vrsta) novog zapisa periodicno ponavljati, pa proceszaustavljamo na nekoj zeljenoj tacnosti. Dakle,

0, 4(10) = 0, 01100110011...(2) .

2.3.2.2 Iz dekadnog u oktalni

Primjer 2.16. Prevesti broj 0, 03125(10) u oktalni brojni sistem.Mnozenje radimo sa 8, a racunamo u dekadnom brojnom sistemu.

Iteracija 1 2

Mnozenje0, 03125·8 =

0, 250, 25 · 8 =

2, 0Cijeli dio 0 2

Dakle, 0, 03125(10) = 0, 02(8). �

37

Page 15: Nermin Okiˇci´c Elvis Barakovi´c

2.3. Prevodenje zapisa broja iz jednog u drugi brojni sistem

2.3.2.3 Iz dekadnog u heksadekadni

Primjer 2.17. Prevesti broj 0, 8125(10) u heksadekadni brojni sistem.Mnozenje radimo sa 16, a racunamo u dekadnom brojnom sistemu.

Iteracija 1

Mnozenje0, 8125·16 =

13, 0Cijeli dio 13=D

Dakle, 0, 8125(10) = 0, D(16). �

2.3.3 Prevodenje mjesovitog broja

Pod mjesovitim brojem u sistemu sa nekom osnovom N1, podrazumijevamo broj kodkoga su i cjelobrojni, a i decimalni dio razliciti od 0.

B(N1) = xnxn−1 . . . x1x0, x−1x−2 . . . x−m =

n∑

k=−m

xkNk1 ,

gdje su xi (i = −m, ...,−1, 0, 1, ..., n) cifre datog sistema.

Prevodenje broja B iz sistema sa osnovom N1 u novi pozicioni sistem sa osnovom N2

izvodimo tako sto zasebno izvedemo prevodenje cijelog dijela broja kako smo to uradili uSekciji 2.3.1, a zasebno prevodenje razlomljenog dijela broja, kao sto je uradeno u Sekciji2.3.2. Sabiranjem ta dva dijela broja u sistemu N2 dobijamo vrijednost broja B u novomsistemu.

Primjer 2.18. Prevesti broj 67, 875(10) u binarni brojni sistem.

Prvo izvrsimo prevodenje broja 67(10) u binarni sistem.

Iteracija 0 1 2 3 4 5 6

Dijeljenje67 : 2 =

3333 : 2 =

1616 : 2 =

88 : 2 =

44 : 2 =

22 : 2 =

11 : 2 =

0Ostatak 1 1 0 0 0 0 1

Dakle, 67(10) = 1000011(2).Prevodimo sada razlomljeni dio 0, 875(10) u binarni sistem.

Iteracija 0 1 2

Mnozenje0, 875 · 2 =

1.7500, 75 · 2 =

1, 50, 5 · 2 =

1, 0Cijeli dio 1 1 1

Dakle, 0, 875(10) = 0, 111(2).Sabiranjem cjelobrojnog i razlomljenog dijela dobijamo potpun zapis broja te je

67, 875(10) = 1000011, 111(2) .

38

Page 16: Nermin Okiˇci´c Elvis Barakovi´c

2.3. Prevodenje zapisa broja iz jednog u drugi brojni sistem

2.3.4 Prevodenja izmedu binarnog, oktalnog i heksadekadnog sistema

U prthodnom dijelu dali smo nacin prevodenja iz sistema sa osnovom N1 u sistem saosnovom N2, a primjere smo bazirali na prevodenju iz dekadnog u binarni, oktalni iheksadekadni sistem. Ako vrsimo prevodenje iz binarnog, oktalnog ili heksadekadnogu neki drugi sistem naravno da mozemo primjeniti algoritme iznesene u prethodnomdijelu ali tada imamo otezavajucu okolnost sto operacije treba uvijek izvoditi u sistemu(polaznom) sa osnovom N1. Pored ovog univerzalnog algoritma, ovdje cemo pokazati josdva nacina za ova prevodenja.Prvi nacin se svodi na to da ako imamo broj zapisan u binarnom, oktalnom ili

heksadekadnom sistemu, prvo ga prevedemo u dekadni sistem, a zatim taj prevedenibroj, koristeci se prthodnim dijelom (Sekcija 2.3.1 i Sekcija 2.3.2), prevedemo u zeljenisistem.

Primjer 2.19. Prevesti broj 1001101(2) u oktalni sistem.Prvo dati broj prevedimo u dekadni sistem:

1001101(2) = 1 · 26 + 0 · 25 + 0 · 24 + 1 · 23 + 1 · 22 + 0 · 21 + 1 · 20

= 64 + 8 + 4 + 1 = 77(10)

Sada ovaj dekadni zapis prevodimo u oktalni sistem.

Iteracija 0 1 2

Dijeljenje 77 : 8 = 9 9 : 8 = 1 1 : 8 = 0

Ostatak 5 1 1

pa imamo 77(10) = 115(8), odnosno 1001101(2) = 115(8). �

Drugi nacin je mnogo jednostavniji i brzi. On se zasniva na cinjenici da su osnove nasihposmatranih sistema (binarni, oktalni i heksadekadni) u medusobno specijalnim vezama(8 = 23, 16 = 24).

2.3.4.1 Binarno kodiran brojni sistem

Kao sto smo vec vidjeli, brojevi se mogu pisati u raznim brojnim sistemima, tako i ubinarnom brojnom sistemu. To zapisivanje (u biti prevodenje iz jednog u drugi sistem,konkretno u binarni) se moze shvatiti i kao nekakav nacin kodiranja, specijalno kaokodiranje brojcanih vrijednosti, tako sto se svaki binarni broj posmatra kao neka rijecnad lafabetom {0, 1}. Razlika ovakvog kodiranja u odnosu na kodiranje kao procespridruzivanja rijeci nad nekim alfabetom X objektima nekog skupa Y , je ta sto se sadane mogu pridruzivati bilo koje rijeci nad binarnim alfabetom, vec samo one koje sedobijaju po pravilima binarnog brojnog sistema. Dakle, zapis broja u razlicitimpozicionim brojnim sistemima predstavlja specijalan oblik kodiranja.Prevodenje cijelog dijela broja iz nekog brojnog sistema u binarni brojni sistem je kao sto

smo to mogli vidjeti, jednoznacno. Medutim, prevodenje razlomljenog dijela, naprimjeriz dekadnog u binarni, u nekim slucajevima ne moze biti izvrseno apsolutno tacno jer semoze dogoditi (Primjer 2.15) da konacan decimalan razlomak bude periodican razlomak ubinarnom sistemu. Racunari koji rade u binarnom brojnom sistemu izvrsavaju operacijenad brojevima koji su u opstem slucaju sa odredenom tacnoscu prevedeni iz dekadnogsistema. Zbog toga je umjesto prevodenja broja iz jednog brojnog sistema u drugi,pozeljniji nacin binarno kodirati polazni sistem.

39

Page 17: Nermin Okiˇci´c Elvis Barakovi´c

2.3. Prevodenje zapisa broja iz jednog u drugi brojni sistem

Neka je broj B u brojnom sistemu sa osnopom N1 zapisan u obliku

B(N1) = xnxn−1 . . . x1x0, x−1x−2 . . . x−m , (7)

gdje su xi (i = −m, ...,−1, 0, 1, ...n) cifre ovog sistema. Za pozicioni sistem sa osnovomN1 kazemo da je kodiran pozicionim sistemom sa osnovom N2, ako sve cifre broja B(N1)

izrazimo pomocu cifara brojnog sitema sa osnovom N2, tako da je

xk = yk,pyk,p−1 . . . yk,1yk,0 , (8)

gdje su yk,i (i = 0, 1, ..., p) cifre sistema sa osnovom N2. Stavljajuci (8) u (7) dobijamobroj B kodiran ciframa sistema sa osnovom N2

B(N1) = yn,p . . . yn,0yn−1,p . . . yn−1,0 . . . y0,p . . . y0,0, . . . y−m,p . . . y−m,0 (N2/N1) ,

gdje pisanjem izraza (N2/N1) sugerisemo kodiranje sistema sa osnovom N1, ciframasistema sa osnovom N2.

Primjer 2.20. Posmatrajmo broj 123(10). Cifra 1 u dekadnom sistemu se moze prikazatisa 0001 u binarnom sistemu, cifra 2 sa 0010 i cifra 3 sa 0011. Sada zamjenom svakedekadne cifre odgovarajucim binarnim zapisom, to jest

123 = 0001|0010|0011 = 000100100011(2/10)

dobijamo binarno kodiran broj 123(10).

Primjetimo da govorimo o binarno kodiranom, a ne o binarno zapisanom broju. Razlogje taj sto ako bi smo broj 000100100011 uzeli kao binarni zapis, to jest 000100100011(2),njegova vrijednost bi bila

000100100011(2) = 28 + 25 + 21 + 20 = 291(10) ,

a to nije nas polazni dekadni broj. �

Ako je N2 ≥ N1, kodiranje nema prakticnog smisla jer su cifre broja B u sistemu saosnovom N1 ujedno i cifre u sistemu sa osnovom N2, te je broj nepromjenjen. Medutim,kada je N2 < N1 kodiranje ima smisla, a prije samog kodiranja moramo odrediti brojp ∈ N iz (8). Ovaj broj je odreden duzinom zapisa najvece cifre brojnog sistema saosnovom N1 u obliku (8). U prethodnom primjeru izabrano je da je p = 4, i sada vidimoda je to bilo ispravno jer 9(10) (najveca cifra dekadnog sistema) se zapisuje sa 1001(2).U kompjuterskoj nauci posebno je interesantan slucaj kodiranja kada su osnove

sistema vezane relacijom N1 = Ns2 za neko s ∈ N \ {1}. Naime tada vrijedi sljedece

tvrdenje.

Teorem 2.3.1. Neka su zadana dva poziciona brojna sistema sa osnovama N1 i N2,tako da je N1 = Ns

2 (s ∈ N\ {1}). Brojcana vrijednost broja B zapisanog u sistemu saosnovom N2 ima isti zapis u sistemu sa osnovom N1 kodiranim sistemom sa osnovomN2, to jest vrijedi

B(N2) = B(N2/N1) .

40

Page 18: Nermin Okiˇci´c Elvis Barakovi´c

2.3. Prevodenje zapisa broja iz jednog u drugi brojni sistem

Dokaz : Neka je zapis broja B u sistemu sa osnovom N1 dat sa

B(N1) = xnxn−1 . . . x1x=, x−1x−2 . . . x−m , (9)

sto prema definiciji brojnog sistema znaci da vrijedi

B(N1) =n∑

k=−m

xkNk1 . (10)

Svaku cifru sistema sa osnovom N1 zapisimo u sistemu sa osnovom N2,

xk = yk,pyk,p−1 . . . yk,1yk,0 , k = −m, ..., 0, 1, ..., n , (11)

gdje su yi,j (i ∈ {−m, ..., 0, 1, ..., n} i j = 0, 1, ..., , p) cifre brojnog sistema sa osnovomN2. Zapisimo (11) u formi sume

xi =

p∑

j=0

yi,jNj2 . (12)

Vrijednost broja B u sistemu sa osnovom N1, kodiranom sistemom sa osnovom N2,zapisujemo tako da u zapisu (9) svaku cifru zamjenimo odgovarajucim zapismo (11), tedobijamo zapis

B(N1) = yn,p . . . yn,0yn−1,p . . . yn−1,0 . . . y0,p . . . y0,0, . . . y−m,p . . . y−m,0 (N2/N1) . (13)

Vrijednost broja B u sistemu sa osnovom N1 prevodi se u sistem sa osnovom N2 akou (10) cifre brojnog sistema sa osnovom N1 zamijenimo sa sumama (12) i osnovu N1

izrazimo pomocu osnove N2. Tako dobijamo

B(N2) =

n∑

k=−m

p∑

j=0

yk,jNj2

Nks2 . (14)

Sredivanjem ovog izraza po stepenima N2 imamo

B(N2) = yn,pNns+p2 + · · ·+ yn,0N

ns2 + yn−1,pN

(n−1)s+p2 + · · ·+ yn−1,0N

(n−1)s2

· · ·+ y−m,pN−ms+p2 + · · ·+ y−m,0N

−ms2 . (15)

Vrijednost broja p se moze izraziti preko vrijednosti broja s, ako se ima u vidu da senajveca cifra u sistemu sa osnovomN1 treba kodirati sa p+1 cifrom u sistemu sa osnovomN2. Najveca cifra u sistemu sa osnovom N1 jednaka je N1 − 1 = Ns

2 − 1 jer je N1 = Ns2 .

Kako je prevodenje broja Ns2 u sistem sa osnovom N2 jednostavno i prikazano je u tabeli

Iteracija 0 1 · · · s − 1 s

DijeljenjeNs

2 : N2 =

Ns−12

Ns−12 : N2 =

Ns−22

· · ·N2 : N2 =

11 : N2 =

0

Ostatak 0 0 · · · 0 1

41

Page 19: Nermin Okiˇci´c Elvis Barakovi´c

2.3. Prevodenje zapisa broja iz jednog u drugi brojni sistem

Vidimo da vrijediNs

2 = 10 . . .0︸ ︷︷ ︸

s+1

(N2) .

Sada imamo da vrijedi

N1 − 1 (N1) = Ns2 − 1 (N1) = cc . . . c

︸ ︷︷ ︸

s

(N2) ,

gdje je sa c oznacena najveca cifra u sistemu sa osnovom N2 (njena vrijednost je N2−1).Iz ovoga vidimo da se najveca cifra u sistemu N1 kodira sa p + 1 cifrom u sistemu saosnovom N2, a to je s cifara. Dakle, p + 1 = s, to jest p = s − 1. Uvodeci ovo u (15) isredujuci po velicini eksponenta osnove N2 dobijamo,

B(N2) = yn,pN(n+1)s−12 + · · ·+ yn,0N

ns2 + yn−1,pN

ns−12 + · · ·+ yn−1,0N

(n−1)s2

· · ·+ y−m,pN(1−m)s−12 + · · ·+ y−m,0N

−ms2 ,

ili izrazeno u obliku niza cifara

B(N1) = yn,p . . . yn,0yn−1,p . . . yn−1,0 . . . y−m,p . . . y−m,0 . (16)

Poredeci (13) i (16) zakljucujemo identicnost zapisa, cime je teorem dokazan. ✷

U narednim primjerima za prevodenje zapisa broja iz jednog u drugi sistem koristimose rezultatom Teorema 2.3.1

Iz binarnog u oktalni ili heksadekadni

Primjer 2.21. Prevesti broj 1001101(2) u oktalni sistem.Kako je 8 = 23, dovoljno ce biti cifre broja zapisanog u binarnom sistemu grupisati uskevence od po tri, pocev od nulte pozicije, a zatim te sekvence prevedemo u oktalni zapis.U slucaju da u nekoj sekvenci (a to je eventualno posljednja) nemamo tri cifre, vrsimonadopunjavanje sa nulama.

1001101(2) = 1| 001| 101 =

= 001︸︷︷︸

1

| 001︸︷︷︸

1

| 101︸︷︷︸

5

= 115(8)

Prevesti broj 110100110, 111001(2) u oktalni zapis.

110100110, 111001(2) = 110| 100| 110|, 111| 001 =

= 110︸︷︷︸

6

| 100︸︷︷︸

4

| 110︸︷︷︸

6

| , 111︸︷︷︸

7

| 001︸︷︷︸

1

= 646, 71(8)

Primjer 2.22. Prevesti broj 110100110, 111001(2) u heksadekadni zapis.Obzirom da je 16 = 24, u binarnom zapisu vrsimo grupisanje od po cetiri cifre uz dogovoro dopunjavanju kada u nekoj sekvenci ima manje od cetiri cifre. Pretvaranjem takvihsekvenci u heksadekadni zapis dobijamo prevedeni broj u novom sistemu.

110100110, 111001(2) = 1| 1010| 0110|, 1110| 01 =

= 0001︸ ︷︷ ︸

1

| 1010︸︷︷︸

A

| 0110︸︷︷︸

6

|, 1110︸︷︷︸

E

| 0100︸ ︷︷ ︸

4

= 1A6, E4(10)

42

Page 20: Nermin Okiˇci´c Elvis Barakovi´c

2.4. Racunske operacije

Iz oktalnog ili heksadekadnog u binarni

Postupak je ovdje obrnut postupku pretvaranja iz binarnog u oktalni ili heksadekadni.Svaku cifru oktalnog ili heksadekadnog zapisa pretvaramo u binarni zapis, vodeci racunada li smo u oktalnom sistemu, tada tu cifru pretvaramo u trocifreni binarni zapis ili smou heksadekadnom sistemu, tada svaku cifru pretvaramo u cetverocifreni binarni zapis.

Primjer 2.23. Prevesti broj 1507, 2(8) u binarni zapis.

1507, 2(8) = 001| 101| 000| 111|, 010 = 001101000111, 010(2) .

Naravno da suvisne nule (ispred cijelobrojnog dijela i iza razlomljenog dijela) mozemoodbaciti. Tako imamo 1507, 2(8) = 1101000111, 01(2). �

Primjer 2.24. Prevesti broj A13D, 05(16) u binarni zapis.Na potuno analogan nacin gornjem primjeru, svaku cifu broja u heksadekadnom zapisu,zapisujemo u binarnom zapisu, stim da zapis vrsimo na cetiri cifre. Spajanjem binarnozapisanih heksadekadnih cifara dobija se broj u binarnom zapisu.

A13D, 05(16) = 1010| 0001| 0011| 1101|, 0000| 0101 = 1010000100111101, 00000101(2) .

Iz oktalnog u heksadekadni i obratno

Za prelaz iz oktalnog u heksadekadni ili i obratno, iz heksadekadnog u oktalni, najbrzi inajjednostavniji nacin je polazni broj zapisati u binarnom zapisu, a zatim iz binarnogpreci u trazeni zapis kako smo to uradili u Paragrafu Iz binarnog u oktalni ili

heksadekadni.

Primjer 2.25. Prevesti broj 7052, 13(8) u heksadekadni zapis.

7052, 13(8) = 111|000|101|010|, 001|011 = 1110|0010|1010|, 0010|1100 = E2A, 2C(16) .

Primjer 2.26. Prevesti broj ABCD,A(16) u oktalni zapis.

ABCD,A(16) = 1010| 1011| 1100| 1101|, 1010

= 001| 010| 101| 111| 001| 101|, 101| 100 = 125715, 54(8) .

2.4 Racunske operacije

Kada racunar izvodi racunske operacije to se dogada u binarnom brojnom sistemu.Naravno da se ocekivanim postavlja pitanje kako se to izvodi u sitemima sa nekomdrugom osnovom osim u dekadnom sistemu, u kome smo uobicajeno naucili raditiracunske operacije. Pod racunskim operacijama ovdje podrazumijevamo cetiri osnovne:sabiranje, oduzimanje, mnozenje i dijeljenje.

43

Page 21: Nermin Okiˇci´c Elvis Barakovi´c

2.4. Racunske operacije

2.4.1 Sabiranje

Za sabiranje brojeva zapisanih u bilo kom brojnom sistemu osnova je poznavanje tablicesabiranja cifara tog sistema. Prilikom sabiranja cifara u nekom brojnom sistemu dolazido takozvanog ”prenosa” i to predstavlja fundamentalnu stavku za sabiranje. Naprimjer,u dekadnom sistemu kada sabiramo 8 + 5 rezultat je 13, medutim to izrazavamo sa timeda je rezltat 3, a prenosi se 1. Ako saberemo brojeve 7(8) i 1(8) dobijamo broj 10(8), a toopet znaci da je zbir 7 i 1 u oktalnom sistemu jednak 0 i prenos je 1. Sabiranje brojeva ubilo kom pozicionom sistemu se izvodi tako sto se sabiraju cifre iste tezine (istih pozicijau zapisu broja), a pojava ”prenosa” znaci da se zbiru cifara naredne (vece) tezine dodajejos i ”prenos”, a on je uvijek 1.

Primjer 2.27. Sabrati brojeve 236(10) i 387(10). �

102 101 100

↓ ↓ ↓+12

+13 6

3 8 76 2 3

Kao sto smo to rekli, za sabiranje u bilo kom sistemu dovoljno je poznavati sabiranjecifara tog sistema. Sabiranje cifara u binarnom i oktalnom brojnom sistemu dato jenarednom tabelom.

(a)

+ 0 1

0 0 11 1 10

(b)

+ 0 1 2 3 4 5 6 7

0 0 1 2 3 4 5 6 71 1 2 3 4 5 6 7 102 2 3 4 5 6 7 10 113 3 4 5 6 7 10 11 124 4 5 6 7 10 11 12 135 5 6 7 10 11 12 13 146 6 7 10 11 12 13 14 157 7 10 11 12 13 14 15 16

Tablica 2.5: (a) Sabiranje cifara u binarnom sistemu i u oktalnom sistemu (b).

Iz tabele (a) vidimo da je 1 + 1 = 10. Ovo interpretiramo na nacin da je jedan plusjedan ”jednako” 0 (desna cifra) i prenos je 1 (lijeva cifra). Slicno iz tabele (b) vidimo daje 5 + 5 = 12, to jest 5 plus 5 je 2 i prenos 1.

Primjer 2.28. Sabrati brojeve 1101(2) i 111(2).

23 22 21 20

↓ ↓ ↓ ↓+11

+11

+10 1

1 1 11 0 1 0 0

44

Page 22: Nermin Okiˇci´c Elvis Barakovi´c

2.4. Racunske operacije

Dakle, 1101(2) + 111(2) = 10100(2). �

Primjer 2.29. Sabrati brojeve 32(5) i 33(5).

52 51 50

↓ ↓ ↓+13 23 3

1 2 0

Dakle, 32(5) + 33(5) = 120(5). �

+ 0 1 2 3 4

0 0 1 2 3 41 1 2 3 4 102 2 3 4 10 113 3 4 10 11 124 4 10 11 12 13

Tablica 2.6: Sabiranje cifara u sistemu sa osnovom 5.

2.4.2 Oduzimanje

Za racunsku operaciju oduzimanja, kao i kod sabiranja, osnovno je poznavanje tabliceoduzimanja cifara sistema u kome radimo. Prilikom oduzimanja brojeva u nekompozicionom sistemu oduzimamo cifre na istim pozicijama (iste tezine) u zapisu broja.Tada moze doci do pojave ”posudivanja”. Naime kad od cifre koja je manjaoduzimamo vecu cifru, mi tada posudujemo 1 od cifre na prvoj vecoj tezini od one nakojoj oduzimamo. Pri tome moramo voditi racuna da uvijek posudujemo onoliko kolikaje baza tog sistema. Naprimjer, kada u dekadnom sistemu posudujemo 1 sa cifre vecetezine, mi tada na cifru manje tezine dodajemo 10.

Primjer 2.30. Od broja 452(10) oduzeti broj 168(10).

102 101 100

↓ ↓ ↓−14

−15 2

1 6 82 8 4

Dakle, 452(10) − 168(10) = 284(10). �

Rezultat u gornjoj tabeli 0 − 1 = 01 interpretiramo na sljedeci nacin: 0 minus 1 nemoze, pa sa pozicije vece tezine pozajmljujemo 1 (dakle, cifra sa koje pozajmljujemo seumanjuje za jedan, sto simbolizuje 0 u rezulatu 01), a na poziciji na kojoj oduzimamododajemo 2. Tako sada na poziciji na kojoj oduzimamo imamo 2 minus 1 i to ”jednako”1, a to je cifra 1 u rezultatu 01.

45

Page 23: Nermin Okiˇci´c Elvis Barakovi´c

2.4. Racunske operacije

− 0 1

0 0 011 1 0

Tablica 2.7: Oduzimanje cifara u binarnom sistemu.

Primjer 2.31. Oduzeti brojeve 1101(2) i 111(2).

23 22 21 20

↓ ↓ ↓ ↓−11

−11 0 11 1 1

0 1 1 0

Dakle, 1101(2) − 111(2) = 110(2), uz dogovor o nepisanju nepotrebnih nula. �

Primjer 2.32. Od broja 468(12) oduzeti broj 295(12).

122 121 120

↓ ↓ ↓−14 6 82 9 51 9 3

Kod oduzimanja cifre 9 od cifre 6 neophodno je pozajmljivanje jedinicie sa cifre vecetezine (4). Pri tome stvarno pozajmljivanje je osnova sistema, tojest 12, te imamo 6 +12 = 18 u bazi 10. Zatim je 18−9 = 9 u bazi 10 ali i u bazi 12. Od cifre 4 smo ”posudili”jedinicu, te imamo 3− 2 = 1 za posljednu cifru. Dakle, 468(12) − 295(12) = 193(12). �

2.4.3 Mnozenje

I za mnozenje brojeva u pozicionom sistemu neophodno nam je poznavati tablicumnozenja cifara tog sistema. Mnozenje u bilo kom sistemu vrsimo sa potpisivanjem kaou dekadnom sistemu, vodeci racuna da kod sabiranja odgovarajucih cifara pojedinacnihmnozenja koristimo sabiranje u datom sistemu.

Primjer 2.33. Pomnoziti brojeve 123(10) i 23(10).

1 2 3 · 232 4 6

3 6 92 8 2 9

U gornjem primjeru smo se sluzili tablicom mnozenja u dekadnom sistemu(podrazumijevamo da je znamo), a za sljedeci primjer posluzit cemo se tabelom (a) izTablice 2.8.

46

Page 24: Nermin Okiˇci´c Elvis Barakovi´c

2.4. Racunske operacije

Primjer 2.34. Pomnoziti brojeve 10111(2) i 101(2).

1 0 1 1 1 · 1011 0 1 1 1

0 0 0 0 01 0 1 1 1

1 1 1 0 0 1 1

Dakle, 10111(2) · 101(2) = 1110011(2). �

(a)

· 0 1

0 0 01 0 1

(b)

· 0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0 01 0 1 2 3 4 5 6 72 0 2 4 6 10 12 14 163 0 3 6 11 14 17 22 254 0 4 10 14 20 24 30 345 0 1 12 17 24 31 36 436 0 6 14 22 30 36 44 527 0 7 16 25 34 43 52 61

Tablica 2.8: Mnozenje cifara u binarnom (a) i u oktalnom sistemu (b).

Koristeci se tabelom (b) Tablice 2.8, mnozenje u oktalnom sistemu demonstriramosljedecim primjerom.

Primjer 2.35. Pomnoziti brojeve 4167(8) i 2503(8).

4 1 6 7 · 25031 0 3 5 6

2 5 1 2 30 0 0 0 0

1 4 5 4 51 3 1 0 5 0 4 5

Primjer 2.36. Pomnoziti brojeve 43(7) i 25(7).

Prvo konstatujmo sljedece proizvode cifara u sistemu sa osnovom 7:5 · 3 = 15(10) = 2 · 71 + 1 · 70 = 21(7). Pri tome zapisujemo 1, a prenosimo 2.5 · 4 = 20(10) = 2 · 71 + 6 · 70 = 26(7). 6 pisemo, a prenosimo 2.2 · 3 = 6(10) = 6(7).2 · 4 = 8(10) = 1 · 71 + 1 · 70 = 11(7). Pisemo 1, prenosimo 1.Sada imamo,

47

Page 25: Nermin Okiˇci´c Elvis Barakovi´c

2.5. Zapis brojeva u brojnom sistemu

4 3 · 251 1 6

3 1 11 5 0 1

Dakle, 43(7) · 25(7) = 1501(7). �

2.4.4 Dijeljenje

Dijeljenje brojeva u bilo kom sistemu izvodimo u potpunoj analogiji kao dijeljenje udekadnom brojnom sistemu, vodeci jedino racuna da kod pojavljivanja mnozenja ioduzimanja, operacije izvodimo u datom sistemu.

Primjer 2.37. U binarnom sistemu podjeliti brojeve 110011(2) i 110(2).

1 1 0 0 1 1 : 110= 1000, 11 1 0

0 00 10 1 10 1 1 0

1 1 00

Primjer 2.38. Izracunati: 143(5) : 2(5)!Na pitanje ”Koliko se puta 2(5) sadrzi u 14(5)”, odgovor je cetiri puta jer je2(5) · 4(5) = 13(5) (napraviti tablicu mnozenja cifara u sistemu sa osnovom 5). Slicnapitanja i odgovore dajemo uvijek u sistemu sa osnovom 5.

1 4 3 : 2 = 441 3

1 31 3

0

Dakle, 143(5) : 2(5) = 44(5). �

2.5 Zapis brojeva u brojnom sistemu

U radu sa brojevima osim njihove brojcane vrijednosti pojavljuje se i znak broja. Ukolikozapis broja sadrzi i znak kazemo da je to oznacen broj, u suprotnom kazemo da je toneoznacen broj. Uobicajeno neoznacen broj B sa n cifara za cijeli dio i m cifara zarazlomljeni dio zapisujemo

B = xn−1 . . . x1x0, x−1 . . . x−m .

48

Page 26: Nermin Okiˇci´c Elvis Barakovi´c

2.5. Zapis brojeva u brojnom sistemu

Da bi omogucili zapis i oznacenih brojeva uvode se simboli za pozitivne i negativnebrojeve koje dodajemo na n+ 1 poziciju u zapisu broja

B = xnxn−1 . . . x1x0, x−1 . . . x−m ,

gdje su xi (i = −m, . . . ,−1, 0, 1, . . . , n− 1) cifre pozicionog sistema, a xn znak broja.U racunarstvu se korisate tri nacina za zapis oznacenih brojeva: znak i apsulutnavrijednost, nepotpuni komplement i potpuni komplement. Ukoliko radimo u sistemu saosnovom N , nepotpuni komplement nazivamo jos i N − 1-vi komplement, a potpunikomplement nazivamo N -ti komplement.

2.5.1 Znak i apsolutna vrijednost

Uobicajen nacin pisanja brojeva (u svakodnevnoj upotrebi) sastoji se od pisanja znakabroja i njegove apsolutne vrijednosti. To podrazumijeva pisanje znaka ”−” ispredapsolutne vrijednosti broja za negativne brojeve, odnosno pisanje znaka ”+” zapozitivne brojeve (ako znak broja nije naveden, dogovorno se podrazumijeva znak”+”). Dakle,

xn =

{+ ; B ≥ 0− ; B ≤ 0

Kao manu ovakvog zapisa imamo uvodenje dva nova simbola za zapis brijeva. Da bise izbjeglo uvodenje novih simbola, za znak broja se mogu koristiti vec postojece cifrebrojnog sistema, na sljedeci nacin,

xn =

{0 ; B ≥ 0

N − 1 ; B ≤ 0

gdje su 0 najmanja cifra, a N − 1 najveca cifra posmatranog brojnog sistema. Broj Bzapisan u formi znaka i apsolutne vrijednosti oznacavat cemo sa (B)ZA i ima vrijednost

(B)ZA =

{0 ·Nn+1 + |B| ; B ≥ 0

(N − 1) ·Nn+1 + |B| ; B ≤ 0

Primjer 2.39. Predstaviti brojeve +5 i −5 u binarnom brojnom sistemu, kao oznacenebrojeve sa znakom i apsolutnom vrijednosti.Zapis neoznacenog broja 5 u binarnom sistemu predstavljen sa sedam cifara je 5(10) =0000101(2). Dodavanjem osme cifre s lijeve strane (na poziciji najvece tezine) odredujemoznak broja.

(+5)ZA = 0 0000101︸ ︷︷ ︸

aps. vr.

(−5)ZA = 1 0000101︸ ︷︷ ︸

aps. vr.

Primjer 2.40. Broj B = −21(10) predstaviti u dekadnom i binarnom sistemu kaooznacen broj (B)ZA.U dekadnom sistemu imamo (B)ZA = 921(10)ZA.

Kako je B = −10101(2), to je onda (B)ZA = 110101(2)ZA. �

49

Page 27: Nermin Okiˇci´c Elvis Barakovi´c

2.5. Zapis brojeva u brojnom sistemu

Ovakav oblik zapisivanja oznacenih brojeva dozvoljava dva zapisa za broj 0, naime i +0i −0 su dozvoljeni. U binarnom sistemu sa zapisom u 8 bita,

(+0)ZA = 00000000

(−0)ZA = 10000000

Kao sto se moze naslutiti, ovakav nacin zapisivanja brojeva dovodit ce do komplikacije uizvrsavanju aritmetickih operacija nad brojevima. Naime, prije svake operacije prvo bise morali analizirati znaci brojeva koji ucestvuju u toj operaciji.

2.5.2 Nepotpuni komplement broja

Nas cilj je napraviti takvo predstavljanje oznacenih brojeva tako da racunske operacijenad njima izvodimo na isti nacin kao i sa neoznacenim brojevima. Jedan od tih nacina jenepotpuni komplement broja. Nepotpuni ili (N − 1)-vi komplement neoznacenog brojau brojnom sistemu sa osnovom N , zasniva se na dopuni svake cifre u zapisu broja donajvece cifre (do cifre N − 1) datog sistema. Uvedemo li oznaku da za cifru xi njenadopuna do najvece cifre bude xi, tada vrijedi

xi = N − 1− xi .

Za neoznacen broj B = xn−1 · · ·x1x0 (N), njegov nepotpuni komplement je tada B =xn−1 · · ·x1 x0.

Primjer 2.41. Odrediti nepotpuni komplement broja B = 1011000(2).

Komplementiranjem svake cifre broja B u binarnom sistemu dobijamo B = 0100111. �

Primjer 2.42. Odrediti nepotpuni komplement broja B = 327(10).

Komplementiranjem svake cifre broja B u dekadnom sistemu dobijamo B = 672. �

Teorem 2.5.1. Neka je zadat neoznacen broj B u sistemu sa osnovom N , zapisan san cifara. Tada je nepotpuni komplement dat sa

B = Nn − 1−B(N) . (17)

Dokaz : Neka je zadat neoznacen broj B(N) = xn−1 . . . x1x0. Posmatrajmo izraz Nn −1 = Nn − 1n. Koristeci se poznatom formulom

xn+1 − yn+1 = (x− y)

n∑

k=0

xkyn−k ,

izvodimo sljedeci racun.

Nn − 1n = (N − 1)

n−1∑

k=0

Nk1n−k

= (N − 1)

n−1∑

k=0

Nk

= (N − 1)(Nn−1 +Nn−2 + · · ·+N1 +N0)

= (N − 1)Nn−1 + (N − 1)Nn−2 + · · ·+ (N − 1)N1 + (N − 1)N0 .

50

Page 28: Nermin Okiˇci´c Elvis Barakovi´c

2.5. Zapis brojeva u brojnom sistemu

Primjetimo da izraz (N−1)Nn−1+(N−1)Nn−2+· · ·+(N−1)N1+(N−1)N0 predstavljan-cifreni broj u sistemu sa osnovom N i da su mu sve cifre jednake N − 1. Kako je i brojB(N) zapisan sa n cifara u sistemu sa osnovom N , jasno je da ce broj Nn − 1 − B(N)

predstavljati takode n cifreni broj u sistemu sa osnovom N .

Nn − 1−B(N) = (N − 1)Nn−1 + · · ·+ (N − 1)N1 + (N − 1)N0

−(xn−1N

n−1 + · · ·+ x1N1 + x0N

0)

= (N − 1− xn−1)Nn−1 + · · ·+ (N − 1− x1)N

1 + (N − 1− x0)N0 ,

a ovo je upravo B. ✷

Primjer 2.43. Odrediti nepotpuni komplement broja B = 1011000(2).

B = 27 − 1− 1011000(2)

= 128(10) − 1− 1011000(2)

= 127(10) − 1011000(2)

= 1111111(2) − 1011000(2)

= 0100111(2) .

Primjer 2.44. Odrediti nepotpuni komplement broja B = 327(10).

B = 103 − 1− 327(10)

= 1000− 1− 327

= 999− 327

= 672(10) .

Primjer 2.45. Odrediti nepotpuni komplement broja B = 172(8).

B = 83(10) − 1− 172(8)

= 512(10) − 1− 172(8)

= 511(10) − 122(10)

= 389(10)

= 605(8) .

Primjer 2.46. Odrediti nepotpuni komplement broja B = F6(16).

51

Page 29: Nermin Okiˇci´c Elvis Barakovi´c

2.5. Zapis brojeva u brojnom sistemu

B = 162(10) − 1− F6(16)

= 256(10) − 1− F6(16)

= 255(10) − 249(10)

= 6(10)

= 6(16) .

Neka je zadat broj B u brojnom sistemu sa osnovom N , ciju apsolutnu vrijednostmozemo zapisati sa n cifara. Znak broja cemo notirati cifrom

xn+1 =

{0 ; B ≥ 0

N − 1 ; B ≤ 0

gdje su 0 najmanja cifra, a N −1 najveca cifra posmatranog brojnog sistema. Na osnovurecenog broj B zapisan u formi nepotpunog komplementa, (B)NK ima oblik

(B)NK =

{0 ·Nn+1 + |B| ; B ≥ 0Nn+1 − |B| − 1 ; B ≤ 0

Opisno govoreci, broj u nepotpunom komplementu zapisujemo na sljedeci nacim:

• cifru sa najvecom tezinom koristimo za zapis znaka broja,

• za pozitivne brojeve ostale cifre predstavljaju apsolutnu vrijednost broja,

• za negativne brojeve ostale cifre se dobiju kada se u zapisu apsolutne vrednostibroja svaka cifra zamijeni njenim komplementom.

Primjer 2.47. Predstaviti brojeve +5 i −5 u binarnom brojnom sistemu, kao oznacenebrojeve u nepotpunom komplementu.Zapis neoznacenog broja +5 u binarnom sistemu prdstavljen sa sedam cifara je 5(10) =0000101(2). Dodavanjem osme cifre (nule) s lijeve strane (na poziciji najvece tezine)odredujemo oznaceni broj.

(+5)NK = 0 0000101︸ ︷︷ ︸

aps. vr.

Komplementiranjem svake cifre oznacenog broja +5 dobijamo zapis broja −5 unepotpunom komplementu.

(−5)NK = 1 1111010︸ ︷︷ ︸

komplementi

Primjer 2.48. Broj (B)NK = 10100, 10 u binarnom sistemu predstavlja oznacen binarnibroj −1011, 01. �

52

Page 30: Nermin Okiˇci´c Elvis Barakovi´c

2.5. Zapis brojeva u brojnom sistemu

Primjer 2.49. Dekadni broj B = −739, 014 napisati u obliku nepotpunog komplementa.Kako je u pitanju negativan broj, znak broja cemo oznaciti cifrom 9 na mjestu najvecetezine, a ostale cifre apsolutne vrijednosti broja B komplementiramo.

(B)NK = 9260, 985 .

Kao sto se vidi, nula ce i u ovom obliku imati dva zapisa sto predstavlja glavninedostatak ovog zapisa.

(+0)NK = 00000000 ,

(−0)NK = 11111111 .

2.5.3 Potpuni komplement broja

Za broj B zadat svojim zapisom u sistemu sa osnovom N njegov potpuni komplementoznacavamo sa (B)PK i dobijamo sa

(B)PK = Nn −B(N) , (18)

gdje je n broj cifara u zapisu broja B.Ako radimo u binarnom sistemu, tada se ovaj komplement zove drugi komplement.

Drugi komplement je najcesce koristeni format za zapis oznacenih brojeva u digitalnimsistemima.

Primjer 2.50. Zapisati broj B = 01101101(2) u potpunom komplementu.

(B)PK = 28 − 01101101(2)

= 100000000(2) − 01101101(2)

= 10010011(2) .

Primjetimo u gornjem primjeru jednu specificnost.

0 1 1 0 1 1 0 1 B(2)

+ 1 0 0 1 0 0 1 1 (B)PK

1 0 0 0 0 0 0 0 0↑

prenos

Naime, ako zanemarimo prenos koji se pojavljuje u datom zbiru, cime se zbir zapisujesa jednom cifrom vise od sabiraka, vrijedi

(B)PK +B(2) = 0(2) .

Iz ovoga zakljucujemo da broj (B)PK mozemo koristiti za reprezentaciju broja −B(2).

Sta vise vrijedi generalno pravilo

53

Page 31: Nermin Okiˇci´c Elvis Barakovi´c

2.5. Zapis brojeva u brojnom sistemu

Teorem 2.5.2. Neka je dat broj B u sistemu sa osnovom N . Tada vrijedi,

(B)PK +B(N) = 0(N) .

Dokaz : Koristeci relaciju (18) imamo

(B)PK +B(N) = Nn −B(N) +B(N) = Nn .

Kako je N(N) = 10, onda je broj Nn zapisan u sistemu sa osnovom N dat sa

N(N) 00 · · ·00︸ ︷︷ ︸

n−1 cifara

= 1 000 · · ·00︸ ︷︷ ︸

n cifara

,

a zanemarujuci cifru najvece tezine (n+ 1-vu cifru), dobijeni broj zapisan sa n cifara jeupravo 0(N). ✷

Sljedecim primjerom uocavamo jos jedno pravilo.

Primjer 2.51. Zadat je broj u potpunom komplementu (B)PK = 00101100(2). Odreditinjegov potpuni komplement.

((B)PK)PK = 28 − 00101100(2)

= 100000000(2) − 00101100(2)

= 11010100(2) .

Kako je potpuni komplement broja 11010100(2) upravo nas (B)PK , zakljucujemo da je((B)PK)PK = B(2). �

I ovu osobinu potpunog komplementa iskazujemo tvrdnjom.

Teorem 2.5.3. Neka je dat broj B u sistemu sa osnovom N . Tada vrijedi,

((B)PK)PK = B(N) .

Dokaz : Neka je dat broj B u sistemu sa osnovom N . Kako je (B)PK = −B(N), tadaimamo

((B)PK)PK =(−B(N)

)

PK

= −(−B(N))

= B(N) .

Iz (17) i (18) ocigledna je sljedeca veza potpunog i nepotpunog komplementa.

Teorem 2.5.4. Neka je dat broj B(N). Tada vrijedi

(B)PK = (B)NK + 1 .

54

Page 32: Nermin Okiˇci´c Elvis Barakovi´c

2.5. Zapis brojeva u brojnom sistemu

Odredivanje potpunog komplementa je diktirano brojem cifara koje koristimo za zapisbroja. Ako zelimo odrediti potpuni komplement broja B = 10110(2), to prema gornjemradimo na sljedeci nacin.

(B)PK = 25 − 10110(2) = 01010(2) .

Medutim, ako zelimo da odredimo potpuni komplement na osam cifara, tada imamo

(B)PK = 28 − 10110(2) = 11101010(2) .

Za odredivanje potpunog komplementa u do sada izlozenom, posluzili smo sealgoritmom:

Algoritam 1.

Korak 1: Svaku cifru xi broja B, zapisanog u sistemu sa osnovom N , zamjenimo sa cifromxi = N − 1− xi (Odredivanje nepotpunog komplementa).

Korak 2: Broju dobijenom u Koraku 1 dodajmo jedinicu na poziciji najmanje tezine.

U biti ovaj algoritam se realizovao racunanjem (B)PK = Nn − B(N). Medutim,mozemo koristiti i nesto povoljniji algoritam.

Algoritam 2.

Korak 1: Kopirati sve cifre broja B pocevsi od cifre najmanje tezine, prema ciframa vecetezine dok ne dodemo do prve cifre razlicite od 0. Neka je to cifra xk.

Korak 2: Cifru xk zamjeniti sa cifrom x′k = N − xk. Sve preostale cifre xi vece tezine od

xk zamjeniti ciframa xi = N − 1− xi.

Primjer 2.52. Odrediti potpuni komplement broja B = 01100101(2).

B = 0 1 1 0 0 1 0 1

l prvi nenula element

(B)(PK) = 1 0 0 1 1 0 1 1

Primjer 2.53. Odrediti potpuni komplement broja B = 11010100(2).

55

Page 33: Nermin Okiˇci´c Elvis Barakovi´c

2.5. Zapis brojeva u brojnom sistemu

B = 1 1 0 1 0 1 0 0

l prvi nenula element

(B)(PK) = 0 0 1 0 1 1 0 0

Primjer 2.54. Odrediti potpuni komplement broja B = 10110(2) na osam cifara.prvo dopunimo petocifreni zapis naseg broja do osmocifrenog zapisa, dodajuci tri nule salijeve strane. A sada primjenimo algoritam.

B = 0 0 0 1 0 1 1 0

l prvi nenula element

(B)(PK) = 1 1 1 0 1 0 1 0

Primjer 2.55. Odrediti potpuni komplement broja B = 316780(10).

B = 3 1 6 7 8 0

l prvi nenula element

(B)(PK) = 6 8 3 2 2 0

Algoritam 2 je bolji za ”rucno” odredivanje potpunog komplementa, ali za ”masinsku”implementaciju bolji je Algoritam 1 jer u sebi ne sadrzi nikakvo odlucivanje.

2.5.3.1 Brojni sistem potpunog komplementa

Svi primjeri u prethodnoj sekciji su bili formiranje potpunog komplementa ali za pozitivnebrojeve. Kao sto smo to mogli vidjeti, potpuni komplement nam je mogao posluziti zapredstavljanje i negativnih brojeva (Teorem 2.5.2).U brojnom sistemu potpunog komplementa pozitivne brojeve predstavljamo sa njihovomapsolutnom vrijednoscu i vodecom 0 (na mjestu najvece tezine) za oznacavanje znakatog broja. Negativne brojeve reprezentujemo pomocu potpunog komplementa apsolutnevrijednosti datog broja sa vodecom jedinicom na mjestu najvece tezine.Broj u brojnom sistemu potpunog ili N -tog komplementa sa osnovom N dobijamo na

sljedeci nacin. Krajnja lijeva cifra (cifra sa najvecom tezinom) predstavlja znak broja, aostale cifre predstavljaju vrijednost broja i to:

56

Page 34: Nermin Okiˇci´c Elvis Barakovi´c

2.5. Zapis brojeva u brojnom sistemu

• za pozitivne brojeve, kao apsolutna vrijednost broja,

• Za negativne, kao broj koji se dobija kada se na zapis broja u nepotpunomkomplementu doda jedinica na mjesto najmanje tezine.

Broj B zapisan u notaciji potpunog komplementa je

(B)PK =

{0 ·Nn+1 + |B| ; B ≥ 0Nn+1 − |B| ; B < 0

Treba odma primjetiti da ce nula u zapisu potpunog komplementa imati jedinstven zapis.Naime,

(+0)PK = 00000000 .

Napravimo nepotpun komplement,

11111111 .

Dodavanjem jedinice na poziciju najmanje tezine (krajnja desno cifra) dobijamo

(−0)PK = 00000000 .

Primjer 2.56. Zadat je broj B = 1100101(2). Odredit repezentaciju brojeva +B i −B ubrojnom sistemu potpunog komplementa za n = 8.Prema definisanom, pozitivnom broju dodajemo vodecu nulu (0 na mjestu najvece

tezine) za znak,

+B(2) = (0, 1100101)PK .

Negativan broj reprezentujemo potpunim komplementom,

−B(2) = (+B(2))PK

= 28 − 0, 1100101(2)

= 100000000(2) − 0, 1100101(2)

= (1, 0011011)PK .

(u ovom a i u ostalim primjerima zarez koristimo iskljucivo da odvojimo znak broja). �

Primjer 2.57. Zadat je broj −13(10). Odrediti njegov drugi komplement u binarnomsistemu sa 8 cifara.Kako je 13(10) = 1101(2), to ce biti +13(10) = +1101(2) = (0, 0001101)PK.

Izracunavanjem drugog komplementa broja +0001101(2) dobit cemo negativan broj, tojest

−13(10) = (0, 0001101)PK

= 28 − 0, 0001101(2)

= 100000000(2) − 0, 0001101(2)

= (1, 1110011)PK

57

Page 35: Nermin Okiˇci´c Elvis Barakovi´c

2.5. Zapis brojeva u brojnom sistemu

Primjer 2.58. Odrediti dekadni broj repezentovan kao oznacen broj u binarnom sistemusa B = 1, 1111010(2).

Kako vrijedi −B(N) = (B)PK onda imamo

B = −(1, 1111010)PK

= −(28 − 1, 1111010(2))

= −(100000000(2) − 1, 1111010(2))

= −0, 0000110(2)

= −6(10)

Dakle, (0, 0000110)PK reprezentuje broj +6(10), a (1, 1111010)PK reprezentuje broj−6(10). �

2.5.3.2 Aritmetika u brojnom sistemu potpunog komplementa

Digitalni racunari najcesce koriste brojni sistem potpunog komplementa jer to dovodido minimizacije kolicine kola koje koristimo za izvodenje aritmetickih operacija. Naprimjer, operacija x− y se moze izvesti koristeci se sa x+(−y), gdje je −y reprezentovansa potpunim komplementom od y. Dakle, racuran treba samo binarni sabirac i kolo zakomplement da bi se realizovalo i sabiranje i oduzimanje. Kako je racunarska aritmetikaprvenstveno prilagodena binarnom sistemu, ovdje cemo se fokusirati na brojni sistemdrugog komplementa (potpuni komplement).

Prije nego pocnemo sa aritmetikom, moramo dati neka objasnjenja u vezi ogranicenjakoja imamo kod racunarske reprezentacije brojeva. Digitalni racunari rade sa konacnimbrojnim sistemima, a to je nametnuto brojem bita koje koristimo za reprezentacijubrojnih vrijednosti. Racunari koji koriste brojni sistem drugog komplementa mogureprezentovati cijele brojeve u opsegu

−2n−1 ≤ B ≤ 2n−1 − 1 ,

gdje je n broj bita koje koristimo za reprezentaciju znakova. Primjetimo da je 2n−1−1 =0, 11 · · ·1PK , a da je −2n−1 = 1, 00 · · ·0PK . Ukoliko izvedena racunska operacija dajerezultat koji izlazi van dozvoljenog okvira, to jest ako je dobijeni broj B > 2n−1 − 1 iliB < −2n−1, dogada se stanje prekoracenja (eng. overflow condition). U tom slucajun-bitni broj dobijen datom operacijom nece validno reprezentovati dobijeni rezultat. Utakvim situacijama racunari uglavnom javljaju neki signal prekoracenja.

U aritmetici brojnog sistema drugog komplementa razmatrat cemo tri slucaja: A =B + C, A = B − C i A = −B − C. U svakom od spomenutih slucajeva podrazumijevatcemo da je B ≥ 0 i C ≥ 0.

Prvi slucaj:

Izracunati A = B +C. Kako su B i C nenegativni to ce i A biti nenegativan, i pri tomevrijedi

APK = BPK + CPK .

Sta vise, obzirom na nenegativnost svih velicina ne moramo koristiti potpunikomplement.Jedini problem koji se moze pojaviti u ovom slucaju jest da A > 2n−1 − 1, sto ceprestavljati prekoracenje. Stanje prekoracenja se jednostavno detektuje jer ce cifra

58

Page 36: Nermin Okiˇci´c Elvis Barakovi´c

2.5. Zapis brojeva u brojnom sistemu

znaka broja A biti pogresna. Da se uvjerimo u ovo, posmatrajmo zbir dva najvecareprezentabilna n-bitna broja.

0 ≤ A ≤ (2n−1 − 1) + (2n−1 − 1) = 2n − 2 .

Kako je najveci reprezentabilan n-bitni broj 2n−1 − 1, stanje prekoracenja se postize zabilo koju sumu iz uslova A ≥ 2n−1. n-ti bit bilo kog binarnog broja iz ovog uslova je1. Na zalost, ovo ce se dogoditi na bitu koji predstavlja znak broja u brojnom sistemudrugog komplementa. Dakle, rezultat bi bio registrovan kao negativan broj, sto indicirastanje prekoracenja.

Primjer 2.59. Izracunati 9(10)+5(10) koristeci 5-bitnu aritmetiku drugog komplementa.Pocinjemo sa time da brojeve 9(10) i 5(10) zapisemo u brojnom sistemu drugog

komplementa, zapisane sa 5 bitova (sa 5 cifara). Kako su oba broja pozitivna, koristitcemo 0 za zapis znaka tih brojeva. Tako sada imamo

9(10) = +1001(2) = (0, 1001)PK , 5(10) = +0101(2) = (0, 0101)PK .

Sabiranje ova dva 5-bitna koda nam daje

0 1 0 0 1+ 0 0 1 0 1

0 1 1 1 0

Kako rezultat ima 0 na petom bitu (cifra znaka broja), time on korektno reprezentujedati zbir brojeva, a sto sada mozemo prikazati sa

(0, 1110)PK = +1110(2) = +14(10) .

Primjer 2.60. Izracunati 12(10)+7(10) koristeci 5-bitnu aritmetiku drugog komplementa.Slicno kao u gornjem primjeru imamo

12(10) = +1100(2) = (0, 1100)PK , 7(10) = +0111(2) = (0, 0111)PK .

Sabiranje ova dva 5-bitna koda nam daje

0 1 1 0 0+ 0 0 1 1 1

1 0 0 1 1

Sada ovaj rezultat sabiranja interpretiramo sa

(1, 0011)PK = −1101(2) = −13(10) .

Zbir dva pozitivna broja je negativan! Jasno nam je da nesto nije korektno i zatomoramo dati objasnjenje. Odgovor je u tome da zbir zadata dva broja zahtijeva vise od5 predvidenih bitova za njegovo korektno zapisivanje. Korektan zbir je 19(10), a on jeizvan dozvoljenog opsega zapisa 5-bitnih brojeva u drugom komplementu jer je najvecizapisiv broj 24 − 1 = (0, 1111)PK = 15(10). Nekorektna cifra znaka dobijenog rezultatasabiranja indicira stanje prekoracenja. �

59

Page 37: Nermin Okiˇci´c Elvis Barakovi´c

2.5. Zapis brojeva u brojnom sistemu

Drugi slucaj:

Izracunati A = B − C. Racunanje cemo izvesti koristeci se sa A = B + (−C). Kako sveradimo u binarnom brojnom sistemu, racunat cemo

A = B(2) + (−C(2)) .

Prvi sabirak zbog pozitivnosti koristimo nepromjenjen. Medutim, drugi sabirak jenegativan broj (−C(2)), pa za njega koristimo potpuni komplement (CPK).

A = B(2) + (−C(2))

= B(2) + (C)PK

= B(2) + (2n − C(2))

= 2n + (B(2) − C(2))

= 2n + (B − C)(2) .

Ovako nesto smo i ocekivali, osim sto se pojavljuje jedan ekstra izraz, 2n. Sta ce znacitiovaj izraz?Ako je B ≥ C, tada je B − C ≥ 0, a to nam daje da je A ≥ 2n. U tom slucaju izraz

2n predstavlja prenos u sabiranju (n-bitni binarni sabirac generise prenos za svaki brojA ≥ 2n, a to zahtijeva povecanje bita za zapis) i kao takav treba biti odbacen.

Primjer 2.61. Izracunati 12(10) − 5(10) u drugom komplementu sa zapisom od 5 bita.

12(10) = +1100(2) = (0, 1100)PK , −5(10) = −0101(2) = (1, 1011)PK .

0 1 1 0 0+ 1 1 0 1 11 0 0 1 1 1↑

prenos

Odbacujuci prenos, znak broja je 0 i rezultat interpretiramo

(0, 0111)PK = +0111(2) = +7(10) .

Dakle, ovaj slucaj bi mogli izraziti na sljedeci nacin

A(2) = B(2) + (C)PK |prenos odbacen .

Ako je B < C, tada je B − C < 0, a onda imamo da je

A = 2n − (C −B)(2) = (C −B)PK .

Posljednje mozemo izraziti i sa A = −(C−B)(2), sto bi i bio zeljeni rezultat. Primjetimoda u ovom slucaju nemamo nikakvog prenosa.

60

Page 38: Nermin Okiˇci´c Elvis Barakovi´c

2.5. Zapis brojeva u brojnom sistemu

Primjer 2.62. Izracunati 5(10) − 12(10) u drugom komplementu sa zapisom od 5 bita.

5(10) = +0101(2) = (0, 0101)PK , −12(10) = −1100(2) = (1, 0100)PK .

0 0 1 0 1+ 1 0 1 0 0

1 1 0 0 1

U ovom slucaju nema prenosa, cifra znaka broja je 1, sto indicira negativan broj,

(1, 1001)PK = −0111(2) = −7(10) .

Primjer 2.63. Izracunati (0, 0111)PK − (1, 1010)PK.Kako je umanjenik pozitivan broj, on je vec u brojnom sistemu potpunog komplementa.

Umanjilac je negativan broj pa oduzeti ga od lijevog broja znaci sljedece

−(X)PK = ((X)PK)PK

= 2n − (X)PK

= 2n − (2n − (X)(2))

= X(2) .

Dakle, −(1, 1010)PK = +0110(2). Sabirajuci sada 5-bitne binarne brojeve imamo

0 0 1 1 1+ 0 0 1 1 0

0 1 1 0 1

Rezultat je (0, 1101)PK = +1101(2) = +13(10).Nije tesko se uvjeriti da smo izracunali sljedece, 7(10) − (−6(10)) = 13(10). �

Primjetimo da u izracunavanju B−C nikada nece doci do prekoracenja jer je apsolutnavrijednost ove razlika manja od svakog od sabiraka B i C koji su po polaznoj pretpostavcinenegativni.Treci slucaj:

Izracunati A = −B−C. Zeljeni rezultat je A = −(B+C) = (B+C)PK . Oba broja −Bi −C ce biti reprezentovani drugim komplementom svoje apsolutne vrijednosti te cemoimati,

A = −B − C

= (−B) + (−C)

= (B)PK + (C)PK

= 2n −B(2) + 2n − C(2)

= 2n + 2n − (B(2)+C(2))

= 2n + (B + C)PK .

Ako prenos (2n) odbacimo, izracunavanje daje korektan rezultat u slucaju da nije doslodo prekoracenja.

61

Page 39: Nermin Okiˇci´c Elvis Barakovi´c

2.5. Zapis brojeva u brojnom sistemu

Primjer 2.64. Izracunati −9(10) − 5(10) u drugom komplementi sa zapisom u 5 bita.

−9(10) = −1001(2) = (1, 0111)PK , −5(10) = −0101(2) = (1, 1011)PK .

Sada izracunajmo (−9(10)) + (−5(10)).

1 0 1 1 1+ 1 1 0 1 11 1 0 0 1 0↑

prenos

Odbacujuci prenos, korektan rezultat je (1, 0010)PK = −1110(2) = −14(10). Doprekoracenja nije doslo jer je −14(10) > −25−1 = −16(10). �

Kao i u slucaju sabiranja nenegativnih brojeva, stanje prekoracenja se moze dogoditi iovdje kada je A < −2n−1. Ovo ce biti indicirano rezultatom koji ima nekorektnu cifruznaka broja (konkretno, rezulat bi bio pozitivan broj, a trebao bi biti negativan).

Primjer 2.65. Izracunati −12(10) − 5(10) u drugom komplementu sa zapisom od 5 bita.

−12(10) = −1100(2) = (1, 0100)PK , −5(10) = −0101(2) = (1, 1011)PK .

1 0 1 0 0+ 1 1 0 1 11 0 1 1 1 1↑

prenos

Odbacujuci prenos, rezultat bi bio (0, 1111)PK = +1111(2) = +15(10). Primjetimo daje cifra znaka nekorektna (0), to jest dobijeni rezultat je pozitivan broj, iako smo sabiralidva negativna broja. �

62

Page 40: Nermin Okiˇci´c Elvis Barakovi´c

Bibliografija

[1] Y. N Shing: Mathematical Foundation of Computer Science, NEW AGEINTERNATIONAL (P) LIMITED, PUBLISHERS, 2005.

[2] T. Sundstrom: Mathematical Reasoning - Writing and Proof, Grand Valley StateUniversity Allendale, MI, 2013, 2019.

[3] E. Lehman, F.T. Leighton, A.R. Meyer: Mathematics for Computer Science, Thiswork is available under the terms of the Creative Commons Attribution-ShareAlike3.0 license, 2017.

[4] https://math.libretexts.org/Bookshelves/Mathematical Logic and Proof

63