You are on page 1of 8

Fakultet informacijskih tehnologija

ProgramiranjeI_sylabus.doc

PREDSTAVLJANJE PODATAKA U RAČUNARU

Svaka, pa i najmanja operacija, odnosno informacija, s kojom računar manipuliše mora


biti u obliku 0 i 1 ("on-off", "uključeno-isključeno"...). Korištenje "on-off" kodova za
predstavljanje informacija pojavilo se još mnogo prije nego sami računari - Morzeov kod
(azbuka).

Ova spoznaja odmah povlači i pitanje kako se podaci, odnosno informacije


predstavljaju u računaru (data representation ili data encoding). Može se zaključiti da
sve informacije (grafika, audio, klik na miša i sl.) moraju biti sistematski i na odgovarajući
unaprijed-dogovoren način kodirane odnosno predstavljene u računaru.

BROJEVI SA NEPOMIČNIM ZAREZOM (Fixed Point Numbers)

Oni predstavljaju skup brojeva u kojem svaki pojedini broj ima tačno određen broj cifri, a
decimalni zarez (tačka) je uvijek na istom mjestu.

Primjer jednog takvog skupa u dekadnom sistemu su brojevi: 0.52, 6.25, 8.12. U
ovom primjeru svi brojevi ovog skupa imaju po tri cifre od kojih su dvije uvijek iza
decimalnog zareza. U binarnom sistemu jedan takav skup bi izgledao: 11.01, 10.11, 01.01.

Kada ovakav broj predstavljamo u računaru, binarni zarez (tačka) se nigdje ne


pohranjuje nego se njeno mjesto samo podrazumijeva.

- Područje vrijednosti (Rang) i preciznost (Precision) kod brojeva sa


nepomičnim zarezom

Brojevi sa nepomičnim zarezom mogu poprimati vrijednosti koje se izražavaju zatvorenim


intervalom (od najmanjeg do najvećeg broja) i sa preciznošću koja je određena razlikom
između dva uzastopna broja, iz definisanog intervala, na brojnoj osi.

Za navedeni primjer brojeva koji imaju po tri cifre od kojih su dvije uvijek iza
decimalnog zareza rang je od 0.00 do 9.99 uključujući i krajnje vrijednosti tj. zatvoreni
interval je [0.00, 9.99]. Preciznost je određena razlikom između dva susjedna broja na
brojnoj osi, a to je u ovom slučaju 0.01 (npr. 5.01 - 5.02 = 0.01). Greška se javlja na 1/2
razlike između dva susjedna broja. U ovom slučaju je to 0.005.

Pomjeranjem decimalnog zareza na desno odnosno lijevo dobivamo intervale [000,


999] sa preciznošću od 1.0, odnosno [.000, .999] sa preciznošću od 0.001. U oba slučaja
broj decimalnih "objekata" je 103, tj. moguće je prikazati 1000 različitih vrijednosti.

Intervali mogu počinjati i završavati bilo kojim brojem kao npr. [00,99], [-50,+49]
i td.

Rang (područje vrijednosti) i preciznost su veoma bitna pitanja u računarskoj arhitekturi,


jer to su ograničenja kojih se moramo pridržavati i na koja se moramo naviknuti, za razliku
od realnog svijeta gdje takva ograničenja ne postoje.

Digitalna logika::Vježbe
1
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc

1.1.2. Zakon asocijativnosti ne važi uvijek kod računara

Ranije smo naučili zakon asocijativnosti u matematici koji glasi:

a + (b + c) = (a + b) + c

Sada ćemo na jednom primjeru provjeriti da li zakon asocijativnosti važi za fixed


point numers (brojeve sa nepomičnim zarezom).

U razmatranje ćemo uzeti brojeve predstavljene kao jednocifreni brojevi sa


decimalnom tačkom (zarezom) na desnoj strani i u intervalu (rangu) [-9,9].

Primjer: vrijednosti parametara: a = 7, b = 4, c = -3

