Svetozara Markovica 24 www.systempro.rs
e-mail [email protected] tel: 011/324-34-64
Škola računara za talentovanu decu
Brojevni sistemi
Organizacija podataka
na računaru
Učenik: Termin:
Skripta za I godinu
oktobar 2015.
2015 Brojevni sistemi i organizacija podataka na računaru
2
Sadržaj
PREDGOVOR .................................................................................................................................................. 3
1. BROJEVNI SISTEMI ..................................................................................................................................... 4
1.1. Uvod. .................................................................................................................................................. 4
1.2. Binarni brojevni sistem. ...................................................................................................................... 5
1.3. Zašto baš dve cifre? ............................................................................................................................ 5
1.4. Vrednost binarnog broja (pretvaranje u dekadni ekvivalent): ........................................................... 7
1.5. Pretvaranje dekadnih brojeva u binarne: ........................................................................................... 9
1.6. Sabiranje binarnih brojeva: ................................................................................................................ 9
1.7. Oduzimanje binarnih brojeva: .......................................................................................................... 10
1.8. Množenje binarnih brojeva: ............................................................................................................. 12
1.9. Heksadekadni brojevni sistem:......................................................................................................... 14
1.10. Vrednost heksadekadnog broja (dekadni ekvivalent): ................................................................... 14
1.11. Pretvaranje dekadnog broja u heksadekadni: ................................................................................ 15
1.12. Pretvaranje heksadekadnog broja u binarni: ................................................................................. 15
1.13. Pretvaranje binarnog broja u heksadekadni: ................................................................................. 15
2. PREDSTAVLJANJE PODATAKA NA RAČUNARU, FAJLOVI .......................................................................... 17
2.1. Bit ..................................................................................................................................................... 17
2.2. Nibl (nibble) ...................................................................................................................................... 17
2.3. Bajt (byte) ......................................................................................................................................... 17
2.4. Organizacija bajtova u vede jedinice: ............................................................................................... 17
2.5. Fajlovi ............................................................................................................................................... 18
2.6 Predstavljanje teksta na računarima - ASCII kod ............................................................................... 20
2.7. Predstavljanje boja na računarima - RGB model .............................................................................. 21
2.8. Predstavljanje zvuka na računarima - PCM format ......................................................................... 22
Brojevni sistemi i organizacija podataka na računaru 2015
3
PREDGOVOR
Ova skripta namenjena je, prevashodno, učenicima I godine Škole za talentovanu decu Računarskog
centra Sistem Pro.
Zabranjeno je korišdenje i umnožavanje delova ove publikacije bez prethodnog odobrenja autora ili
Računarskog centra Sistem Pro (uz izuzetak da je bivši i sadašnji učenici škole mogu slobodno
razmenjivati u elektronskom obliku).
Autor zadržava pravo da sadržaj ove skripte u bududnosti iskoritsti u komrecijalne svrhe. Skice,
fotografije i grafikoni prikazani u ovoj publikaciji su delo autora.
2015 Brojevni sistemi i organizacija podataka na računaru
4
1. BROJEVNI SISTEMI
1.1. Uvod.
Brojevni sistem je sistem pomodu koga se, kombinovanjem cifara, predstavljaju brojevi. U brojevnim
sistemima važe pravila koja određuju kako se formiraju vrednosti brojeva s obzirom na pozicije cifara u
broju i kako se nad brojevima obavljaju matematičke operacije, a cifre su ništa drugo nego znaci koji
odgovaraju brojčanim vrednostima.
Primera radi, broj 147 se sastoji iz tri cifre. Njegova vrednost se, naravno, ne dobija pukim sabiranjem te
tri cifre ved svaka od cifara ima svoju "težinu". Gledano sa desne strane, prema levo, prva cifra se naziva
cifrom jedinica i data cifra se pri formiranju vrednosti broja množi jedinicom. Druga cifra se naziva cifrom
desetica i, pri formiranju broja, množi se sa deset. Slededa cifra se množi sa 100 i tako redom. Na kraju se
sve ove pomnožene vrednosti sabiraju.
147 = 1 x 100 + 4 x 10 + 7 x 1
Ovde smo uradili nešto što je svako od nas u nižim razredima osnovne škole uradio mnogo puta, ali neke
stvari nismo razmotrili i jednostavno smo smatrali da se podrazumevaju (što, u praktičnom smislu i u
svakodnevnom životu, svakako jeste tako). Nismo razmatrali kojem brojevnom sistemu pripadaju ovi
brojevi i cifre!
Sve ovo što smo radili, bilo je u okvirima takozvanog dekadnog brojevnog sistema (na grčkom, reč
"deka", označava broj deset ). Smatra se da je dekadni brojevni sistem, kao takav, nastao iz razloga što
ljudi imaju deset prstiju.
Osnova brojevnog sistema je broj koji određuje koliko se cifara može pojaviti na nekoj poziciji u broju.
Tako recimo, u dekadnom sistemu cifra jedinica (ili desetica, ili bilo koja druga cifra), može biti bilo koja
cifra od 0 do 9 (primetimo da je to 10 cifara). Mogude je konstruisati brojevni sistem sa praktično bilo
kojom osnovom, međutim, u računarskoj tehnici i programiranju (pored dekadnog), najviše se koriste:
binarni sistem (osnova - 2), heksadekadni (osnova - 16) i, u nešto manjoj meri, oktalni sistem (osnova -
8).
Ukoliko broj koji zapisujemo ne pripada dekadnom sistemu, a želimu precizno da naglasimo kom
brojevnom sistemu pripada, osnovu datog brojevnog sistema zapisademo kao indeks (mali broj sa desne
strane), u zagradama, na slededi način:
11001010(2) BCAFEE9(16)
Na ovaj način mogu se označavati i brojevi dekadnog brojevnog sistema: 156(10), a postoji i način
obeležavanja gde se zapravo broj stavlja u zagradu, a osnova (kao indeks), van nje: (156)10.
Iako u ovoj skripti nedemo razmatrati samo binarni sistem (govoridemo detaljno i o heksadekadnom),
najviše pažnje posvetidemo upravo binarnom sistemu.
Brojevni sistemi i organizacija podataka na računaru 2015
5
1.2. Binarni brojevni sistem.
Binarni brojevni sistem je takav brojevni sistem u kome se brojevi formiraju od dve cifre: nula i jedinica.
Naziv binarni, potiče od latinskih reči "bini" i "binarius", čiji bi grubi prevod mogao biti "duplo" ili
"dvostruko".
Binarni broj koji odgovara dekadnom broju 147 je: 10010011, a kada u binarnom sistemu zapišemo
100000, to zapravo nije "sto hiljada", ved je dekadni ekvivalent datog broja (broj iste vrednosti, ali,
različitog zapisa), broj 32 iz dekadnog sistema.
Binarni sistem za početak verovatno deluje malo "čudno" velikoj vedini ljudi. Međutim, pre nego što
pomislite da zaista i jeste u pitanju nešto čudno i da je binarni sistem jako komplikovan, znajte da binarni
sistem funkcioniše po istim osnovnim principima kao i dekadni i da, uz uloženu trud, ni u kom slučaju nije
komplikovano naučiti kako se u binarnom brojevnom sistemu formiraju brojevi i kako se obavljaju
računske operacije.
Čitanjem prethodnih redova, a možda i ranije, verovatno ste došli do pitanja: "zašto bismo uopšte
proučavali binarni brojevni sistem?" Zašto, kada je dekadni sistem funkcionalan i kada smo od malih
nogu naviknuti na njega? Ovaj sistem proučavademo zato što je to brojevni sistem koji se koristi u
računarima, te je stoga kao takav za nas zanimljiv, a osnovno pitanje koje se postavlja je: zašto računari
baš moraju da koriste dve cifre, umesto deset?
S obzirom da slededi odeljak sadrži objašnjenja koja bi mogla da nepotrebno zbune mlađe učenike koji
čitaju ovu skriptu, pomenuti učenici ga mogu preskočiti (i odmah predi na odeljak "Vrednost binarnog
broja"), pod uslovom da prihvate objašnjenje da, za sada, jednostavno tako mora biti, zato što su
računari koji rade u binarnom sistemu ipak mnogo praktičniji od onih koji bi koristili dekadni.
Za starije učenike (i one mlađe, koji zaista žele da znaju), sledi objašnjenje.
1.3. Zašto baš dve cifre?
Ako se podsetimo razloga za nastanak i korišdenje dekadnog sistema (ukupan broj prstiju na ljudskim
šakama), nede nam biti teško da zaključimo da ista logika ne važi za računare, jer računari naravno
nemaju dva prsta (niti bilo koji drugi broj prstiju). Sa druge strane, računarski procesori sastoje se iz
mnoštva tranzistora (u trenutku pisanja ove skripte, tipična vrednost je u opsegu od više stotina
miliona!), malih električnih elemenata koji su, kada se na određen način povežu u takozvane mreže
tranzistorskih prekidača, u stanju da prekidaju (uključuju i isključuju) dovod struje u različitim delovima
procesora. Ako je neki sklop isključen, njegovo naponsko stanje možemo shvatiti kao "0", a ako je
uključen, njegovo naponsko stanje je "1".
Ne postoji način da se brojevi, na računaru, predstave drugačije nego kao pomenuta naponska stanja!
2015 Brojevni sistemi i organizacija podataka na računaru
6
Nula i jedan su takođe cifre binarnog brojevnog sistema, koje, unutar elektronskih kola u procesoru i
ostalim delovima računara, odgovaraju pomenutim naponskim stanjima. Šta su naponi i struje, je priča
koja prevazilazi okvire ove skripte, ali recimo da ako je sijalica na plafonu uključena - u njoj ima
električnog napona, a, ako je isključena - napona nema. Uz malo mašte, sijalice bismo mogli da
upotrebimo za "šifrovanje" poruka. Čak i jedna sijalica mogla bi da odgovara porukama: "da" i "ne", u
zavisnosti od toga da li je uključena ili isključena.
Primer 1: Korišdenjem jedne sijalice, možemo preneti dve poruke.
Međutim, u velikoj vedini svakodnevnih situacija, dve reči nisu dovoljne da izrazimo sve što je potrebno.
Ali, ako bismo poređali (recimo) osam sijalica, mogli bismo da osmislimo i raznovrsniji sistem poruka:
Primer 2: Koristedi osam sijalica, nismo više ograničeni na
samo dve poruke i možemo osmisliti mnogo više poruka
proizvoljne sadržine (tačnije - 256 poruka).
Pod uslovom da neko ko čita naše poruke razume njihov sadržaj, korišdenjem mnoštva sijalica, mogli
bismo zapisivati poruke izuzetno velike složenosti. O tome kako se na računarima, korišdenjem nula i
jedinica, mogu zapisivati tekst, zvuk, slike i drugi podaci, bide reči u poslednjim odeljcima ove skripte.
Iako ovo deluje prilično zanimljivo, pretpostavljamo da se mnogi od vas ipak i dalje pitaju zašto mora
ovako i zašto niko ne konstruiše elektronske sklopove koji prepoznaju deset naponskih nivoa,
omogudavajudi pri tom upotrebu dekadnog brojevnog sistema. Praktičan odgovor, svodi se na to da
sadašnji nivo tehnološkog razvoja i sadašnji nivo razumevanja prirode i tehnologije ne omogudavaju da se
to izvede na način koji bi bio bar koliko-toliko efikasan .
Računari koji su ved u upotrebi su izuzetno kompleksni sklopovi koji zahtevaju stotine sati za
projektovanje i znatna finansijska sredstva za izradu, a tržišne cene računarskih komponenti ni u kom
slučaju nisu male. Računari koji su "ispod haube" sposobni da operišu dekadnim brojevima, morali bi
umesto dva, da raspoznaju deset naponskih stanja, a to bi ih učinilo nemerljivo komplikovanijim za
razvoj, višestruko skupljim za proizvodnju (pri čemu bi naravno i krajnja cena ovakvih komponenti bila
Brojevni sistemi i organizacija podataka na računaru 2015
7
mnogo veda); trošili bi mnogo više struje, mnogo se više zagrevali (što bi bio jako veliki problem, s
obzirom na to da je i grejanje sadašnjih računara ved popriličan problem) i bili mnogo podložniji
greškama u radu.
U praktičnom smislu, ovi razlozi su više nego dovoljni da usmere pažnju na računare na kakve smo
navikli.
1.4. Vrednost binarnog broja (pretvaranje u dekadni ekvivalent):
Vrednost binarnog broja, formira se po istim pravilima kao i vrednost dekadnog broja.
Za početak, podsetidemo se još jednom pravila za formiranja vrednosti dekadnih brojeva i staviti ved
pomenutu vrednost 147 u slededu tabelu:
U poljima gornjeg reda nalaze se poznate vrednosti kojima se množe cifre na određenim pozicijama.
Prvih pet cifara je neiskorišdeno, a sledede tri cifre daju računicu: 1 x 100 + 4 x 10 + 7 x 1 = 147.
Razmotrimo sada binarni broj 11011 (ne, nije u pitanju "jedanaesthiljadajedanaest" :)). Taj broj
ubacidemo u tabelu koja odgovara binarnom brojevnom sistemu.
Ovoga puta, u poljima gornjeg reda ne vidimo više vrednosti kao što su 10, 100, 1000 itd. Ovoga puta
vidimo vrednosti kao što su 2, 4, 8, 16, 32 i tako redom (ovo su naravno brojevi dekadnog brojevnog
sistema, ali, pošto tražimo dekadni ekvivalent binarnog broja, to je upravo ono što nam treba).
Nije teško primetiti razlike između ove dve grupe brojeva, ali za nas je mnogo korisnije ako uočimo
sličnosti.
Pre toga, podsetimo se:
-dekadni brojevni sistem za osnovu ima broj 10, a cifre dekadnog sistema su: 0, 1, 2, 3, 4, 5, 6, 7, 8 i 9;
-binarni brojevni sistem za osnovu ima broj 2, a cifre binarnog sistema su: 0 i 1.
Ako pogledamo umnoške iz prve tabele nede nam biti teško da sagledamo kako se oni formiraju:
kredemo od 1 i svaki slededi umnožak dobija se množenjem prethodnog brojem deset (brojem koji dati
brojevni sistem ima za osnovu):
2015 Brojevni sistemi i organizacija podataka na računaru
8
Dekadni sistem: Binarni sistem:
1 1 x 10 = 10
10 x 10 = 100 100 x 10 = 1000
1000 x 10 = 10000 10000 x 10 = 100000
10000 x 10 = 1000000 100000 x 10 = 10000000
1 1 x 2 = 2 2 x 2 = 4 4 x 2 = 8
8 x 2 = 16 16 x 2 = 32 32 x 2 = 64
64 x 2 = 128
........ i tako redom!
Vrednost broja demo formirati tako što demo prvo množiti svaku cifru onom vrednošdu koja odgovara
poziciji date cifre u broju, a potom demo dobijene vrednosti sabrati:
1 x 16 + 1 x 8 + 0 x 4 + 1 x 2 + 1 x 1 ..... što kao rezultat daje: 27.
Pogledajmo još jedan primer:
1 x 128 + 1 x 16 + 1 x 2 + 1 x 1 = 147
Brojevi koje smo pomenuli, kao što su 10, 100, 1000, u matematici, nazivaju se stepenima broja deset.
Brojevi kao što su 2, 4, 8, 16 32, nazivaju se stepenima broja dva.
Ovde možemo uočiti i jednu stvar po kojoj je binarni sistem zapravo jednostavniji od dekadnog: kada
računamo vrednost dekadnog broja, svaki od ovih stepena broja deset moramo množiti odgovarajudom
cifrom, pa se tek onda taj proizvod dodaje ukupnom zbiru koji predstavlja vrednost broja, dok, kada je u
pitanju binarni sistem, u zavisnosti od toga da li je na nekoj poziciji cifra nula ili jedan, jednostavno
odgovarajudi stepen broja dva dodajemo u zbir ili ne, bez ikakvog množenja.
Brojevni sistemi i organizacija podataka na računaru 2015
9
1.5. Pretvaranje dekadnih brojeva u binarne:
Dekadni broj pretvaramo u binarni na slededi način: broj delimo sa 2; količnik upisujemo direktno ispod;
ostatak (0 ili 1) upisujemo sa desne strane i ceo postupak ponavljamo sve dok količnik ne postane 0.
Vrednost binarnog broja dobijamo iščitavanjem odozdo-na gore desne kolone u kojoj se nalaze ostaci.
Pogledajmo još i tabelu koja prikazuje vrednosti od 0 do 16 u dekadnom i binarnom obliku, kao i pravila
za sabiranje malih, jednocifrenih binarnih brojeva.
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111
16 10000
1 + 1 = 10
1 + 1 + 1 = 11
1 + 1 + 1 + 1 = 100
1 + 1 + 1 + 1 + 1 = 101
Bitno je da znamo da, u binarnom sistemu, zbir dve jedinice nije 2, ved 10. Čita se kao, "jedan-nula" (kao rezultat neke sportske utakmice). Sa
pravilima za sabiranje vedih binarnih brojeva upoznademo se u slededem odeljku.
1.6. Sabiranje binarnih brojeva:
Sabiranje binarnih brojeva funkcioniše isto kao i sabiranje dekadnih brojeva. Kredemo od kolone cifara na
krajnjoj desnoj strani i premeštamo se za jedno mesto ulevo posle svakog koraka. Ukoliko je zbir cifara
2015 Brojevni sistemi i organizacija podataka na računaru
10
vedi od osnove (10 za dekadni sistem i 2 za binarni), krajnju desnu cifru upisademo ispod odgovarajude
kolone, a sve ostale cifre upisademo na odgovarajuda mesta iznad osnovnih sabiraka.
1.7. Oduzimanje binarnih brojeva:
Oduzimanje binarnih brojeva takođe se obavlja po istim pravilima kao i oduzimanje dekadnih brojeva.
Počinjemo sa kolonom cifara koja se nalazi skroz desno i u svakom koraku se pomeramo za jedno mesto
ulevo dok ne stignemo do kraja.
Navodimo pravila za oduzimanje cifara:
Operacija: Napomena:
1 - 1 = 0 Ispod kolone upisujemo dobijenu cifru; ništa se ne prenosi
1 - 0 = 1 Ispod kolone upisujemo dobijenu cifru; ništa se ne prenosi
0 - 0 = 0 Ispod kolone upisujemo dobijenu cifru; ništa se ne prenosi
0 - 1 = 1 Ispod kolone takođe upisujemo dobijenu cifru, ali, kada pređemo u slededu kolonu levo, oduzimamo 1 od rezultata te kolone
Četvrta situacija se popularno naziva pozajmica.
Pogledademo sada tri primera:
Brojevni sistemi i organizacija podataka na računaru 2015
11
Prvi primer prikazuje stanje u kojem se pozajmica ni na jednom mestu ne koristi. Cifre oduzimamo
neposredno, po istim pravilima kojih bismo se pridržavali da je u pitanju dekadni brojevni sistem.
1) Primer 1 - situacija u kojoj uopšte nema pozajmice:
Ovde nema prave potrebe za dodatnim objašnjenjima, ali spomenimo ipak nekoliko stvari. U prva četiri
koraka jednostavno obavljamo oduzimanje cifara i upisujemo rezultate. U petom koraku nam fali cifra u
donjem broju, ali, setili smo se (setili smo se, zar ne?), da na tom mestu jednostavno možemo upisati
nulu, ne menjajudi pri tom vrednost broja.
2) Primer 2 - situacija u kojoj se javlja jednostavan oblik pozajmice:
2015 Brojevni sistemi i organizacija podataka na računaru
12
Prva dva koraka predstavljaju neposredno oduzimanje, kao i u prethodnom primeru. U tredem koraku
dolazi do (sada ved dobro poznate) pozajmice. Ako bismo se za trenutak prebacili na primer iz dekadnog
sistema i pokušali da oduzmemo broj 19 od broja 34, uvideli bismo da oduzimanje 4 - 9 daje negativan
broj (-5), što naravno ne može biti cifra nekog broja. U ovakvim situacijama, mi smo navikli da se pravimo
da ne oduzimamo 9 od 4, ved da oduzimamo 9 od 14 (pri čemu je rezultat 5)! Pošto smo tu cifru desetica
"pozajmili" u prvom koraku, u drugom koraku je moramo vratiti. To demo uraditi ili tako što demo cifru
desetica umanjiti za 1, ili demo jednostavno za 1 umanjiti rezultat oduzimanja dve cifre.
Isto to radimo i u binarnom sistemu. Kada naiđemo na oduzimanje 0 - 1, takođe se pravimo da zapravo
obavljamo oduzimanje 10 - 1 (ne, rezultat nije 9; rezultat je 1).
Pošto pozajmljeno mora da se vrati (inače, ako ne vratimo, mi ne pozajmljujemo - ved krademo, a ko
krade ide u zatvor, gde se 14 sati dnevno obavljaju operacije nad binarnim brojevima), u slededem
koraku (korak 4.), rezultat osnovnog oduzimanja (1 - 0), umanjidemo za 1 i na taj način vratiti pozajmicu (i
izbedi tešku robiju :)).
3) Primer 3 - situacija u kojoj se javlja složeniji oblik pozajmice:
Ovde prelazimo direktno na četvrti korak (principi za rešavanje prva tri koraka su ved objašnjeni u
prethodnom primeru). Imamo oduzimanje 0 - 1 i imamo pozajmicu iz porethodnog koraka koju moramo
da vratimo. Rezultat oduzimanja 0 - 1 je 1, sa pozajmicom za slededu kolonu, ali, pošto ved imamo
pozajmicu iz 3. koraka, rezultat moramo umanjiti za 1!
U petom koraku, vradamo pozajmicu iz 4. koraka i dobijamo konačni rezultat.
1.8. Množenje binarnih brojeva:
Pozvademo se i ovde na dekadni sistem i podsetiti se kako u tom sistemu množimo brojeve:
121 x 34 možemo raščlaniti na 121 x 30 + 121 x 4, a rezultat je, naravno 4114.
Brojevni sistemi i organizacija podataka na računaru 2015
13
Kada treba da iskoristimo neku cifru (recimo, cifra 3 iz broja 34) u ovoj računici, zanemarujemo sve što se
u broju nalazi sa leve strane date cifre, a na sva mesta sa desne strane stavljamo nule.
Ista pravila važe i u binarnom sistemu!
Pogledajmo primer: 11011 x 101
Jednostavno demo ovo raščlaniti na:
I onda sabrati:
Kako smo mi to tako jednostavno došli do umnožaka (recimo, zašto je 11011 x 100 baš 1101100)?
U dekadnom sistemu, kada dopišemo jednu nulu (ili više nula), mi dati broj množimo sa deset (sto,
hiljadu, i tako redom). Brojevi koji se sastoje iz jedinice i nula su (podsetimo se), stepeni broja deset.
Uprošdeno, množenje kao što je: 716554 x 10000, kao što znamo, uopšte nije komplikovano. Drugi broj
"skratimo" za jedinicu sa početka, a preostale nule jednostavno dopišemo prvom broju.
U binarnom sistemu, brojevi koji se sastoje iz jedinice i nula su - stepeni broja dva, a pravila koja u
dekadnom sistemu važe za množenje neke vrednosti nekim od stepena broja deset, važe i u binarnom
sistemu, za množenje nekog broja nekim od stepena broja dva.
Isto kao i malopre, množenje brojeva 1100111010111 i 100000, uopšte nije teško izvesti. Jednostavno
pet nula iz broja 100000 dopisujemo prvom broju i dobijamo rezultat: 110011101011100000.
Za proveru (i vežbu), probajte da pomnožite brojeve 1101 i 100, ali, tako što dete prvo oba broja
pretvoriti u dekadni oblik, množenje obaviti u dekadnom sistemu i onda rezultat pretvoriti u binarni
oblik.
Da li vas rezultat iznenađuje? :)
2015 Brojevni sistemi i organizacija podataka na računaru
14
1.9. Heksadekadni brojevni sistem:
Heksadekadni brojevni sistem je brojevni sistem sa osnovom 16. Pošto je 16 jedan od stepena dvojke,
možemo smatrati da je ovaj brojevni sistem u bliskoj vezi sa binarnim. Pored toga, možemo spomenuti i
da se, za razliku od binarnog zapisa brojeva (koji računari koriste u svojim sklopovima, dok se korisnicima
putem operacija koje smo razmotrili, u vedini situacija prikazuju rezultati u dekadnom brojevnom
sistemu), heksadekadni zapis srede u svakodnovnoj upotrebi gde se koristi neporedno (o ovome de biti
reči u jednom od dodataka na kraju skripte, kada bude bilo reči o predstavljanju boja na računaru).
Bududi da osnovni skup cifara na koji smo do sada navikli (0, 1, 2 ,3, 4, 5, 6, 7, 8, 9), ne obuhvata sve
vrednosti cifara koje moraju biti zastupljene u heksadekadnom brojevnom sistemu, ovaj skup se
dopunjava znacima: A, B, C, D, E i F, tako da su cifre heksadekadnog brojevnog sistema (i njihove
vrednosti izražene u dekadnom sistemu) sledede:
Cifra: Vrednost u
dekadnom sistemu: Vrednost u
binarnom sistemu:
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
A 10 1010
B 11 1011
C 12 1100
D 13 1101
E 14 1110
F 15 1111
U ovom slučaju, pri formiranju vrednosti broja, vrednost cifara se množi stepenima broja 16: 1, 16, 256,
4096, 65536 itd.
1.10. Vrednost heksadekadnog broja (dekadni ekvivalent):
Pošto se u heksadekadnom sistemu sa malo cifara mogu zapisati prilično veliki verednosti, pogledademo
odmah jedan veliki broj od pet cifara: 1A7C8
x65536 x4096 x256 x16 x1
1 A 7 C 8
Brojevni sistemi i organizacija podataka na računaru 2015
15
Do njegove vrednosti (izražene u dekadnom sistemu), dolazimo, kao i do sada, množenjem i sabiranjem:
1 x 3 + 12 (C) x 16 + 7 x 256 + 10 (A) x 4096 + 1 x 65536 = 108488
1.11. Pretvaranje dekadnog broja u heksadekadni:
Kao i sa binarnim brojevima, delidemo broj sa vrednošdu koja predstavlja osnovu datog sistema (u ovom
slučaju ta vrednost je 16), pisati količnik direktno ispod, a ostatak sa desne strane količnika. Krajnju
vrednost dobijamo iščitavanjem ostataka odozdo – nagore.
Za primer, uzedemo dekadni broj 1500, koji demo pretvoriti u heksadekadni ekvivalent:
1.12. Pretvaranje heksadekadnog broja u binarni:
Da bismo heksadekadni broj pretvorili u binarni, dovoljno je samo da svaku od njegovih cifara pretvorimo
u binarni broj iste vrednosti i da sve to redom zapišemo:
Primer: 5B6
Rezultat: 010110110110.
1.13. Pretvaranje binarnog broja u heksadekadni:
Pretvaranje binarnih brojeva u heksadekadne, obavlja se u nekoliko koraka:
-Ukoliko broj cifara binarnog broja nije deljiv sa četiri, potrebno je na početku dopisati onoliko nula
koliko je potrebno da broj cifara postane deljiv sa četiri. Posle toga, broj delimo na grupe od četiri cifre.
-Zatim, svaku od ovih grupa pretvoramo u heksadekadni ekvivalent,. Recimo: grupa 1001 ima vrednost
9, grupa 1100 ima vednost C, a grupa 1111 ima vrednost F (videti tabelu iz uvodnog odeljka o
heksadekadnim brojevima).
Za primer demo uzeti broj 110101111001010 i pretvoriti ga u heksadekadni ekvivalent.
Bududi da ovaj broj ima petnaest cifara, na početku demo dopisati jednu nulu
2015 Brojevni sistemi i organizacija podataka na računaru
16
Primer pretvaranja binarnog broja u dekadni u tri koraka:
Kada izdelimo broj na grupe od četiri cifre, preostaje samo da svaku od grupa pretvorimo u heksadekadni
ekvivalent i redom ih zapišemo.
Rezultat je: 6BCA.
Brojevni sistemi i organizacija podataka na računaru 2015
17
2. PREDSTAVLJANJE PODATAKA NA RAČUNARU, FAJLOVI
2.1. Bit
Osnovna jedinica računarske memorije naziva se bit (binary digit), i predstavlja binarnu cifru koja može
imati vrednost "0" ili "1". Jedan bit može predstaviti dve vrednosti i može se iskoristiti (recimo), za
prikazivanje suprotnih stanja: uključeno - isključeno, da - ne, gore - dole i slično.
2.2. Nibl (nibble)
Niz četiri bita naziva se nibl (engl. nibble). Niz od četiri bita je za nas zanimljiv jer odgovara ciframa
heksadekadnog brojevnog sistema (preko četiri bita možemo predstaviti šesnaest vrednosti, a u ovom
slučaju su to cifre od 0 do F).
2.3. Bajt (byte)
Bajt je niz od osam bitova i kao takav je najznačajnija struktura podataka u računarskoj tehnici. Bajt je
najmanja jedinica podataka koja se može adresirati na računaru. Bitovi u jednom bajtu često se
označavaju po slededoj šemi: zdesna - nalevo, prvi bit se označava sa "0", a poslednji sa "7".
Bit najnižeg reda (0), naziva se još i LSB - Least Significant Bit, dok se bit najvišeg reda naziva MSB - Most
Significant Bit.
Bajt možemo podeliti i na dva nibla, pri čemu bitovi 4-7 čine takozvani nibl višeg reda (High Order
Nibble), dok preostala četiri bita (0-3), čine nibl nižeg reda (Low Order Nibble).
Jednim bajtom može se predstaviti 256 vrednosti. Recimo, pozitivni celi brojevi od 0 do 255, celi brojevi
od -128 do 127. Takođe, jedan bajt dovoljan je za predstavljanje bilo kog znaka sa tastature, o čemu de
biti više reči kasnije.
2.4. Organizacija bajtova u vede jedinice:
Bajt je relativno mala jedinica kada govorimo o vedini stvari vezanih za upotrebu računara: zapisivanju
tekstualnog dokumenta od nekoliko stranica, pesme od 3 minuta, filma od 2 sata i mnogo čega još.
U takvim situacijama, veoma je uobičajeno i mnogo praktičnije upotrebaljavati vede jedinice kao što su
kilobajt, megabajt, gigabajt i terabajt.
2015 Brojevni sistemi i organizacija podataka na računaru
18
Slededa table predstavlja odnose koji važe među informatičkim jedinicama:
Jedinica Vrednost
1 bajt 8 bita
1 kilobajt (KB) 1024 bajta
1 megabajt (MB) 1024 kilobajta
1 gigabajt (GB) 1024 megabajta
1 terabajt (TB) 1024 gigabajta
Ovde smo dužni jednu važnu napomenu. Zašto baš 1024, a ne 1000, verovatno se pitate (kilogram je
1000 grama, a ne 1024; kilometar je 1000 metara, a ne 1024). Podsetimo se da računari operišu
binarnim, a ne dekadnim brojevima. Stoga je prirodno da se u informatici koristi broj koji je stepen broja
2 (1024 je 2 na deseti stepen), a ne stepen broja deset (1000 je deset na tredi stepen).
Postoje,doduše, neke oblasti računarske tehnike gde se, opravdano ili neopravdano, ovaj standard ne
poštuje. Recimo, radni takt procesora označava se u megahercima i gigahercima, pri čemu je jedan
megaherc 1000000 herca, a ne 1048576 (1024 x 1024). Za kapacitet hard diskova koriste se jedinice
gigabajt i terabajt, koje odgovaraju umnošcima broja 10 (x1000), a ne stepenima broja 2 (x1024).
Takođe, veoma je uobičajeno i da jedinice za brzinu prenosa podataka koriste umnoške broja 10. Tako je
1 kilobit u sekundi (kb/s ili kbps) zapravo 1000 bita u sekundi, a ne 1024.
2.5. Fajlovi
Fajl ili datoteku možemo shvatiti kao niz bajtova koji se može zapisati u memoriji računara, a za korisnike
predstavlja neke korisne podatke. Uobičajeno, fajlovi se dele na tekstualne i binarne. Tekstualni fajlovi
obično imaju ekstenziju *.txt (mada ima i drugih ekstenzija za fajlove čiji je format suštinski tekstualni),
dok su binarni fajlovi veoma raznovrsni u smislu ekstenzija i formata sa kojima dolaze. Poznate ekstenzije
binarnih fajlova su *.exe (izvršni fajlovi kojima se pokredu računarske aplikacije), *.bmp, *.jpg, *.gif
(slike), *.wav, *.mp3 (zapis zvuka), *.docx, *.xlsx (dokumenta i tabele) i mnoge druge.
Ekstenzija i format su dva različita pojma. Ekstenzija je, ništa drugo nego dodatak imenu fajla koji
korisnika računara, operativni sistem i programe, upuduju na svrhu i sadržaj datog fajla. Format je nešto
drugo.
Format je način zapisivanja bajtova unutar fajla. Recimo: u tekstualnim fajlovima su bajtovi poređani tako
da svaki bajt odgovara jednom znaku unetog teksta, dok je tipičan format binarnih fajlova koji
predstavljaju slike takav da je prvih nekoliko desetina bajtova zaduženo za čuvanje podataka o
dimenzijama slike, dok se u preostalima redom čuvaju vrednosti o bojama svih piksela date slike.
O ovim formatima bide više reči u slededim odeljcima skripte.
Brojevni sistemi i organizacija podataka na računaru 2015
19
Naravno, fajlovi ne služe samo za zapisivanje teksta i slika. U fajlove možemo zapisati: zvuk, notno pismo,
tehničke crteže, tabele sa proračunima, sadržaj web sajtova, recepte za omiljena jela, mapu Evrope i
drugih kontinenata, podatke o prodatim patikama u nekoj sportskoj radnji i mnogo šta još.
2015 Brojevni sistemi i organizacija podataka na računaru
20
2.6 Predstavljanje teksta na računarima - ASCII kod
U odeljku u kome su opisani razlozi za korišdenje binarnih računara, spomunuli smo da se na računarima
direktno mogu predstaviti samo cifre "0" i "1". Osvrnuli smo se na problem koji bi nastao kada bismo
(preko naponskih stanja procesora), želeli da predstavimo cifre od 0 do 10. S obzirom na to da se u
velikoj vedini jezika srede po nekoliko desetina znakova, a u mnogim jezicima i stotine znakova, nije teško
razumeti da bi direktno predstavljanje ovih simbola bio i mnogo vedi problem.
Međutim, na računarima se svi ti znakovi mogu uspešno predstaviti različitim kombinacijama bitova po
utvrđenim pravilima koja predstavljaju stvar dogovora (kombinacija bitova koja predstavlja neki znak
naziva se kod datog znaka).
Standard na koji demo u ovom odeljku obratiti pažnju je ASCII. Prednost ovog standarda je što je široko
prihvaden, a nedostatak - to što podržava samo znake engleskog alfabeta (kao i nekoliko desetina drugih
vidljivih i "nevidljivih" znakova). ASCII je skradenica čije je značenje: American Standard Code for
Information Interchange. Za potrebe prikazivanja drugih znakova (među kojima su i znaci srpskog jezika),
razvijen je standard Unicode, ali, s obzirom na veliki broj znakova koji su njime obuhvadeni, on nede biti
predmet ove skripte.
ASCII je osmo-bitni kod kojim je mogude predstaviti 256 znakova, međutim, bududi da je u ranim fazama
svog razvoja ovaj standard koristio svega 7 bita, zapravo je samo prvih 128 znakova ASCII koda
standardizovano, a preostalih 128 je podložno određenim odstupanjima.
Izvorna ASCII tabela
Brojevni sistemi i organizacija podataka na računaru 2015
21
U tabeli primedujemo: velika slova (označena kodovima 65-90), mala slova (97-122), cifre 0-9 (kodovi 48-
57), kao i druge znake i specijalne tastere Enter (Carriage Return), Tab, Del, ESC, SPace, itd.
Pogledajmo kako se nizovima bajtova predstavlja tekst:
Niz bajtova (pročitan, recimo, iz nekog fajla), predstavlja niz brojčanih vrednosti od 0 do 255.
Kada računar te vrednosti nađe u ASCII tabeli, interpretira ih (ispisuje) kao slova, znake interpunkcije i
specijalne znake (označeni tamnijom sivom):
Slova i znai interpunkcije se pri ispisu na ekranu vide upravo kako i očekujemo, a specijalni znaci imaju
određenu funkciju. ASCII kod 32 odgovara znaku "space", a to nije znak koji se vidi ved specijalni znak koji
razdvaja susedne znake po širini. ASCII kod 13 odgovara znaku "carriage return" (popularno - enter), što
je, kao što znamo, specijalni znak koji preostali tekst prebacuje u novi red.
Tekst iz prethodne tabele, na ekranu bi izgledao ovako:
Dobar dan!
Novi red.
(Primetimo da između redova postoje dva znaka za prebacivanje u novi red, te su zato redovi dodatno
razmaknuti.)
2.7. Predstavljanje boja na računarima - RGB model
Slika na monitoru sastoji se iz piksela (pixel je skradenica od "picture element"). Boja svakog piksela
dobija se kombinovanjem tri osnovne boje crvene (Red), zelene (Green) i plave (Blue).
Iako postoji više modela za predstavljanje boja na računarima, najuobičajeniji je onaj koji koristi 8 bita,
tojest jedan bajt, za svaku od tri osnovne boje.
Paleta za biranje boja (Color Picker) iz Windows aplikacija
2015 Brojevni sistemi i organizacija podataka na računaru
22
Pošto je sa 8 bita mogude obuhvatiti 256 nijansi svake od osnovne tri boje, kombinacijom možemo dobiti
ukupno: 256 x 256 x 256 = 16777216 boja.
U oblasti we b dizajna, vrlo je popularan način zapisivanja boja preko heksadekadnih brojeva. To recimo
izgleda ovako: #43F579.
Iako ovo deluje komplikovano, zapravo nije. Prve dve cifre predstavljaju crvenu komponentu (43), druge
dve zelenu (F5), a poslednje dve plavu (79). Dve cifre heksadekadnog koda obuhvataju vrednosti od 0 do
255, a to je upravo jedan bajt.
Čista crvena boja označava se kao: #FF0000, čista zelena je #00FF00, a plava je #0000FF. Crna boja sastoji
se iz šest nula: #000000, a kod bele boje su svi bitovi uključeni: #FFFFFF.
Heksadekadni kod za boju koju vidite na slici je: # 00A2E8.
Slike na računarima su sastavljene iz piksela;
ukoliko dovoljno uvedamo neku sliku, možemo to i videti.
2.8. Predstavljanje zvuka na računarima - PCM format
Zvuk nastaje tako što se vibracije koje određena tela proizvode prenose putem (najčešde) vazduha.
Bubna opna ljudskog uha osetljiva je na ove vibracije i mi na taj način čujemo. Ove vibracije možemo
"beležiti" i reprodukovati preko takovaznih elektro-akustičkih pretvarača, tojest, mikrofona i zvučnika (u
zvučnike svakako spadaju i slušalice).
Mikrofon je uređaj koji na jednom kraju ima osetljivu opnu koja vibrira pod uticajem promenljivog
vazdušnog pritiska, a na drugom, električni priključak na kome se javlja promenljivi električni napon,
nastao od pomenutih vibracija koje su prenete putem vazduha.
Da bi ovaj zvuk nekako bio zapisan na računaru, potrebno je da se između mikrofona i računara priključi
takozvani Analogno-Digitalni konvertor (koji je, u vedini slučajeva, zapravo deo zvučne karte računara).
Ponešto pojednostavljen, princip rada ovog uređaja možemo opisati na slededi način: određen broj puta,
u jedinici vremena (verovatno najuobičajenija vrednost u tom smislu je 44100 puta u sekundi),
promenljivi napon koji se registruje na mikrofonskom priključku pretvara se u binarni broj (pošto
membrana mikrofona vibrira "napred-nazad", promenljivi napon napon na priključku mikrofona takođe
Brojevni sistemi i organizacija podataka na računaru 2015
23
može biti i pozitivan i negativan, a samim tim i binarni broj koji se na ovaj način dobija). Svaki ovakav broj
naziva se uzorak (engl. sample). Ukoliko je zvuk glasan (na način kako bi to registrovale naše uši),
vazdušni pritisak de biti velik, a samim tim i napon koji dobijamo na izlazu mikrofona. Binarni broj koji
dobijamo u ovakvoj situaciji je takođe velik. Ukoliko je zvuk tih, vazdušni pritisak koji se stvara de biti
mali, pa de i napon na mikrofonu biti mali, čemu de odgovarati i vrednost binarnog broja na izlazu AD
konvertora.
Šema procesa AD konverzije (snimanje zvuka na računaru)
Šta ako je zvuk suviše glasan? U ovoj situaciji dolazi do zasidenja, tojest, sve binarne vrednosti koje
dobijamo na izlazu AD konvertora odgovaraju maksimalnoj mogudoj vrednosti za dati sistem. Ono što
čujemo je neprijatan, glasan zvuk, pun izobličenja.
Šta ako je zvuk suviše tih? U ovom slučaju vrednosti napona koji nastaje i binarnih brojeva koji se
dobijaju konverzijom, su bliske nuli. Čudemo zvuk koji je izrazito tih, ili, ako smo baš preterali, snimljeni
zvuk de se "utopiti" u šum pojačala (veoma tih zvuk nalik šuštanju lišda, koji nastaje kao posledica
nesavršenosti tranzistora i ostalih komponenti u audio pojačalima).
Kada snimamo zvuk, moramo voditi računa da jačina zvuka bude na "zlatnoj sredini" između suviše tihog
i preglasnog.
Format zapisa zvuka koji smo ovde (uprošdeno i primereno uzrastu učenika) opisali, stručno se naziva
PCM - Pulse Code Modulation. Tipične vrednosti vezane za ovaj format koje ste verovatno više puta videli
do sada su: 44100Hz i 16 bita. Prva vrednost je (ved pomenuta), učestalost (frekvencija) uzorkovanja
(semplovanja), a druga preciznost zapisivanja (engl. bit-depth).
AD
Konvertor
(pretvarač)
Računar
Električni signal
(promenljivi
napon)
Vibracije vazduha
(promenljivi
vazdušni pritisak)
Niz uzoraka
(nule i jedinice)
0111001010
2015 Brojevni sistemi i organizacija podataka na računaru
24
Što je preciznost zapisivanja veda, time je veda i naša sposobnost da zabeleživo veliki tzv. dinamički
raspon (raspon između najtišeg zvuka koji se može zabeležiti iznad praga šuma i najglasnijeg zvuka koji se
može zabeležiti bez izobličenja), što praktično znači da na istom mediju za zapisivanje možemo beležiti i
veoma tihe i veoma glasne zvuke, što je dobar način da se očuva prirodnost i lepota zvučnog zapisa.
Semplovi - grafički prikaz zvuka električne gitare
(kada mali pravougaonik dovoljno uvedamo, vidimo pojedinačne uzorke)
Kada govorimo o reprodukciji zvuka, proces se obavlja u obrnutom smeru: uzorci (semplovi) se dovode
na ulaz digialno-analognog konvertora (razume se - istom učestalošdu koja je korišdena pri uzorkovanju),
a uređaj ih pretvara u promenljivi napon. Ovaj napon, pojačan preko pojačavača (na šemi demo ga
izostaviti jer, iako je u pitanju jako bitan uređaj, on ne menja prirodu signala, ved samo utiče na jačinu),
pokrede membrane zvučnika, a te vibracije posredstvom vazduha dolaze do naših ušiju i na taj način
čujemo ono što smo snimili.
Šema procesa DA konverzije - reprodukcija zvuka preko računara
DA
Konvertor
(pretvarač)
Računar
Električni signal
(promenljivi
napon)
Niz uzoraka
(nule i jedinice)
0111001010