a + (b + c) = 7 + (4+ (-3)) = 7 + 1 = 8

(a + b) + c = (7 + 4) + (-3) = 11 + (-3) …

Međutim, broj 11 je broj koji nije u rangu datog brojnog sistema. Ovdje se javlja
overflow (prekoračenje vrijednosti) u postupku izračunavanja izraza što uzrokuje
pogrešan i krajnji rezultat, bez obzira što bi konačni rezultat bio u postavljenom intervalu.

Ovo nam govori da zakon asocijativnosti u ovakvim i sličnim slučajevima ne važi


zbog ograničenosti brojeva sa nepomičnim zarezom.

Kada dođe do pojave overflow-a problem rješavamo tako što se prvo ustanovi gdje
se javlja takva vrijednost u toku operacije, operaciju se prekida, a korisnik obavještava o
stanju. Druga mogućnost je da se ponovi izračunavanje sa brojevima većeg ranga što se
vrlo rijetko koristi.

1.1.3. Baze brojnih sistema

Ovdje posmatramo brojne sisteme koji se najčešće koriste u računarskoj tehnologiji i to:
binarni (baza 2), oktalni (baza 8) i heksadecimalni (baza 16).

Baza nekog brojnog sistema definiše cifre koje formiraju brojeve iz tog brojnog
sistema. Pr. u dekadnom sistemu bi to bile cifre: 0, 1, 2, 3, 4, 5, 6, 7, 8 i 9, a njihovom
kombinacijom može se prikazati svaki broj iz sistema.

Generalni oblik brojeva sa nepomičnim zarezom piše se:

gdje n predstavlja broj cifri (mjesta) lijevo od zareza u određenoj bazi, m je broj
cifri (mjesta) desno od zareza u određenoj bazi, bi cifra na i-toj poziciji, a k predstavlja
bazu.

Digitalna logika::Vježbe
2
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc

Ovakav oblik prikazivanja broja, gdje svaka pozicija ima dodijeljenu vrijednost nam
je poznata kao weighted position code (sistemi gdje i pozicija cifre utiče na vrijednost).

Kao primjer uzimamo broj (541.25)10. Ovdje imamo n = 3, m = 2, k = 10, iz čega


slijedi:

5 x 102 + 4 x 101 + 1 x 100 + 2 x 10-1 + 5 x 10-2 =

(500)10 + (40)10 + (1)10 + (2/10)10 + (5/100)10 = (541.25)10

Binarni, oktalni i heksadecimalni sistem

Problem binarnih sistema jeste u tome što se binarni broj sastoji od mnogo više
cifara nego njemu ekvivalentan broj u nekom drugom sistemu. Tu se javlja velika
mogućnost greške u pisanju tih brojeva jer je to veliki niz 0 i 1. Zbog toga se koriste brojni
sistemi sa bazom većom od 2, a to su oktalni i heksadecimalni brojni sistemi.

Oktalni (baza 8) i heksadecimalni (baza 16) brojni sistemi su srodni sa binarnim


sistemom jer su te baze djeljive sa 2. U heksadecimalnom brojnom sistemu osim 10 cifri
koje koristimo u dekadnom sistemu potrebno je još šest, a to su slova: A čija je vrijednost
10, B = 11, C =12, D=13, E=14 i F=15. U sljedećoj tabeli je uporedni pregled četiri
spomenuta brojna sistema.

Binarni Oktalni Decimalni Heksadecimalni

(baza 2) (baza 8) (baza 10) (baza 16)

0 0 0 0

1 1 1 1

10 2 2 2

11 3 3 3

100 4 4 4

101 5 5 5

110 6 6 6

111 7 7 7

1000 10 8 8

Digitalna logika::Vježbe
3
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc

1001 11 9 9

1010 12 10 A

1011 13 11 B

1100 14 12 C

1101 15 13 D

1110 16 14 E

1111 17 15 F

Poredeći ove kolone primjećujemo da je za prikaz jednocifrenog oktalnog broja u


binarnom sistemu potrebno 3 bita (23 = 8), a heksadecimalnog broja u binarnom sistemu
potrebna su 4 bita (24 = 8). Analogno tome k bita za sistem baze 2k.

Digitalna logika::Vježbe
4
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc

BROJEVI SA NEPOMIČNIM ZAREZOM SA PREDZNAKOM (SIGNED FIXED POINT


NUMBER)

Do sada je bilo riječi o predstavljanju brojeva sa nepomičnim zarezom bez predznaka,


međutim stanje se uveliko mijenja kada se pojavljaju brojevi sa predznakom, odnosno i
negativni brojevi sa nepomičnim zarezom. Postoje četiri različita načina njihovog
predstavljanja a to su: vrijednost s predznakom, komplement jedinice, komplement
dvojke, predstavljanje dodavanjem.

U sljedećoj tabeli prikazana je njihova usporedba (na primjeru sa tri bita).

Binarni
Decimalni
bez Vrijednost s Komplement Komplement dodavanje
predznaka predznakom jedinice dvojke 4

7 111 - - - -

6 110 - - - -

5 101 - - - -

4 100 - - - -

3 011 011 011 011 111

2 010 010 010 010 110

1 001 001 001 001 101

+0 000 000 000 000 100

-0 - 100 111 000 011

-1 - 101 110 111 010

-2 - 110 101 110 001

-3 - 111 100 101 000

-4 - - - 100

Vrijednost s predznakom (Signed Magnitude)

Ovaj način predstavljanja je najbliži nama, tj. najsličniji predstavljanju predznaka


u dekadnom sistemu. Kao što u dekadnom sistemu ispred broja (na lijevoj strani) stoji
znak + ili -, tako u binarnom sistemu, kod ovog načina predstavljanja, krajnja lijeva cifra
datog binarnog broja određuje njegov predznak. I to tako što 0 znači "+", a 1 znači "-".
Pogledajmo to na primjeru broja (+12)10, odnosno (-12)10 u 8-bitnom formatu:

(+12)10 = (00001100)2

( -12)10 = (10001100)2

Digitalna logika::Vježbe
5
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc

Negativni broj jednostavno tvorimo tako što pozitivnom broju zamijenimo početnu
cifru 0 (s lijeve strane) sa cifrom 1. Treba napomenuti da se ovdje postoje prikazi za 0, tj.
pozitivna i negativna nula, a to su: 00000000 i 10000000. U 8-bitnom formatu imamo
mogućnost predstavljanja 28 = 256 brojeva. U ovom slučaju +0 i -0 predstavljaju različiti
brojevi, pa imamo 28 - 1 = 255 različitih mogućnosti.

Komplement jedinice (One's Complement)

Ovaj način se vrlo jednostavno primjenjuje. Negativan binarni broj prikazujemo


zamjenom svih nula u jedinice (0 u 1) i svih jedinica u nule (1 u 0) datog pozitivnog
binarnog broja. Ovaj postupak zamjene 0 u 1 i obrnuto se naziva komplementacija bita.
Iz prethodne tabele primjećujemo da su kao i kod vrijednost s predznakom načina prikaza,
kod pozitivnih brojeva prve cifre nule, a kod negativnih jedinice.

Ponovo pogledajmo to na primjeru broja (+12) 10, odnosno (-12)10 u 8-bitnom


formatu:

(+12)10 = (00001100)2

( -12)10 = (11110011)2

Kod komplementa jedinice +0 i -0 predstavljaju binarni brojevi 00000000 i


11111111, tako da i ovdje imamo 28 - 1 = 255 različitih mogućnosti.

Ovaj način prikazivanja negativnih brojeva se ne koristi često, jer se javljaju


komplikacije kod sabiranja ovakvih brojeva.

Komplement dvojke (Two's Complement)

Komplement dvojke se formira na način sličan prethodnom s tim da se nakon


komplementiranja svih bita u datom broju, dobijenom broju dodaje 1-ca. Ako se vrijednost
koja se prenosi desi kod najviše važnog bita (krajnji lijevi bit) onda se prenešena vrijednost
gubi odnosno ne prenosi se. I kod komplementa dvojke krajnje lijeve cifre za predstavljanje
pozitivnih brojeva su 0, a negativnih 1, kao i kod predhodna sva načina.

Ovdje, međutim, za razliku od prva dva slučaja imamo samo jednu vrijednost za
+0, odnosno -0. Za primjer ćemo uzeti (+0)10. Binarno je to (00000000)2,
komplementiranjem dobijamo (11111111)2 i dodavanje 1-ce, imamo ponovo (00000000)2
= (-0)10. jer se vrijednost koja se prenosi gubi kod krajnje lijeve cifre. Sada imamo
mogućnost predstavljanja 28 = 256 različitih brojeva.

Pogledajmo sada ponovo broj (+12)10 8-bitnom formatu koji je binarno


(00001100)2 komplementiranjem dobijamo (11110011) 2, a dodavanjem 1-ce imamo (-
12)10 = (11110100)2.

Broj pozitivnih i broj negativnih brojeva je identičan, s tim da 0 predstavlja pozitivan


broj, što je i logično jer je njen predznak 0. Pošto pozitivni brojevi počinju sa 0, a negativni
sa -1, apsolutna vrijednost najmanjeg negativnog broja će biti veća od apsolutne
vrijednosti najvećeg pozitivnog broja. Najmanji negativni broj je -128, dok je najveći

Digitalna logika::Vježbe
6
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc

pozitivan 127. Ako pokušamo da nađemo pozitivnu vrijednost od broja (-128)10 vidjećemo
da ponovo dobijamo negativan broj.

( -128)10 = (10000000)2

01111111

+ 1

-----------------

(10000000)2

U nastavku vježbi komplement dvojke ćemo najčešće koristiti.

Predstavljanje dodavanjem

U excess ili bias predstavljanju, brojevi su predstavljeni kao brojevi bez predznaka,
s tim što im je vrijednost "pomjerena" za određenu vrijednost - bias. Dovoljno je kolonu
„bez predznaka“ pomjeriti za određenu vrijednost, u ovom slučaju za 4, jer je to polovina
mogućih kombinacija predstavljenih sa 3 bita (2 3=8).

Zadaci za vježbanje

Ako želimo izvršiti sabiranje (oduzimanje) dva binarna broja od kojih je jedan negativan
onda se moramo poslužiti drugim komplementom. Prvo ćemo napisati drugi komplement
jednog broja, a zatim ga sabrati sa prvim brojem.

Primjer 1. Izvršiti oduzimanje dva broja 32 i 14.

Koristiti 8-bitni prikaz brojeva.

Rješenje: Binarni ekvivalent broja 32 je 00100000, a broja 14 je 00001110. Drugi


komplement broja 14 je 11110010 i ovaj broj sada predstavlja negativnu vrijednost broja
+14.

(Drugi komplement u binarnom sistemu se dobije tako što prepisujemo cifre binarnog broja
(od krajnje desne cifre prema krajnje lijevoj) do prve jedinice. Tu jedinicu prepisujemo, a
poslije nje mijenjamo nule u jedinice, a jedinice u nule (pr. - Drugi komplement broja 1010
je 0110).
Prvi komplement binarnog broja se tvori tako što sve 1 u binarnom broju zamijenimo sa 0
i obratno- sve 0 u 1. (Pr.- Prvi komplement broja 1010 je 0101)

Digitalna logika::Vježbe
7
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc

Nakon toga saberemo 32 sa negativnom predstavom broja +14 odnosno, u ovom slučaju,
njegovim drugim komplementom. Operacija oduzimanja je zapravo operacija
sabiranja odnosno 32 + (-14).

00100000 =+32
11110010 = Drugi komplement broja 14
00010010 = 18

Digitalna logika::Vježbe
8
http://dl.fit.ba/

You might also like