09.11.2014 Views

UVOD U ORGANIZACIJU RAČUNARA - Alas

UVOD U ORGANIZACIJU RAČUNARA - Alas

UVOD U ORGANIZACIJU RAČUNARA - Alas

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>UVOD</strong> U <strong>ORGANIZACIJU</strong><br />

RAČUNARA<br />

~ vežbe ~


BROJEVNI SISTEMI<br />

Osnovna podela na<br />

<br />

BROJEVNI SISTEMI<br />

• pozicione<br />

primer je uobičajeni dekadni zapis brojeva<br />

• nepozicione<br />

primer je rimski zapis brojeva<br />

POZICIONI BROJEVNI SISTEMI<br />

Svaka cifra ima svoju vrednost<br />

Vrednost pozicije je stepen osnove<br />

Broj se dobija sabiranjem proizvoda vrednosti cifre i<br />

vrednosti pozicije na kojoj se cifra nalazi:<br />

3129 = 3*1000 + 1*100 + 2*10 + 9*1<br />

AZBUKA<br />

Uobičajene cifre za sisteme sa osnovom do 10<br />

• 0, 1, 2, 3, 4, 5, 6, 7, 8, 9<br />

Ako je osnova veća od 10, upotrebljava se potreban broj<br />

slova sa početka abecede<br />

• A, B, C, D, E, F, ...<br />

NAJVAŽNIJE OSNOVE<br />

U osnovi savremenih digitalnih računara su binarna<br />

aritmetika i logika<br />

• u upotrebi su pozicioni brojčani sistemi<br />

• najvažnije osnove su<br />

<br />

2 (binarni sistem)<br />

16 (heksadekadni sistem)<br />

<br />

- 1 -


PRIMERI ČITANjA BROJEVA<br />

(3129) 10<br />

= 3*1000 + 1*100 + 2*10 + 9*1<br />

(3127) 8 = 3*512 + 1*64 + 2*8 + 7*1<br />

= (1623) 10<br />

(3129) 16 = 3*4096 + 1*256 + 2*16 + 9*1<br />

= (12585) 10<br />

HORNEROVA ŠEMA<br />

(3129) 10<br />

= (((3*10) + 1)*10 + 2)*10 + 9<br />

(3127) 8 = (((3*8) + 1)*8 + 2)*8 + 7<br />

= (1623) 10<br />

(3129) 16 = (((3*16) + 1)*16 + 2)*16 + 9<br />

= (12585) 10<br />

ZADACI (1)<br />

Pročitati naredne zapise (tj. prevesti ih u zapise sa<br />

osnovom 10):<br />

• (10) 2, (110) 2, (10110) 2, (10110100110) 2, (12120122101) 2<br />

• (212001) 3, (123031) 4, (2431) 5<br />

• (6732) 8, (12131) 8<br />

• (2C) 16, (1A3) 16, (FFFF) 16, (23B2E) 16<br />

REŠENjA (1)<br />

2, 6, 22, 1446, neispravan zapis<br />

622, 1741, 366<br />

3546, 5209<br />

- 2 -


44, 419, 65535, 146222<br />

ZAPISIVANjE BROJEVA<br />

Postupak formiranja zapisa počiva na deljenju osnovom<br />

sistema<br />

• cifre se određuju od najniže ka najvišoj<br />

• postupak se odnosi na neoznačene cele brojeve<br />

PRIMERI ZAPISIVANjA BROJEVA (1)<br />

Broj (3129) 10 zapisati u sistemu sa osnovom 10:<br />

ostatak<br />

3129 : 10 = 312 9<br />

312 : 10 = 31 2<br />

31 : 10 = 3 1<br />

3 : 10 = 0 3<br />

(3129) 10<br />

PRIMERI ZAPISIVANjA BROJEVA (2)<br />

Broj (3129) 10 zapisati u sistemu sa osnovom 8:<br />

ostatak<br />

3129 : 8 = 391 1<br />

391 : 8 = 48 7<br />

48 : 8 = 6 0<br />

6 : 8 = 0 6<br />

(6071) 8<br />

- 3 -


PRIMERI ZAPISIVANjA BROJEVA (3)<br />

Broj (3129) 10 zapisati u sistemu sa osnovom 4:<br />

ostatak<br />

3129 : 4 = 782 1<br />

782 : 4 = 195 2<br />

195 : 4 = 48 3<br />

48 : 4 = 12 0<br />

12 : 4 = 3 0<br />

3 : 4 = 0 3<br />

(300321) 4<br />

PRIMERI ZAPISIVANjA BROJEVA (4)<br />

Broj (3129) 10 zapisati u sistemu sa osnovom 16:<br />

ostatak<br />

3129 : 16 = 195 9<br />

195 : 16 = 12 3<br />

12 : 16 = 0 C<br />

(C39) 16<br />

ZADACI (2)<br />

Zapisati naredne brojeve u sistemima sa osnovama 2, 3,<br />

4, 8 i 16:<br />

• 23, 76, 43, 91, 134, 375, 246<br />

REŠENjA (2)<br />

2: 10111, 1001100, 101011, 1011011, 10000110,<br />

101110111, 11110110<br />

- 4 -


3: 212, 2211, 1121, 10101, 11222, 111220, 100010<br />

4: 113, 1030, 223, 1123, 2012, 11313, 3312<br />

8: 27, 114, 53, 133, 206, 567, 366<br />

16: 17, 4C, 2B, 5B, 86, 177, F6<br />

RAD SA OZNAČENIM BROJEVIMA<br />

Najčešći načini zapisivanja su<br />

• znak i apsolutna vrednost<br />

• potpuni komplement<br />

• nepotpuni komplement<br />

POTPUNI KOMPLEMENT<br />

Pozitivni brojevi se zapisuju kao apsolutna vrednost broja<br />

sa dodatnom nulom na mestu najveće težine u funkciji<br />

znaka<br />

Negativni brojevi se zapisuju kada se<br />

• svaka cifra apsolutne vrednosti zameni svojim<br />

komplementom<br />

• na rezultat se doda 1 na mestu najmanje težine<br />

PRIMER POTPUNOG KOMPLEMENTA<br />

Zapisati broj (-3129) 10 u potpunom komplementu sa 6<br />

cifara:<br />

i 0 1 2 3 4 5<br />

x i 9 2 1 3 0 0<br />

nc i 0 7 8 6 9 9<br />

pc i 1 7 8 6 9 9<br />

- 5 -


= (996871) 10<br />

ZADACI (1)<br />

Zapisati u potpunom komplementu sa 6 cifara u sistemu<br />

sa istom osnovom brojeve:<br />

(-10011) 2 , (-1101) 2 ,<br />

(-221) 3 , (-102) 3 ,<br />

(-2103) 4 , (-332) 4 ,<br />

(-2326) 8 , (-1327) 8 ,<br />

(-A3DF) 16 , (-2AC3) 16<br />

REŠENjA (1)<br />

(101101) 2 , (110011) 2 ,<br />

(222002) 3 , (222121) 3 ,<br />

(331231) 4 , (333002) 4 ,<br />

(775452) 8 , (776451) 8 ,<br />

(FF5C21) 16 , (FFD53D) 16<br />

ZNAK BROJA<br />

Znak broja se prepoznaje na osnovu cifre najveće težine<br />

• ako je cifra najveće težine najmanja cifra sistema, onda se<br />

radi o pozitivnom broju<br />

• ako je cifra najveće težine najveća cifra sistema, onda se<br />

radi o zapisu negativnog broja<br />

Primeri:<br />

• (0333) 4<br />

, (3000) 4<br />

- 6 -


KONVERZIJA IZMEĐU ZAPISA RAZLIČITIH DUŽINA (1)<br />

Upisivanje u dužu reč se izvodi dodavanjem cifara<br />

najveće težine<br />

• ako se radi o pozitivnom broju, dopisuju se cifre 0<br />

• ako se radi o negativnom broju (u potpunom komplementu)<br />

dopisuju se najviše cifre<br />

PRIMERI KONVERZIJA (1)<br />

Iz zapisa sa 6 cifara u zapis sa 8 cifara:<br />

(001101) 2 => (00001101) 2<br />

(110011) 2 => (11110011) 2<br />

(222002) 3 => (22222002) 3<br />

(022121) 3 => (00022121) 3<br />

(331231) 4 => (33331231) 4<br />

(033002) 4 => (00033002) 4<br />

(745452) 8 => (77745452) 8<br />

(076451) 8 => (00076451) 8<br />

(0F5C21) 16 => (000F5C21) 16<br />

(F7D53D) 16 => (FFF7D53D) 16<br />

KONVERZIJA IZMEĐU ZAPISA RAZLIČITIH DUŽINA (2)<br />

Upisivanje u kraću reč se izvodi brisanjem cifara najveće<br />

težine<br />

• ako su sve obrisane cifre 0, a prva naredna je takođe 0, radi<br />

se o pozitivnom broju i konverzija je ispravna<br />

• ako su sve obrisane cifre najviše (tj. osnova-1), a prva<br />

naredna je ponovo najviša, radi se o negativnom broju i<br />

konverzija je ispravna<br />

• inače je u pitanju greška prekoračenja<br />

- 7 -


PRIMERI KONVERZIJA (2)<br />

Iz zapisa sa 8 cifara u zapis sa 6 cifara:<br />

(00011101) 2 => (011101) 2<br />

(11110011) 2 => (110011) 2<br />

(00110011) 2 => (110011) 2 , prekoračenje<br />

(11010011) 2 => (010011) 2 , prekoračenje<br />

(000F5C21) 16 => (0F5C21) 16<br />

(FFDF5C21) 16 => (DF5C21) 16 , prekoračenje<br />

(00AFD53D) 16 => (AFD53D) 16 , prekoračenje<br />

(F37FD53D) 16 => (7FD53D) 16 , prekoračenje<br />

SABIRANjE<br />

Sabiranje u pozicionim sistemima je slično za sve osnove<br />

• sabiraju se cifre od najniže prema najvišoj, sa prenosom<br />

PRIMER SABIRANjA BROJEVA<br />

• (3129) 10 + (5273) 10 =<br />

i 3 2 1 0<br />

x i 3 1 2 9<br />

y i 5 2 7 3<br />

p. 0 1 1 0<br />

z i 8 4 0 2<br />

= (8402) 10<br />

- 8 -


ZADACI (2)<br />

Izračunati naredne zbirove:<br />

• (10011) 2 + (1101) 2<br />

• (221) 3 + (102) 3<br />

• (2103) 4 + (332) 4<br />

• (1327) 8 + (2326) 8<br />

• (2AC3) 16 + (A3DF) 16<br />

REŠENjA (2)<br />

(100000) 2<br />

(1100) 3<br />

(3101) 4<br />

(3655) 8<br />

(CEA2) 16<br />

PREKORAČENjE PRI SABIRANjU<br />

Prekoračenje se javlja ako rezultat sabiranja ne može<br />

biti zapisan pretpostavljenim brojem cifara<br />

Prekoračenje se prepoznaje tako što<br />

• sabirke sleva proširimo jednom cifrom čija je vrednost<br />

takva da ne menja vrednost broja<br />

• ako su najviša i dopunjena cifra rezultata različite, došlo je<br />

do prekoračenja<br />

• do prekoračenja može doći samo ako se sabiraju brojevi<br />

istog znaka<br />

- 9 -


PRIMER PREKORAČENjA (1)<br />

• (0929) 4 10 + (0773)4 10 =<br />

i 4 3 2 1 0<br />

x i 0 0 9 2 9<br />

y i 0 0 7 7 3<br />

p. 0 1 1 1 0<br />

z i 0 1 7 0 2<br />

= *(1702) 4 10<br />

PRIMER PREKORAČENjA (2)<br />

• (9138) 4 10 + (9591)4 10 =<br />

i 4 3 2 1 0<br />

x i 9 9 1 3 8<br />

y i 9 9 5 9 1<br />

p. 1 0 1 0 0<br />

z i 9 8 7 2 9<br />

= *(8729) 4 10<br />

- 10 -


ZADACI (3)<br />

Izračunati naredne zbirove i proveriti da li dolazi do<br />

prekoračenja:<br />

• (0111) 4 2 + (0010)4 2<br />

• (0010) 4 2 + (0011)4 2<br />

• (1101) 4 2 + (1011)4 2<br />

• (1010) 4 2 + (1101)4 2<br />

• (0B4F) 4 16 + (0C81)4 16<br />

• (0D27) 4 16 + (0194)4 16<br />

• (F428) 4 16 + (FC25)4 16<br />

• (F37F) 4 16 + (042C)4 16<br />

REŠENjA (3)<br />

*(1001)4 2<br />

(0101)4 2<br />

(1000)4 2<br />

*(0100)4 2<br />

*(17D0) 4 16<br />

(0EBB) 4 16<br />

(F04D) 4 16<br />

(F7AB) 4 16<br />

ODUZIMANjE<br />

Oduzimanje u pozicionim sistemima je slično za sve<br />

osnove<br />

• oduzimaju se cifre od najniže prema najvišoj, uz pozajmice<br />

- 11 -


PRIMER ODUZIMANjA BROJEVA (1)<br />

• (3129) 10 - (2735) = 10<br />

i 4 3 2 1 0<br />

x i 0 3 1 2 9<br />

y i 0 2 7 3 5<br />

p. 0 1 1 0 0<br />

z i 0 0 3 9 4<br />

= (0394) 10<br />

PRIMER ODUZIMANjA BROJEVA (2)<br />

• (0129) 4 10 - (0816)4 10 =<br />

i 4 3 2 1 0<br />

x i 0 0 1 2 9<br />

y i 0 0 8 1 6<br />

p. -1 -1 0 0 0<br />

z i 9 9 3 1 3<br />

= (9313) 4 10<br />

- 12 -


ZADACI (4)<br />

Izračunati naredne razlike:<br />

• (10011) 2 - (1101) 2<br />

• (221) 3 - (102) 3<br />

• (2103) 4 - (332) 4<br />

• (2326) 8 - (1327) 8<br />

• (A3DF) 16 - (2AC3) 16<br />

• (029B7) 5 16 - (045AC)5 16<br />

• (00110010) 8 2 - (01010111)8 2<br />

REŠENjA (4)<br />

(110) 2<br />

(112) 3<br />

(1111) 4<br />

(777) 8<br />

(791C) 16<br />

(FE40B)5 16<br />

(11011011) 8 2<br />

PREKORAČENjE PRI ODUZIMANjU<br />

Prekoračenje se javlja ako rezultat oduzimanja ne može<br />

biti zapisan pretpostavljenim brojem cifara<br />

Prekoračenje se prepoznaje tako što<br />

• brojeve sleva proširimo jednom cifrom čija je vrednost<br />

takva da ne menja vrednost broja<br />

• ako su najviša i dopunjena cifra rezultata različite, došlo je<br />

do prekoračenja<br />

• do prekoračenja može doći samo ako se oduzimaju brojevi<br />

različitog znaka<br />

- 13 -


PRIMER PREKORAČENjA (1)<br />

• (0929) 4 10 - (9273)4 10 =<br />

i 4 3 2 1 0<br />

x i 0 0 9 2 9<br />

y i 9 9 2 7 3<br />

p. -1 0 -1 0 0<br />

z i 0 1 6 5 6<br />

= *(1656) 4 10<br />

ZADACI (5)<br />

Izračunati naredne razlike i proveriti da li dolazi do<br />

prekoračenja:<br />

• (0111) 4 2 - (1010)4 2<br />

• (1010) 4 2 - (0011)4 2<br />

• (0101) 4 2 - (1011)4 2<br />

• (1110) 4 2 - (0101)4 2<br />

• (FB4F) 4 16 - (0C81)4 16<br />

• (FD27) 4 16 - (0194)4 16<br />

• (0428) 4 16 - (FC25)4 16<br />

• (037F) 4 16 - (F42C)4 16<br />

- 14 -


REŠENjA (5)<br />

*(1101)4 2<br />

*(0111)4 2<br />

*(1010)4 2<br />

(1001)4 2<br />

*(EECE) 4 16<br />

(FB93) 4 16<br />

(0803) 4 16<br />

(0F53) 4 16<br />

- 15 -


ŠTA JE TO TEKST?<br />

ZAPISIVANjE TEKSTOVA<br />

Tekst (ili dokument) je<br />

• "informacija namenjena ljudskom sporazumevanju koja<br />

može biti prikazana u dvodimenzionalnom obliku... Tekst se<br />

sastoji od grafičkih elemenata kao što su karakteri, geometrijski<br />

ili fotografski elementi ili njihove kombinacije, koji čine sadržaj<br />

dokumenta." (ISO-definicija)<br />

TEKST JE NIZ KARAKTERA<br />

Iako obično tekst zamišljamo kao dvodimenzioni objekat,<br />

u računarima se tekst predstavlja kao jednodimenzioni<br />

(linearni) niz karaktera.<br />

Potrebno je, dakle, uvesti specijalne karaktere koji<br />

označavaju prelazak u novi red, tabulator, kraj teksta i<br />

slično<br />

ZAPIS KARAKTERA U RAČUNARU<br />

Računari su zasnovani na binarnoj aritmetici<br />

Cele brojeve je moguće predstaviti u binarnom sistemu<br />

Osnovna ideja je svakom karakteru pridružiti određeni<br />

ceo broj na unapred dogovoreni način<br />

Ove brojeve zovemo kodovima karaktera (character<br />

codes)<br />

- 16 -


KOLIKO KARAKTERA ŽELIMO DA PREDSTAVIMO U<br />

RAČUNARIMA?<br />

Tokom razvoja računarstva broj karaktera je postajao sve<br />

veći<br />

Pošto je u početku razvoja englesko govorno područje<br />

bilo dominantno osnovno je bilo predstaviti sledeće<br />

karaktere:<br />

ENGLESKO GOVORNO PODRUČJE<br />

Velika slova engleskog alfabeta : A,B,...,Z<br />

Mala slova engleskog alfabeta : a,b,...,z<br />

Cifre : 0,1,...,9<br />

Interpunkcijske znake : .,:;’+*-_ i slično<br />

Specijalne znake : kraj reda, tabulator i slično<br />

STANDARDNI KARAKTERSKI KODOVI<br />

Sedamdesetih godina su se pojavile tabele standardnih<br />

karakterskih kodova dovoljne za zapis pomenutih<br />

karaktera<br />

Najpoznatiji su<br />

• EBCDIC – IBM-ov standard, korišćen uglavnom na mainframe<br />

računarima, pogodan za bušene kartice<br />

• ASCII – Standard iz koga se razvila većina današnjih<br />

standarda<br />

ASCII<br />

ASCII (American Standard Code for Information<br />

Interchange)<br />

ASCII sedmobitan (broj karaktera je 128)<br />

- 17 -


ASCII TABELA<br />

PRIMERI<br />

Karakter A se zapisuje kao (41) 16 tj. 0x41 što je (65) 10 tj.<br />

(1000001) 2<br />

Razmak se zapisuje kao (20) 16 što je (32) 10 tj. (0100000) 2<br />

Zapišite cifru 3 u ASCII kodu<br />

Zapišite tekst Fakultet u ASCII kodu<br />

OZNAKA ZA KRAJ REDA<br />

Oznaka za kraj reda se ne zapisuje isto u svim<br />

operativnim sistemima<br />

Pod Windows ova se oznaka se zapisuje sa dva karaktera<br />

(CR LF), 0xD 0xA tj. 13 10 – istorijski razlozi (stari<br />

štampači)<br />

- 18 -


Unix koristi samo karakter CR tj. 0xD<br />

ŠTA SA OSTALIM JEZICIMA?<br />

Razvojem računarstva se javlja potreba kodiranja<br />

tekstova i na drugim jezicima<br />

Kroz istoriju su postojala mnoga rešenja, od kojih su se<br />

neka zadržala, a neka su nestala<br />

KODNE STRANE<br />

Pod kodnom stranom (Code page) tj. skupom karaktera<br />

(Character set, charset) podrazumevamo uređenu listu<br />

karaktera predstavljenih svojim karakterskim kodovima<br />

Podaci se u računarima obično zapisuju bajt po bajt<br />

ASCII je sedmobitni standard<br />

ASCII karakteri se zapisuju tako što se u svakom bajtu bit<br />

najveće težine postavi na 0<br />

To ostavlja prostor za novih 128 karaktera čiji binarni<br />

zapis počinje sa 1<br />

Ovaj prostor se može popuniti na razne načine<br />

Rešenje nije univerzalno, jer svakako na svetu postoji<br />

više od 256 različitih karaktera<br />

Postavljeni su razni standardi dopunjavanja ovih 128<br />

karaktera<br />

Svim ovim kodnim stranama je zajedničko prvih 128<br />

karaktera i oni se poklapaju sa ASCII<br />

Ovako napravljene kodne strane obično omogućuju<br />

kodiranje tekstova na više srodnih jezika (obično i<br />

geografski bliskih)<br />

Nama su uglavnom važne kodne strane napravljene za<br />

centralno-evropske (Central European) latinice, kao i<br />

ćirilične kodne strane<br />

- 19 -


NAJČEŠĆE KORIŠĆENE KODNE STRANE KOD NAS<br />

ISO 8859-2 (Latin2)<br />

ISO 8859-5 (Ćirilična)<br />

Windows 1250<br />

Windows 1251 (Ćirilična)<br />

• Prve dve su delo međunarodne organizacije za standardizaciju<br />

(International Standard Organization), dok su naredne dve<br />

Microsoft-ovi standardi<br />

LATIN 1<br />

Poželjno je poznavati i osnovnu kodnu stranu ISO 8859-1<br />

(Latin1) jer je veoma često postavljena kao<br />

podrazumevana kodna strana. Ona se koristi za zapis<br />

tekstova na zapadno evropskim jezicima (Western<br />

European)<br />

ISO 8859-1 (LATIN1)<br />

- 20 -


ISO 8859-2 (LATIN2)<br />

WINDOWS 1250<br />

- 21 -


WINDOWS 1251<br />

PRIMERI<br />

Kako izgleda reč Matf zapisana u kodnoj strani ISO 8859-<br />

2? A u Windows 1250? A u Windows 1251?<br />

A reč lišće?<br />

Šta predstavlja niz kodova 138 65 111 33 u kodnoj strani<br />

ISO 8859-2? A u Latin1?<br />

VIŠEBAJTNI KARAKTERSKI KODOVI<br />

Iako navedene kodne strane omogućuju kodiranje<br />

tekstova koji nisu na engleskom jeziku nije moguće npr. u<br />

istom tekstu mešati ćirilicu i našu latinicu<br />

Azijskim jezicima nije dovoljno 256 mesta za zapis svih<br />

karaktera<br />

Zbog toga se uvode višebajtni karakterski kodovi<br />

- 22 -


MBCS<br />

Pre svega zbog potreba istočno azijskih korisnika uvedeni<br />

su tzv. višebajtni skupovi karaktera tj. Multi-Byte<br />

Character Sets (MBCS)<br />

Ideja je u tome da se najčešće korišćeni karakteri<br />

zapisuju koristeći samo jedan bajt, dok se ostali karakteri<br />

zapisuju koristeći dva bajta, tj. koristi se mešavina<br />

jednobajtnih i dvobajtnih karakterskih kodova (pod UNIXom<br />

nekad čak i trobajtnih)<br />

Ovo značajno otežava tumačenje podataka<br />

UCS, ISO 10646, UNICODE<br />

Kasnih osamdesetih, dve velike organizacije su pokušale<br />

standardizaciju tzv. Univerzalnog skupa karaktera<br />

(Universal Character Set - UCS)<br />

To su bili ISO, kroz standard 10646 i projekat UNICODE<br />

organizovan i finansiran uglavnom od strane američkih<br />

firmi koje su se bavile proizvodnjom višejezičkog softvera<br />

ISO 10646<br />

ISO 10646 je zamišljen kao 4-bajtni standard. Pri tome se<br />

prvih 65536 karaktera koriste kao osnovni višejezični skup<br />

- 23 -


karaktera dok je ostali prostor ostavljen kao proširenje<br />

za drevne jezike, celokupnu naučnu notaciju i slično<br />

UNICODE<br />

Vremenom su se pomenuta dva projekta združila i nastao<br />

je jedinstven dvobajtni standard koji jednostavno<br />

nazivamo UNICODE<br />

UNICODE svakom karakteru dodeljuje dvobajtni kod<br />

Prvih 128 karaktera se poklapaju sa ASCII standardom,<br />

dok su sledećih 128 napravljeni tako da se pokalapaju sa<br />

Latin1 standardom<br />

PRIMERI<br />

Zapisati reč Matf koristeći UNICODE<br />

Zapisati reč višnjičica ćirilicom i latinicom u UNICODE<br />

kodu<br />

UCS-2<br />

Unicode standard u suštini predstavlja veliku tabelu koja<br />

svakom karakteru dodeljuje broj<br />

Standardi koji opisuju kako se niske karaktera onda<br />

prevode u nizove bajtova se dodatno definišu<br />

ISO definiše UCS-2 standard koji jednostavno svaki<br />

UNICODE karakter prevodi u odgovarajuća dva bajta<br />

UTF<br />

Tekstovi kodirani preko UCS-2 standarda sadrže veliki<br />

broj nula, koje obično u operativnim sistemima poput<br />

UNIX-a i u programskom jeziku C imaju specijalno<br />

značenje<br />

- 24 -


Iz istog razloga softver koji je razvijen za rad sa<br />

dokumentima u ASCII formatu ne može da radi bez<br />

izmena nad dokumentima kodiranim preko UCS-2<br />

standarda<br />

A Unicode transformation format (UTF) algoritam koji<br />

svakom UNICODE karakteru dodeljuje određeni niz<br />

bajtova čija dužina varira od 1 do najviše 6<br />

UTF je ASCII kompatibilan, što znači da se ASCII karakteri<br />

zapisuju pomoću jednog bajta, na standardni način<br />

UTF-8<br />

Najčešće korišćena varijanta ovog agloritma je UTF-8<br />

koja je dovoljna za zapis svih dvobajtnih UNICODE<br />

karaktera<br />

Pored ovoga ISO uvodi i UTF-16, UTF-32, kao i standard<br />

UCS-4<br />

KARAKTERI, GLIFOVI, FONTOVI<br />

Vrlo često se ne pravi jasna razlika između karaktera i<br />

njihove grafičke reprezentacije<br />

Grafičku reprezentaciju karaktera nazivamo glifovima<br />

(glyph)<br />

Skupove glifova nazivamo fontovima (font)<br />

Korespodencija između karaktera i glifova ne mora biti<br />

jednoznačna<br />

Jedan glif može da predstavi više karaktera (ligature)<br />

Isti karakter može da se predstavlja različitim glifovima u<br />

zavisnosti od svoje pozicije u reči<br />

WGL4<br />

Windows uvodi skup karaktera pod imenom Windows<br />

Glyph List 4 (WGL4) koji sadrži preko 600 karaktera koji<br />

se koriste u evropskim jezicima<br />

- 25 -


Za razliku od tradicionalnih fontova koji u sebi sadže<br />

glifove za karaktere jedne kodne strane, TrueType<br />

fontovi koji podržavaju WGL4 standard sadrže glifove za<br />

sve evropske karaktere<br />

- 26 -


PREDSTAVLjANjE SLIKA<br />

BOJE<br />

Postoje dva osnovna modela predstavljanja boja<br />

• dodavanjem boja<br />

• oduzimanjem boja<br />

PROPUŠTANjE SVETLOSTI (EKSP.)<br />

Između izvora bele svetlosti i belog papira postavljamo<br />

obojena stakla<br />

• žuto staklo propušta žutu svetlost<br />

• crveno propušta crvenu<br />

• ako žutu svetlost propustimo kroz crveno staklo, prolazi<br />

crvena svetlost<br />

• ako crvenu svetlost propustimo kroz žuto staklo, prolazi<br />

crvena svetlost<br />

• zaključujemo da je crvena svetlost komponenta žute<br />

svetlosti<br />

- 27 -


ADITIVNI MODEL BOJA<br />

Uočavaju se tri osnovne obojene komponente bele<br />

svetlosti:<br />

• crvena<br />

• zelena<br />

• plava<br />

Sve ostale obojene svetlosti mogu se dobiti kombinacijom<br />

prethodnih u različitim intenzitetima<br />

Model se obično naziva RGB<br />

PRIMENE ADITIVNOG MODELA<br />

Aditivni model se prirodno primenjuje kada se boje grade<br />

dodavanjem komponenti svetlosti<br />

• monitori<br />

• projektori<br />

Nije idealan u slučajevima kada se boja dobija na drugi<br />

način<br />

PRIMER MODELA RGB<br />

- 28 -


- 29 -


ODUZIMANjE BOJA<br />

U eksperimentu staklo neke komponente svetlosti<br />

propušta, a ostale zadržava<br />

Ako za osnovne boje uzimamo one koje prolaze kada se<br />

zadržavaju osnovne komponente svetlosti, dobijaju se<br />

• žuta (zadržana je plava)<br />

• plavozelena (zadržana je crvena)<br />

• ružičasta (zadržana je zelena)<br />

• crna (zadržana je bela)<br />

Model se obično naziva CMYK<br />

CMYK<br />

PRIMENE SUBTRAKTIVNOG MODELA<br />

Subtraktivni model se prirodno primenjuje kada se boje<br />

grade odbijanjem svetlosti, tj. zadržavanjem komponenti<br />

• slikanje<br />

• štampanje<br />

• uopšte, nanošenje bojenih materija na posmatranu površinu<br />

- 30 -


DRUGI MODELA BOJA<br />

Često se primenjuje model HSB<br />

• H (hue) – ton<br />

• S (saturation) – zasićenost<br />

• B (brightness) – osvetljenost<br />

H – TON<br />

H - Ton se opisuje na krugu od 360 o<br />

• 0 – crvena<br />

• 60 – žuta<br />

• 120 – zelena<br />

• 180 – plavozelena<br />

• 240 – plava<br />

• 300 - ružičasta<br />

S – ZASIĆENOST<br />

S - Zasićenost predstavlja intezitet boje, tj. odnosi se na<br />

dominaciju nijanse u boji, takoreći zasićenost - odnos<br />

čiste boje i bezbojne sive. Opisuje se sa 0-100%<br />

• 0% – siva boja<br />

• 100% - čista jarka boja<br />

B – OSVETLjENOST<br />

B – Osvetljenost govori koliko će boja biti tamna ili<br />

svetla tj. koliki je intezitet osvetljenja. Opisuje se sa 0-<br />

100%<br />

• 0% - crna<br />

• 100% - čista svetla boja<br />

- 31 -


PRIMER MODELA HSB (1)<br />

ČISTA SVETLA BOJA B=100%<br />

- 32 -


PRIMER MODELA HSB (2)<br />

JARKA SVETLA BOJA S=100%<br />

PRIMER MODELA HSB (3)<br />

CRVENA BOJA H=0<br />

- 33 -


PREVOĐENjE RGB U HSB<br />

Zadatak je prevesti komponente zadate u RGB modelu<br />

kao (R, G, B) u HSB model<br />

Vrednosti komponenti R, G i B se dodele promenljivima<br />

B 1 , B 2 i B 3 tako da važi B 1 ≥B 2 ≥B 3<br />

H - Ton određuje odnos dve najizraženije RGB<br />

komponente B 1 i B 2 :<br />

otklon = H 0 = 60 * (B 2 -B 3 ) / (B 1 -B 3 )<br />

H = vrednost tona za najizraženiju komponentu +<br />

otklon,<br />

pri čemu se znak otklona bira na osnovu<br />

vrednosti srednje izražene komponente<br />

<br />

<br />

S - Zasićenost određuju najintenzivnija i najslabija RGB<br />

komponenta:<br />

S = (B 1 -B 3 ) / B 1<br />

B - Osvetljenost određuje najintenzivnija komponenta<br />

RGB:<br />

B = B 1 / raspon [raspon = 256]<br />

- 34 -


PRIMER RGB – HSB<br />

RGB = (200,100,175)<br />

-> B 1 = 200, B 2 = 175, B 3 = 100<br />

H 0 = 60 * 75 / 100 = 45<br />

H(R) = 0 = 360 - vrednost tona za najizraženiju<br />

komponentu<br />

H(B) = 240 - vrednosti tona srednje izražene komponente<br />

Najkraće rastojanje je od 360 ◦ prema 240 ◦ , obilaskom kruga<br />

suprotno od kazaljke na satu, pa se prema tome vrednost<br />

otklona oduzima.<br />

H = H(R) – H0 = 315<br />

S = 100 / 200 = 50%<br />

B = 200 / 256 = 78.125%<br />

PREDSTAVLjANjE SLIKE<br />

Slika se u digitalnim sistemima predstavlja matricom<br />

tačaka – piksela<br />

Parametri predstavljanja su<br />

• rezolucija<br />

• dinamički raspon<br />

REZOLUCIJA<br />

Rezolucija je mera preciznosti predstavljanja<br />

• relativna rezolucija je broj piksela po jedinici dužine<br />

(obično po inču)<br />

• apsolutna rezolucija je veličina matrice mereno brojem<br />

piksela<br />

- 35 -


DINAMIČKI RASPON<br />

Dinamički raspon određuje preciznost predstavljanja<br />

pojedinačnih piksela<br />

Izražava se brojem različitih podržanih nijansi svake<br />

hromatske komponente svetlosti<br />

• dinamički raspon monohromatskog piksela meri se brojem<br />

nijansi sive<br />

• dinamički raspon piksela u boji meri se brojem nijansi svake<br />

od komponenti<br />

OSETLjIVOST LjUDSKOG OKA<br />

Ljudsko oko je u stanju da raspozna oko 350 000 boja<br />

• nešto je osetljivije prema nijansama zelene boje<br />

DINAMIČKI RASPON – RGB<br />

Uobičajeni modeli pri prikazivanju su<br />

• 12 bita (4096 nijansi) – po 4 bita (16 nijansi) za svaku<br />

osnovnu komponentu<br />

• 15 bita (32768) – po 5 bita (32)<br />

• 16 bita (65536) – po 5 bita (32) za crvenu i plavu i 6 bita<br />

(64) za zelenu<br />

• 24 bita (16777216) – po 8 bita (256)<br />

Broj boja zavisi od broja bita kojom se predstavlja boja. 24-bitna<br />

paleta tzv. true color, proizvodi 10.000.000 boja koje ljudsko oko<br />

može da uoči.<br />

- 36 -


DINAMIČKI RASPON – RGB (2)<br />

Uobičajeni modeli pri obradi su<br />

• 30 bita – po 10 bita (1024)<br />

• 36 bita – po 12 bita (4096)<br />

• 48 bita – po 16 bita (65536)<br />

Smisao ovih formata je u očuvanju kvaliteta pri obradi<br />

slika<br />

• Normalno ljudsko oko ne može razlikovati ove zapise od 24-<br />

bitnog<br />

ZAPISIVANjE SLIKE<br />

Zapis slike se obično sastoji od<br />

• zaglavlja – podataka koji opisuju<br />

<br />

širinu<br />

<br />

visinu<br />

<br />

dinamički raspon<br />

<br />

detalje zapisa sadržaja slike<br />

• sadržaja slike<br />

VELIČINA ZAPISA SLIKE<br />

Bez kompresije za sliku je potrebno: S*V*B/8 bajtova,<br />

gde je<br />

• S – širina slike u pikselima<br />

• V – visina slike u pikselima<br />

• B – broj bitova kojima se opisuje svaki piksel<br />

• Pored toga, potreban je i određen prostor za zaglavlje<br />

Na primer<br />

• 1024 x 768 x 16 / 8 = 1.5 MB<br />

• 1600 x 1200 x 24 / 8 = 5.5 MB<br />

Pri pripremi za štampu, veličina slike se procenjuje kao:<br />

S*V*R*R*B / 8<br />

• S – širina slike u cm (inch)<br />

• V – visina slike u cm (inch)<br />

- 37 -


• B – broj bitova kojima se opisuje svaki piksel<br />

• R – rezolucija slike u broju piksela/cm (inch)<br />

Uobičajene rezolucije slika<br />

• za prikaz na ekranu:<br />

• 75 – 150 ppi (piksela po inču), oko 30 – 60 ppcm<br />

• za štampu<br />

• 100 – 600 ppi, oko 40 – 240 ppcm<br />

Na primer<br />

• 13cm * 10cm * 30ppcm * 30ppcm * 24b / 8 = 343 KB<br />

• 28cm * 20cm * 120ppcm * 120ppcm * 24b / 8 = 23 MB<br />

KOMPRESIJA SLIKE<br />

Kompresiji slika se pristupa iz više razloga, a pre svega<br />

zbog<br />

• smanjenja zauzeća prostora<br />

• olakšavanja komunikacije<br />

<br />

smanjivanja opterećenja komunikacionih linija<br />

skraćivanje trajanja prenosa podataka<br />

<br />

METODI KOMPRESIJE<br />

Metodi kompresije se dele na dve osnovne kategorije<br />

• metodi kompresije bez gubitka informacija<br />

• metodi kompresije sa gubitkom informacija<br />

KOMPRESIJA BEZ GUBITKA<br />

Obično počivaju na opštim algoritmima za kompresiju<br />

podataka<br />

• najbolje rezultate daju ako slike imaju veće površine koje<br />

su jednobojne ili popunjene nekim jednostavnim uzorcima<br />

linijski crteži, ilustracije, stripovi, uzorci ekrana,...<br />

<br />

• nisu efikasni u slučaju slika sa puno prelaza tonova:<br />

<br />

fotografije, intenzivno šarene slike<br />

- 38 -


Neki od formata za zapisivanje slika:<br />

• BMP<br />

• GIF<br />

• TIF<br />

• PNG<br />

- 39 -


KOMPRESIJA SA GUBITKOM<br />

Počivaju na specifičnim algoritmima koji su projektovani<br />

upravo za rad sa slikama<br />

Opisuju delove slike nekim matematičkim modelom sa<br />

izabranom preciznošću aproksimacije<br />

Preciznost aproksimacije se obično može konfigurisati<br />

• veća preciznost – manja kompresija<br />

• manja preciznost – veća kompresija<br />

MODEL KOMPRESIJE SA GUBITKOM<br />

Koristi se činjenica da oko raspoznaje<br />

• oko 128 tonova<br />

• 16 (žuta) do 23 (crvena) zasićenosti<br />

• oko 128 nivoa osvetljenosti<br />

Pri kompresiji je važnije očuvati ton i osvetljenost nego<br />

zasićenost<br />

Zato se često primenjuje model boja čije komponente<br />

kvalitativno opisuju svetlost:<br />

• HSB, YUV, HLS,...<br />

- 40 -


MNOŽENjE I DELjENjE<br />

MNOŽENjE NEOZNAČENIH BROJEVA<br />

Proizvod se formira kao zbir delimičnih proizvoda<br />

Ako je cifra množioca 1, delimični proizvod je jednak<br />

množeniku, a ako je 0, onda je i delimični proizvod 0<br />

Počinje se od cifre najmanje težine<br />

Svaki sledeći delimični proizvod se pomera za po jedno<br />

mesto ulevo<br />

PRIMER<br />

14 x 9 (množenik x množilac)<br />

00001110 x 00001001<br />

00001110<br />

00000000<br />

00000000<br />

00001110<br />

00000000<br />

00000000<br />

00000000<br />

_00000000________<br />

0000000001111110<br />

POBOLjŠANjE IMPLEMENTACIJE OVOG ALGORITMA<br />

Sabiranje može da se vrši odmah po izračunavanju svakog<br />

od delimičnih proizvoda formiranjem međuzbira.<br />

Početna vrednost međuzbira = prvom delimičnom<br />

proizvodu.<br />

Svaki naredni delimični proizvod se pomera za jedno<br />

mesto ulevo u odnosu na prethodno formirani delimični<br />

proizvod i sabira sa međuzbirom.<br />

- 41 -


Dobijeni zbir je novi međuzbir.<br />

Na taj način se štedi na prostoru i broju angažovanih<br />

registara pri sabiranju.<br />

HARDVERSKI ALGORITAM<br />

Hardverski se ovaj algoritam implementira preko<br />

SERIJSKOG MNOŽIOCA koji koristi 3 registra A, M i P i<br />

jednobitni registar C koji sadrži prenos pri sabiranju.<br />

Registri A, P i M i jednobitni C<br />

Algoritam:<br />

• M = množenik, P = množilac, A = 0, C = 0<br />

• U svakom koraku množenja bit množioca na mestu najmanje<br />

težine P 0<br />

određuje da li će u tom koraku množenik biti sabran sa<br />

tekućom vrednošću proizvoda.<br />

• Ponavljamo n puta (sve dok se ne obrade svi bitovi u<br />

množiocu)<br />

<br />

<br />

Ako je P 0<br />

1, A = A + M<br />

C, A, P logički pomeramo udesno (početni bitovi se pune 0) pri<br />

čemu se sva tri posmatraju kao 1 registar<br />

• Rezultat je upisan u AP<br />

Ovakav način primene algoritma nije dobar ako je bilo<br />

koji od činilaca negativan.<br />

U slučaju negativnog broja vodeća jedinica u potpunom<br />

komplementu predstavlja znak koji je uzrok nekorektnog<br />

rezultata:<br />

• Ako je množenik negativan sabiranje znaka je nekorektno.<br />

• Ako je množilac negativan tada pomeranje ulevo ne daje<br />

korektnu vrednost zbog zapisa broja u potpunom komplementu.<br />

Zato se koristi Butov algoritam.<br />

- 42 -


BUTOV ALGORITAM<br />

Registri A, M, P i jednobitni P’<br />

M=množenik, P=množilac, A=0, P’=0<br />

Ponavljamo n puta:<br />

• ako je P 0<br />

P’=01 onda A=A+M<br />

• ako je P 0<br />

P’=10 onda A=A-M<br />

• APP’ se aritmetički pomera udesno (početni bitovi se pune<br />

vrednošću najvišeg bita iz APP’)<br />

Rezultat je upisan u AP posmatrane kao 1 registar.<br />

DELjENjE NEOZNAČENIH BROJEVA<br />

Registri A, M, P<br />

M=delilac, P=deljenik, A=0<br />

Ponavljamo n puta:<br />

• AP pomeramo aritmetički ulevo<br />

• A = A-M<br />

• ako je A>=0 onda P 0<br />

=1<br />

• ako je A


Na kraju je količnik u P a ostatak u A<br />

- 44 -


BCD<br />

PRIMER<br />

Prevesti dekadni broj 0,4 u binarni sistem:<br />

0 1 2 3 4 5 6 7 8 9<br />

0,4 0,8 0,6 0,2 0,4 0,8 0,6 0,2 0,4 0,8<br />

0 0 1 1 0 0 1 1 0 0<br />

Dobijeni prevod je periodičan razlomljeni broj:<br />

(0,4) 10 ≈(0,011001100...) 2<br />

BINARNI KODOVI DEKADNIH CIFARA<br />

Zbog problema sa preciznim predstavljanjem dekadnih<br />

razlomljenih brojeva u binarnom sistemu pojavila se<br />

ideja o kodiranju pojedinačnih dekadnih cifara binarnim<br />

brojevima.<br />

NEKI BINARNI KODOVI DEKADNIH CIFARA<br />

Dekadna<br />

Binarni kod<br />

cifra 8421 2421 5421 753- 84- Višak Ciklični<br />

6 2-<br />

1<br />

3<br />

0 0000 0000 0000 0000 0000 0011 0001<br />

1 0001 0001 0001 1001 0111 0100 0101<br />

2 0010 0010 0010 0111 0110 0101 0111<br />

3 0011 0011 0011 0010 0101 0110 1111<br />

4 0100 0100 0100 1011 0100 0111 1110<br />

5 0101 1011 1000 0100 1011 1000 1100<br />

6 0110 1100 1001 1101 1010 1001 1000<br />

- 45 -


7 0111 1101 1010 1000 1001 1010 1001<br />

8 1000 1110 1011 0110 1000 1011 1011<br />

9 1001 1111 1100 1111 1111 1100 0011<br />

Kod je težinski ako se vrednost dekadne cifre u tom kodu<br />

dobija kao zbir proizvoda vrednosti binarnih cifara i<br />

vrednosti pozicija na kojima se one nalaze.<br />

Navedeni kodovi, osim kodova višak 3 i cikličnog, su<br />

težinski kodovi. Cifre u imenima kodova označavaju<br />

“težine” pozicija.<br />

Na primer, u kodu 84-2-1 kod 1011 je kod cifre 5<br />

(1*8+1*(-2)+1*(-1)=8-2-1).<br />

Od navedenih kodova komplementarni su kodovi 2421,<br />

753-6, 84-2-1 i višak 3.<br />

Osobina cikličnog koda je da se pri prelasku na narednu<br />

cifru menja samo jedna binarna cifra.<br />

NEOZNAČENI BINARNO KODIRANI DEKADNI BROJEVI<br />

Binarno kodirani zapis neoznačenog dekadnog broja u<br />

nekom kodu se dobija tako što se binarno kodira u<br />

odgovarajućem kodu svaka od njegovih cifara.<br />

PRIMERI<br />

Broj 5384 možemo zapisati u različitim kodovima na<br />

sledeći način:<br />

0101 0011 1000 0100 (8421)<br />

1000 0110 1011 0111 (Višak 3)<br />

1011 0101 1000 0100 (84-2-1)<br />

- 46 -


OZNAČENI BINARNO KODIRANI DEKADNI BROJEVI<br />

Označeni binarno kodirani dekadni brojevi se zapisuju na<br />

dva načina:<br />

• Znak i apsolutna vrednost. Vrednost cifre za znak broja<br />

mogu da budu proizvoljne i zavise od konkretne implementacije<br />

na računaru.<br />

• U potpunom komplementu pri čemu se prvo nađe potpuni<br />

komplement broja u sistemu sa osnovom 10, pa se zatim izvrši<br />

kodiranje.<br />

NEPAKOVANI ZAPIS<br />

Binarno kodirani dekadni brojevi se mogu koristiti kako za<br />

zapis brojeva, tako i za zapis znakova. Iz tog zahteva<br />

proističu neke specifičnosti zapisa brojeva.<br />

Kod računara koji koriste ASCII kod u nepakovanom zapisu<br />

broja se u polubajt veće težine upisuje cifra 5 koja<br />

označava da je u bajtu zapisana cifra, a u polubajtu<br />

manje težine se zapisuje BCD zapis cifre u<br />

odgovarajućem kodu.<br />

BCD brojevi se u računaru obično zapisuju u obliku znak i<br />

apsolutna vrednost.<br />

Znak se zapisuje u polubajtu veće težine (umesto cifre 5)<br />

poslednjeg bajta i to kao binarno zapisana heksadekadna<br />

cifra A za pozitivne brojeve, a B za negativne.<br />

PRIMER<br />

+896312 → 58 59 56 53 51 A2<br />

-896312 → 58 59 56 53 51 B2<br />

- 47 -


PAKOVANI ZAPIS<br />

Ukoliko se koriste samo brojčani podaci dolazi do<br />

nepotrebnog trošenja prostora, jer se ponavlja vrednost<br />

5 u svakom polubajtu veće težine, osim kod poslednjeg<br />

bajta.<br />

Zato se uvodi pakovani zapis BCD brojeva.<br />

Kod pakovanog zapisa se u svakom polubajtu, osim u<br />

poslednjem, čuva neka cifra broja.<br />

U poslednjem polubajtu zapisa, čuva se znak broja prema<br />

prethodnom dogovoru.<br />

Pošto se koristi ceo broj bajtova, u slučaju zapisa broja<br />

sa parnim brojem cifara u vodeći polubajt se upisuje 0.<br />

PRIMERI<br />

+896312 → 08 96 31 2A<br />

-896312 → 08 96 31 2B<br />

+56421 → 56 42 1A<br />

-56421 → 56 42 1B<br />

DECIMALNA ARITMETIKA<br />

Nepakovani zapis brojeva se najčešće koristi pri ulaznoizlaznim<br />

operacijama za direktno unošenje brojeva(na<br />

primer, kada kucamo na tastaturi), dok se u aritmetičkim<br />

operacijama koristi pakovani zapis.<br />

Operacije sa BCD brojevima su sporije u odnosu na<br />

operacije sa binarnim brojevima zbog specifičnosti<br />

zapisa.<br />

- 48 -


PROMENA ZNAKA<br />

Pošto su BCD brojevi u računaru zapisani u obliku znak i<br />

aspolutna vrednost promena znaka je jednostavna. Samo<br />

se menja vrednost poslednjeg polubajta.<br />

SABIRANjE I ODUZIMANjE<br />

08 96 31 2A → 08 96 31 2B<br />

Pri sabiranju i oduzimanju važe opšta pravila sabiranja i<br />

oduzimanja celih brojeva u zapisu znak i apsolutna<br />

vrednost. To znači da se operacije nad označenim<br />

brojevima mogu svesti na operacije nad neoznačenim<br />

brojevima.<br />

Sabiranje BCD brojeva se vrši u dve faze.<br />

U prvoj fazi se BCD zapisi cifara sabiraka sabiraju kao<br />

neoznačeni celi četvorocifreni binarni brojevi. Ako se javi<br />

prekoračenje, ono se prenosi kao jedinica koja se dodaje<br />

zbiru narednih dekadnih cifara. Ovi prenosi se pamte<br />

zbog upotrebe u drugoj fazi.<br />

U drugoj fazi se vrše korekcije koje zavise od koda u<br />

kome smo predstavljali dekadne cifre.<br />

Oduzimanje se može izvršiti na dva načina:<br />

• Po sličnom principu kao i sabiranje, pri čemu se u obe faze<br />

umesto sabiranja vrši oduzimanje, i<br />

• Kao sabiranje u potpunom komplementu umanjenika sa<br />

umanjiocem kome je promenjen znak.<br />

(8-5=8+(-5))<br />

- 49 -


SABIRANjE U KODU 8421<br />

Prva faza je nezavisna od koda u kome su zapisane<br />

dekadne cifre.<br />

Neka je n maksimalan broj dekadnih cifara sabiraka.<br />

Neka su p’ i prenosi u prvoj fazi sabiranja sa dekadnog<br />

mesta i-1 na mesto i, a p’’ i odgovarajući prenosi u drugoj<br />

fazi. Važi p’ 0 =0 i p’’ 0 =0.<br />

Druga faza se sastoji iz n koraka u kojima se zdesna na<br />

levo grupama od po četiri binarne cifre rezultata prve<br />

faze dodaju korekcije i računa prenos za sledeći korak.<br />

U i-tom koraku radimo:<br />

• Neka je c 3<br />

c 2<br />

c 1<br />

c 0<br />

i-ta grupa od četiri binarne cifre gledano<br />

zdesna na levo<br />

• t i<br />

=c 3<br />

c 2<br />

c 1<br />

c 0<br />

+ p’’ i<br />

• Ako je p’ = 1 ili t i+1 i ≥ (1010) 2<br />

onda ovoj grupi cifara<br />

dodajemo korekciju (0110) 2<br />

i pri tome određujemo prenos p’’ i+1<br />

.<br />

Ako je p’ n =1 ili p’’ n =1 došlo je do prekoračenja.<br />

ZAŠTO JE KOREKCIJA 0110?<br />

p’ i+1 = 1 znači da je postojao prenos između dekadnih<br />

cifarskih mesta u prvoj fazi sabiranja. Vrednost binarnog<br />

prenosa sa cifarskog mesta i na mesto i+1 je 16 10 , dok je<br />

vrednost dekadnog prenosa između ove dve pozicije 10 10 ,<br />

pa zbog toga treba dodati razliku 16 – 10 10 10 = 6 10 =<br />

0110 2 .<br />

t i ≥ (1010) 2 Pošto je dobijena vrednost veća od koda<br />

najveće dekadne cifre, mora da usledi prenos na naredno<br />

dekadno cifarsko mesto i+1. Slično kao u prethodnom<br />

slučaju treba dodati razliku 0110 2 .<br />

- 50 -


PRIMER<br />

X= -23492 Y=-5189 X+Y=-28681<br />

23 49 2B + 05 18 9B = 28 68 1B<br />

-X 0010 0011 0100 1001 0010<br />

-Y 0000 0101 0001 1000 1001<br />

p’ 0 0 0 1 0 0<br />

S 1 0010 1000 0110 0001 1011<br />

p’’ 0 0 0 0 1 0<br />

k 0000 0000 0000 0110 0110<br />

-S 0010 1000 0110 1000 0001<br />

=> S=-28681<br />

ODUZIMANjE U KODU 8421<br />

U prvoj fazi se BCD zapisi cifara umanjenika i umanjioca<br />

oduzimaju kao neoznačeni celi četvorocifreni binarni<br />

brojevi. Ako se javi potreba za pozajmicom, ona se<br />

prenosi kao jedinica koja se oduzima od razlike narednih<br />

dekadnih cifara. Ove pozajmice se pamte zbog upotrebe<br />

u drugoj fazi i označavaju se sa p’ i .<br />

U drugoj fazi se zdesna nalevo posmatraju po četiri<br />

binarne cifre c 3 c 2 c 1 c 0 rezultata prve faze i od njih se<br />

oduzima (0110) 2 ako važi p’ i+1 = 1.<br />

PRIMER<br />

X=-52629 Y=2634 X+Y=-49995<br />

52 62 9B + 02 63 4A = 49 99 5B<br />

-X 0101 0010 0110 0010 1001<br />

Y 0000 0010 0110 0011 0100<br />

p 0 1 1 1 0 0<br />

S 1 0100 1111 1111 1111 0101<br />

K 0000 0110 0110 0110 0000<br />

-S 0100 1001 1001 1001 0101<br />

- 51 -


SABIRANjE U KODU VIŠAK 3<br />

Neka važe oznake koje smo koristili za kod 8421.<br />

I u kodu višak 3 se druga faza izvodi u n koraka gde se u<br />

svakom koraku zdesna na levo dodaju korekcije grupama<br />

od po četiri binarne cifre rezulata prve faze.<br />

U i-tom koraku radimo:<br />

• Neka je c 3<br />

c 2<br />

c 1<br />

c 0<br />

i-ta grupa od četiri binarne cifre gledano<br />

zdesna na levo<br />

• Ako je p’ i+1<br />

= 1 onda ovoj grupi cifara dodajemo korekciju<br />

(0011) 2<br />

• Ako je p’ i+1<br />

= 0 onda se ovoj grupi cifara dodaje korekcija<br />

(1101) 2<br />

Do prekoračenja je došlo ako je p’ n =1.<br />

KOREKCIJE?<br />

p’ i+1 = 1 Pošto je postojao prenos između dekadnih<br />

cifarskih mesta u prvoj fazi sabiranja, vrednost binarnog<br />

prenosa sa cifarskog mesta i na mesto i+1 je 16 10 , dok je<br />

vrednost dekadnog prenosa između ove dve pozicije 10 10 .<br />

Time je na poziciji i anuliran višak 3 od obe dekadne<br />

cifre, i da bi rezultat bio korektan treba dodati<br />

3 10 =(0011) 2 .<br />

p’ i+1 = 0 Prenos sa ove pozicije na narednu ne postoji<br />

tako da je akumuliran višak 6 u odnosu na prirodni kod,<br />

tako da zbog toga treba oduzeti 3 da bi se dobila<br />

korektna vrednost. Umesto oduzimanja može da se<br />

primeni sabiranje u potpunom komplementu:<br />

(-3) 10 =(10011) 2 =(01101) pk .<br />

- 52 -


PRIMER<br />

X=28367 Y=2847 X+Y=31214<br />

28 36 7A + 02 84 7A = 31 21 4A<br />

X 0101 1011 0110 1001 1010<br />

Y 0011 0101 1011 0111 1010<br />

p’ 0 1 1 1 1 0<br />

S 1 1001 0001 0010 0001 0100<br />

K 1101 0011 0011 0011 0011<br />

S 0110 0100 0101 0100 0111<br />

ODUZIMANjE U KODU VIŠAK 3<br />

Pošto je kod višak 3 komplementaran određivanje<br />

potpunog komplementa broja zapisanog u ovom kodu se<br />

jednostavno vrši komplementiranjem datog zapisa.<br />

Zato se oduzimanje najjednostavnije vrši kao sabiranje u<br />

potpunom komplementu umanjenika sa umanjiocem<br />

kome je promenjen znak.<br />

- 53 -


PRIMER<br />

X=5836 Y=8586 X-Y=-2750<br />

X-Y = -(Y-X)<br />

– (08 58 6A – 05 83 6A) = -02 75 0A = 02 75 0B<br />

P.K. X=05836 Y=08586<br />

-X 94164<br />

-X 1100 0111 0100 1001 0111<br />

Y 0011 1011 1000 1011 1001<br />

-X 1100 0111 0100 1001 0111<br />

p’ 1 0 1 1 0<br />

S 1 0000 0010 1101 0101 0000<br />

k 0011 0011 1101 0011 0011<br />

S 0011 0101 1010 1000 0011<br />

Y-X = 02750<br />

X-Y = -02750 = 02750B<br />

Iako je p 5 ’=1,na osnovu pravila za sabiranje u potpunom<br />

komplementu ne dolazi do prekoračenja.<br />

- 54 -


DIGITALIZACIJA<br />

SIGNALI<br />

Vrlo često se javlja potreba da se zabeleže određeni<br />

signali koji se javljaju u prirodi.<br />

Najčešći primeri signala su svakako zvuk i slika, ali i drugi<br />

primeri se mogu lako naći (ekg signali, ultrazvuk,<br />

raznorazna zračenja, itd...)<br />

DIGITALIZACIJA<br />

Signali koje srećemo u prirodi se obično javljaju u<br />

kontinualnoj formi što znači da se menjaju neprekidno<br />

tokom vremena i/ili prostora.<br />

Nasuprot kontinualnoj (neprekidnoj) prirodi signala,<br />

digitalna tehnologija podrazumeva diskretnost<br />

(isprekidanost) zapisa.<br />

ANALOGNA TEHNOLOGIJA<br />

Primenom analognih tehnologija se pravi kontinualni<br />

zapis nekog signala na medijumu.<br />

Npr. gramofonska ploča ima oblik dugačke spirale. Kada<br />

bi se pogledao oblik udubljenja i ispupčenja zabeleženih<br />

na njoj, dobilo bi se grafik koji veoma podseća na grafik<br />

zvučnog signala koji je bio sniman.<br />

Grafik raporeda namagnetisanja na magnetnoj traci<br />

takođe treba da odgovara vremenskom rasporedu zvuka<br />

koji je snimljen.<br />

- 55 -


ANALOGNA TEHNOLOGIJA – PREDNOSTI<br />

Ulaganja koja su potrebna da bi se dobio zapis analognog<br />

signala su veoma mala, ukoliko se zadovoljimo relativno<br />

niskim kvalitetom.<br />

Tehnološki, još su stari Grci mogli da prave jednostavni<br />

gramofon, uz pomoć jednostavne igle prikačene na<br />

trepereću membranu.<br />

ANALOGNA TEHNOLOGIJA – PROBLEMI<br />

Osnovni problem analogne tehnologije je to što je jako<br />

teško na medijumu napraviti skoro identičnu kopiju<br />

posmatranog signala.<br />

Drugi problem je nestalnost medijuma tj. njegova<br />

promenjivost tokom vremena i osetljivost na spoljašnje<br />

uticaje, što dovodi do postepenog opadanja kvaliteta<br />

zapisa.<br />

Zbog toga se za pravljenje visoko kvalitetnog analognog<br />

zapisa mora uložiti izuzetno puno truda i novca<br />

• proizvodnja nosača zapisa je veoma skupa<br />

• pravljenje zapisa je veoma skupo<br />

I pored svega, pravljenje medijuma koji će apsolutno<br />

identično zabležiti signal i koji će zadržati svoje<br />

karakteristike večno, i u svim spoljašnjim uslovima je<br />

nemoguće.<br />

Svaka obrada ovako zapisanih signala je izuzetno<br />

komlikovana i takođe zahteva velika ulaganja<br />

Reprodukcija (upotreba) takvih zapisa u vernom obliku je<br />

veoma skupa<br />

- 56 -


DIGITALNA TEHNOLOGIJA – KONCEPT<br />

Osnovna ideja digitalne tehnologije je zapisivanje signala<br />

kao niza brojeva koji predstavljaju njegove vrednosti<br />

izmerene u diskretnim tačkama (diskretnim vremenskim<br />

trenucima, odnosno na diskretnoj mreži tačaka prostora)<br />

DIGITALNA TEHNOLOGIJA<br />

Ukoliko je poznat izgled signala na zadatoj mreži moguće<br />

je rekonstruisati njegov izgled i u ostalim delovima<br />

vremena tj. prostora.<br />

Postupak merenja i zapisivanja vrednosti signala se često<br />

naziva sempliranje.<br />

Postavlja se pitanje koliko je često potrebno meriti i<br />

zapisivati vrednost signala.<br />

NYQUIST-OVA TEOREMA<br />

Čuvena Nyquist-ova teorema daje odgovor na ovo pitanje<br />

Da bi signal mogao da se verno rekonstruiše potrebno<br />

je meriti ga dva puta češće od njegove najveće<br />

frekvencije<br />

Npr. čovekovo uho čuje frekvencije do nekih 20kHz. Zbog<br />

toga je zvuk u principu dovoljno semplirati nekih 40000<br />

puta u sekundi.<br />

- 57 -


DIGITALNA TEHNOLOGIJA – SIMULACIJA NA<br />

ANALOGNIM UREĐAJIMA<br />

U prirodi su sve pojave suštinski analogne<br />

Digitalna tehnologija se zbog toga primenjuje (i<br />

modelira) na uređajima koji su u osnovi analogni.<br />

• Npr. iako su današnji računari digitalni i smatra se da jedna<br />

memorijska ćelija sadrži samo vrednosti 0 ili 1, stvarna vrednost<br />

napona u toj ćeliji može da varira u nekom opsegu (recimo od 0<br />

do 5V). Postavljanjem praga na nekih 2.5V, mi pomoću analognog<br />

uređaja simuliramo digitalno ponašanje<br />

DIGITALNA TEHNOLOGIJA – PROBLEMI<br />

Početna tehnološka ulaganja da bi se uopšte stiglo do iole<br />

upotrebljivog zapisa su jako velika:<br />

• Npr. veoma je teško napraviti uređaj koji dovoljno često<br />

meri i zapisuje vrednost zvučnog signala<br />

• prostor za zapisivanje 1 sekunde je 44000 brojeva što<br />

predstavlja skoro jednu celu papirnu svesku<br />

Ovo je razlog zašto se digitalna tehnologija javila<br />

istorijski prilično kasno<br />

Jako je teško bilo stići do tako gustog zapisa koji<br />

omogućuje zapis par stotina megabajta na površini dlana<br />

šake<br />

DIGITALNA TEHNOLOGIJA – PREDNOSTI<br />

Međutim, kada je početni tehnološki prag dostignut<br />

prednosti su postale skoro neverovatne.<br />

Inherentna kvarljivost medijuma, koja je predstavljala<br />

najveći problem analogne tehnologije, odjednom je<br />

postala nebitna.<br />

Npr. ne možemo se osloboditi činjenice da papir<br />

vremenom žuti i da se kvalitet zapisa na njemu gubi.<br />

- 58 -


Ukoliko se radi o običnoj analognoj fotografiji, to se<br />

javlja kao problem.<br />

Međutim ukoliko je na tom papiru zapisan niz brojeva<br />

koji opisuje piksele iste te fotografije, nimalo<br />

informacije se ne gubi sve dok je moguće uopšte pročitati<br />

o kojim je brojevima reč.<br />

Moguće je pravljenje identičnih kopija što opet nije<br />

moguće bilo kod analogne tehnologije.<br />

• Npr. ukoliko fotokopiramo fotografiju dobijamo gubitak<br />

kvaliteta. Ukoliko fotokopiramo papir na kome su zapisani brojevi<br />

koji opisuju fotografiju nimalo informacije ne gubimo.<br />

Mogućnost pravljenja identičnih kopija praktično<br />

omogućava večno trajanje zapisa<br />

Obrada zapisa postaje jednostavna i vrši se isključivo<br />

primenom matematičkih formula na brojeve<br />

• Npr. obrada digitalnih slika ili zvuka<br />

- 59 -


ZVUČNI SIGNALI<br />

PREDSTAVLjANjE ZVUKA<br />

Zvučni signal predstavlja promenu pritiska vazduha kroz<br />

vreme.<br />

Ilustracija ovoga je moguća npr. pomoću programa Sound<br />

Recorder.<br />

AMPLITUDA<br />

Razliku između maksimalne i minimalne vrednosti<br />

nazivamo amplitudom.<br />

Amplituda se meri u decibelima (dB). (Decibel je mera<br />

za jačinu zvuka, ali amplituda i jačina su direktno<br />

povezana pa se amplituda takođe meri u decibelima.)<br />

Što je amplituda zvučnog signala veća, zvuk je glasniji.<br />

FREKVENCIJA<br />

Broj promena signala, npr. od svoje najveće vrednosti do<br />

najmanje i nazad u jednoj sekundi nazivamo<br />

frekvencijom zvuka. Frekvencija se meri u Hercima<br />

(1Hz= jedna promena u sekundi).<br />

Što brže zvučni signal menja svoju vrednost to nam se<br />

zvuk čini piskaviji.<br />

- 60 -


ČUJNI RASPON<br />

U proseku, ljudsko uho može da čuje zvukove čija je<br />

frekvencija između 5Hz i 20 kHz, međutim precizni<br />

raspon je osobina svakog pojedinca. U principu, već<br />

frekvencije iznad 10kHz većina ljudi veoma loše čuje.<br />

Jačina zvuka koju ljudsko uho može da registruje se<br />

kreće od skoro 0dB (prag šuma) do 120dB (prag bola).<br />

DIGITALIZACIJA ZVUKA<br />

Prema Nyqist-ovoj teoremi, prilikom digitalizacije je<br />

dovoljno uzimati uzorke vrednosti zvučnog signala<br />

(semplirati) dva puta češće od njegove najveće<br />

frekvencije.<br />

Za verno zapisivanje frekvencija do 20kHz potrebno je da<br />

frekvencija uzoraka bude 40kHz<br />

UOBIČAJENE FREKVENCIJE UZORAKA<br />

Opšte prihvaćen CD audio standard se zasniva na<br />

učestalosti uzoraka od 44.1kHz.<br />

DAT kasete, poznate muzičkim profesionalcima koriste<br />

učestalost od 48kHz.<br />

Većina zvukova u video igrama je sa uzorcima na 11 ili<br />

22 kHz.<br />

- 61 -


DUBINA ZVUKA (DINAMIČKI RASPON)<br />

Ranije se za digitalizaciju koristilo 8 bitova (jedan bajt).<br />

8 bitova omogućuje zapisivanje 256 nivoa jačine zvuka.<br />

Sa time se može kvalitetno pokriti 48dB.<br />

Danas je uobičajeno da se za zapis svakog uzorka koristi<br />

16 bitova (dva bajta).<br />

Ovo omogućuje zapisivanje 65536 nivoa jačine zvuka, što<br />

daje dinamički raspon od oko 96dB, što se smatra<br />

prilično zadovoljavajućim.<br />

MONO I STEREO ZVUCI<br />

Da bi se bolje dočarao prostorni raspored zvuka, koristi<br />

se stereo tehnika.<br />

Uzimanje uzoraka u mono tehnici se vrši pomoću jednog<br />

mikrofona.<br />

Za digitalizaciju stereo zvuka potrebno je najmanje 2<br />

mikrofona (dva kanala).<br />

NEKOMPRIMOVANI ZAPIS ZVUKA<br />

Neposrednim zapisivanjem niza brojeva dobijenih<br />

digitalizacijom zvuka dobijamo tzv. sirovi zapis (PCM –<br />

Pulse Code Modulation).<br />

Za sirovi zapis jednog minuta zvuka u stereo tehnici,<br />

potrebno je:<br />

60sekundi * 44100 * 2 bajta * 2 kanala = 10,5 Mb<br />

1 minut frekvencija uzorka za zapis svakog uzorka stereo<br />

zvuka (sample rate) se koriste 2 bajta tehnika<br />

- 62 -


RIFF FORMATI<br />

RIFF je grupa formata za zapis mnogih tipova podataka,<br />

pre svega multimedijalnih (zvuka i videa).<br />

Najpoznatiji RIFF formati su WAVE, AVI, DIVX...<br />

PARČIĆI (CHUNKS)<br />

Svi RIFF formati se sastoje od parčića (chunks).<br />

Svako parče ima svoj<br />

• tip, koji se zapisuje pomoću 4 karaktera<br />

• za čim slede 4 bajta koji označavaju veličinu parčeta i<br />

• zatim sam sadržaj.<br />

Sama RIFF datoteka je sama za sebe jedno parče čiji<br />

sadržaj počinje oznakom tipa RIFF datoteke, a zatim<br />

sledi niz drugih parčića.<br />

FORMAT RIFF DATOTEKE<br />

Adresa<br />

Sadržaj (hex)<br />

0000 'R', 'I', 'F', 'F'<br />

0004 Dužina datoteke – 32 bitni<br />

neoznačeni broj<br />

0008 Tip datoteke (4 karaktera)<br />

000C Tip prvog parčeta (4<br />

karaktera)<br />

0010 Dužina prvog parčeta<br />

0014 Sadržaj prvog parčeta<br />

...<br />

- 63 -


WAVE FORMAT<br />

WAVE spada u grupu RIFF formata i namenjen je<br />

isključivo za zapis zvuka.<br />

Zapis u WAVE formatu se sastoji od parčeta (chunk) sa<br />

oznakom “fmt” i parčeta sa oznakom “data”.<br />

WAVE format omogućava i nekoliko tipova kompresije,<br />

mada se najčešće koristi za zapis nekomprimovanog<br />

zvuka, tj. parče “data” sadrži PCM zapis.<br />

KANONSKI IZGLED WAV DATOTEKE<br />

Offset Sadržaj<br />

0 ‘R’ ‘I’ ‘F’ ‘F’ (oznaka datoteke)<br />

4 veličina datoteke<br />

8 ‘W’ ‘A’ ‘V’ ‘E’ (tip datoteke)<br />

12 ‘f’ ‘m’ ‘t’ ‘ ’ (tip parčeta)<br />

16 00 00 00 10 (veličina parčeta)<br />

20 Tip kompresije (1 PCM-nekompresovano)<br />

( sadržaj parčeta)<br />

22 Broj kanala (1 mono, 2 stereo)<br />

24 Sample rate – broj uzoraka po sekundi (najčešće<br />

44100)<br />

28 Broj bajtova u sekundi = Sample rate * Poravnanje<br />

32 Poravnanje = broj kanala * broj bajtova po uzorku<br />

34 Broj bitova po uzorku (8 ili 16)<br />

36 ‘d’ ‘a’ ‘t’ ‘a’<br />

40 dužina data bloka<br />

44 Zapis uzoraka<br />

- 64 -


KANONSKI ZAPIS WAV DATOTEKE<br />

Ukoliko se radi radi o<br />

• 8 bitnim uzorcima vrednosti se zapisuju kao neoznačeni<br />

brojevi<br />

• 16 bitnim uzorcima vrednosti se zapisuju u potpunom<br />

komplementu.<br />

Stereo (i drugi višekanalni zapisi) se zapisuju isprepletano<br />

(po uzorak za svaki kanal)<br />

KOMPRESIJA<br />

Jedan od problema sa WAV zapisom je, naravno, to što<br />

zauzima previše memorijskog prostora.<br />

Zbog toga se zvučni zapis obično komprimuje na neki<br />

način.<br />

PRISTUP PROBLEMU KOMPRIMOVANjA<br />

Pošto je zvuk signal koji se veoma nepredvidivo menja,<br />

većina algoritama kompresije koji se zasnivaju na<br />

ponavljanjima podataka (kao npr. algoritmi korišćeni u<br />

ARJ, ZIP) pokazuju loše rezultate.<br />

Zbog toga se pristupa primeni tzv. psihoakustičkih<br />

algoritama koji uglavnom spadaju u grupu Loosy<br />

algoritama.<br />

MASKIRANjE<br />

U toku dana ne vidimo zvezde. Razlog tome je to što je<br />

svetlost zvezda maskirana jakom svetlošću sunca.<br />

Većina algoritama za kompresiju zvuka se zasnivaju na<br />

sličnim osobinama ljudskog čula sluha.<br />

- 65 -


MASKIRANjE TIHIH ZVUKOVA<br />

Na primer, tih zvuk u blizini (u vremenu) mnogo glasnijeg<br />

se ne percipira, pa se na njegovo kodiranje ne isplati<br />

trošiti bajtove.<br />

Slično, ako u bliskom trenutku postoje zvuci bliske<br />

frekvencije, jači zvuk može da maskira drugi.<br />

Koji su zvuci dovoljno tihi? Ovaj podatak se najčešće<br />

dobija eksperimentima i to sa živim ljudima koji slušaju<br />

zvuke i daju svoj sud.<br />

LOKALNOST MASIRANjA<br />

Na primer:<br />

• Ukoliko imamo zvuk frekvencije 1000Hz i u njegovoj blizini<br />

zvuk od 1100Hz, ali 18 dB tiši, čovek prosečnog sluha neće čuti<br />

drugi zvuk.<br />

• Ako bi drugi zvuk bio frekvencije 2000Hz i iste glasnoće, on<br />

bi se čuo, zbog toga što je frekvencijski prilično udaljen od prvog.<br />

Pokazuje se da bi ovaj ton morao biti 45dB slabiji da bi bio<br />

nečujan.<br />

Zaključujemo da je maskiranje značajnije u slučaju<br />

bliskih frekvencija.<br />

MASKIRANjE JAKIH ZVUKOVA<br />

Posledica maskiranja je da je dopušteno podizanje nivoa<br />

šuma u blizini jakih zvukova.<br />

Zaključujemo da zbog većeg nivoa dopuštenog šuma nije<br />

potrebna visoka preciznost zapisa, pa se može<br />

upotrebljavati manje bitova za zapis.<br />

- 66 -


PRE I POST MASKIRANjE<br />

Ljudsko čulo sluha ima ograničenje da ne registruje dobro<br />

vremenski bliske zvukove:<br />

• ne registruje tihi ton koji se javi do 5 milisekundi pre<br />

glasnog (premaskiranje).<br />

• ne registruje tihi ton koji se javi do 100 milisekundi posle<br />

završetka glasnog (postmaskiranje)<br />

• tačna vremena zavise od razlike intenziteta.<br />

MPEG FORMATI<br />

MPEG – Moving pictures experts group<br />

Ekspertska organizacija koja je pod pokroviteljstvom ISO<br />

napravila nekoliko standardnih formata za zapisivanje<br />

zvuka, filma i drugih multimedijalnih sadržaja<br />

NAJPOZNATIJI MPEG STANDARDI<br />

MPEG 1 – standard na kome su zasnovani formati kao su<br />

VideoCD i MP3<br />

MPEG 2 – standard na kome se zasnivaju digitalna<br />

televizija i DVD format<br />

MPEG 4 – standard multimedije za fiksni i mobilni web<br />

MPEG 7 – standard za opisivanje i pretragu audio i<br />

vizuelnog sadržaja<br />

- 67 -


AUDIO LAYER-I<br />

Layeri unutar MPEG standarda čine oznake podstandarda<br />

koji se odnose samo na zapisivanje audio signala<br />

Jedan od najpoznatijih MPEG-ovih audio layera je audio<br />

MPEG layer 3, ili pod drugim, čuvenijim imenom MP3.<br />

Dok je MP3 najčuveniji, MP1 je skoro zaboravljen, dok je<br />

MP2 imao neki uticaj dok nije potisnut layerom MP3.<br />

Audio layeri su međusobno kompatibilni naniže, što znači<br />

da programi koji mogu da tumače MP3 mogu da tumače i<br />

novije layere.<br />

KRATKO O ALGORITMU<br />

Audio MPEG deli celokupni zvučni frekventni opseg na 32<br />

podpojasa (subbands).<br />

Ovi pojasi su kod layera 1 i 2 bili po 625Hz, dok se kod<br />

layera 3 uvode pojasevi različite širine.<br />

• Naime, uho jasno razlikuje 1kHz od 3kHz, dok veoma teško<br />

razlikuje 15kHz od 18kHz (ako se uopšte nešto čuje).<br />

Ako npr. imamo ton od 1kHz jačine 60dB, on spada u 8.<br />

pojas:<br />

• Koder izračunava da je maskirajući efekat ovog tona 35dB,<br />

što daje odnos signal/šum od 25 dB, što znači da je za zapis ovog<br />

zvuka dovoljno 4 bita.<br />

• Dodatno, ovaj maskirajući efekat se proteže od pojasa 5 do<br />

13, naravno sa umanjenim uticajem.<br />

Poslednji korak algoritma je primena Huffmanovog<br />

kodiranja na rezultat dobijen primenom maskiranja.<br />

Sve ovo čini proces MP3 kodiranja prilično računski<br />

zahtevnim. Proces dekodiranja je nešto<br />

jednostavniji, ali je i on svakako komplikovan.<br />

- 68 -


STATIČKO HUFFMAN-OVO KODIRANjE<br />

Osnovna ideja je da se karakteri koji se češće javljaju<br />

kodiraju kraćim sekvencama, dok je kod karaktera koji se<br />

ređe pojavljuju dozvoljeno koristiti i duže kodove.<br />

Na početku je potrebno izgraditi sortiranu tabelu<br />

frekvencija pojavljivanja svih znakova koje želimo da<br />

kodiramo. Neka su to npr. karakteri<br />

IZGRADNjA HUFFMAN-OVOG DRVETA<br />

Pronađu se dva karaktera koja se najređe pojavljuju i ona<br />

se zamene novim “karakterom” čija je frekvencija zbir<br />

frekvencija polazna dva karaktera.<br />

Novouvedeni “karakter” predstavlja čvor drveta iz koga<br />

izniču polazni karakteri. Postupak se ponavlja sve dok se<br />

ne izgradi kompletno drvo.<br />

ODREĐIVANjE KODOVA<br />

Sve grane drveta koje vode “na levo” se označe nulom,<br />

dok se sve grane koje vode “na desno” označe jedinicom.<br />

Kod svakog karaktera se određuje prikupljanjem oznaka<br />

grana putanje koja vodi do njega.<br />

- 69 -


HUFFMAN-OVO DRVO – PRIMER<br />

0<br />

1<br />

A<br />

0<br />

1<br />

0<br />

1<br />

0<br />

1<br />

B<br />

0<br />

1<br />

E<br />

F<br />

C<br />

D<br />

A 0<br />

B 100<br />

C 1010<br />

D 1011<br />

E 110<br />

F 111<br />

FORMAT MP3 DATOTEKE<br />

Svaka MP3 datoteka se sastoji od više delova koji se<br />

nazivaju okviri (frames)<br />

Svaki okvir se sastoji od 32 bitnog zaglavlja (header) i<br />

sadržaja.<br />

Jedan okvir služi za zapis 1152 uzorka kod Layer-a 2 i 3<br />

- 70 -


ZAGLAVLjE MP3 OKVIRA<br />

Zaglavlje se sastoji od 32bita:<br />

AAAAAAAA AAABBCCD EEEEFFGH IIJJKLMM<br />

A - 11 bitova za sinhronizaciju – svi moraju imati vrednost<br />

1<br />

B – oznaka verzije MPEG standarda<br />

• 00 – MPEG 2.5<br />

• 01 – rezervisano<br />

• 10 – MPEG 2<br />

• 11 – MPEG 1<br />

C – Oznaka layer-a<br />

• 00-rezervisano<br />

• 01 – Layer 3<br />

• 10 – Layer 2<br />

• 11 – Layer 1<br />

D – Oznaka kontrole<br />

• 0 – CRC<br />

• 1 – kontrola isključena<br />

E – bit rate. Izražava se u kbps. Svakom layer-u<br />

odgovaraju različite kombinacije.<br />

• Npr. za MPEG 1 layer 3, 1001 znači 128kbps.<br />

F - Sampling rate. Npr. Za MPEG1 standard, i sve layere<br />

• 00 označava 44100 Hz<br />

• 01 označava 48000 Hz<br />

• 10 označava 32000 Hz<br />

G – Padding – dodatni bit koji kaže da li postoje dodatni<br />

bitovi za poravnavanje<br />

H – Rezervisani bit<br />

I – Broj kanala<br />

• 00, 01, 10 Stereo,<br />

• 11 Mono<br />

J – dodatna oznaka načina zapisa (samo kod stereo<br />

sistema)<br />

K – Copyright<br />

• 0 nema<br />

• 1 ima<br />

- 71 -


L – originalnost zapisa<br />

• 0 kopija originala<br />

• 1 original<br />

M – Oznaka pojačanja<br />

IZRAČUNAVANjE DUŽINE OKVIRA<br />

Iako u zaglavlju svakog okvira nije eksplicitno zapisana<br />

njegova dužina, ona se može rekonstruisati na osnovu<br />

ostalih podataka i to kod Layera 3 po formuli:<br />

Dužina =<br />

144 * bitrate / samplerate + padding<br />

ID3 V2<br />

MP3 format se može proširiti dodatnim informacijama o<br />

muzici, izvođaču, tekstu pesme i slično.<br />

Standard koji ovo opisuje se zove ID3 i trenutno nosi<br />

oznaku verzije 2.4.0.<br />

• Pošto se ovaj standard pojavio posle standardizacije MP3,<br />

ovakve dodatne oznake su se pisale na kraju MP3 datoteke.<br />

• Tek od verzije 2, su oznake premeštene na početak.<br />

ID3 V2 – PRIMER<br />

- 72 -


- 73 -


PREFIKSNI KODOVI<br />

HUFFMAN-OVO KODIRANjE<br />

Za kôd kažemo da ima prefiksno svojstvo ako ni za jedan<br />

znak ne važi da je njegov kôd prefiks koda nekog drugog<br />

znaka.<br />

Npr. ako je 11 kôd karaktera A, a 1110 kôd karaktera B,<br />

onda je kôd karaktera A prefiks kôda karaktera B.<br />

Zahvaljujući prefiksnom svojstvu kôda, čim je kod nekog<br />

znaka pročitan, ne postoji mogućnost da se daljim<br />

čitanjem zaključi da se radi o kôdu nekog drugog znaka,<br />

tako da se odmah može konstatovati o kom se znaku radi<br />

i preći na čitanje kôda sledećeg znaka.<br />

KODOVI PROMENLjIVE DUŽINE<br />

Za kod kažemo da je kôd promenljive dužine ako<br />

različitim znakovima odgovaraju kôdovi različitih dužina.<br />

U suprotnom za kôd kažemo da je kôd fiksne dužine.<br />

Npr. ako je 11 kôd karaktera A, a 1110 kôd karaktera B,<br />

onda se radi o kôdu promenljive dužine.<br />

HUFFMAN-OV KOD<br />

Huffmanov kôd je optimalan prefiksni kôd.<br />

Zato se često koristi za realizaciju kompresija bez<br />

gubitka.<br />

To je kôd promenljive dužine.<br />

Postoje:<br />

• Statičko i<br />

• Dinamičko Huffmanovo kodiranje.<br />

- 74 -


STATIČKO HUFFMAN-OVO KODIRANjE<br />

Osnovna ideja je da se karakteri koji se češće javljaju<br />

kodiraju kraćim sekvencama, dok je kod karaktera koji se<br />

ređe pojavljuju dozvoljeno koristiti i duže kodove.<br />

Na početku je potrebno izgraditi sortiranu tabelu<br />

frekvencija pojavljivanja svih znakova koje želimo da<br />

kodiramo. Neka su to npr. karakteri.<br />

IZGRADNjA HUFFMAN-OVOG DRVETA<br />

Pronađu se dva karaktera koja se najređe pojavljuju i ona<br />

se zamene novim “karakterom” čija je frekvencija zbir<br />

frekvencija polazna dva karaktera.<br />

Novouvedeni “karakter” predstavlja čvor drveta iz koga<br />

izniču polazni karakteri. Postupak se ponavlja sve dok se<br />

ne izgradi kompletno drvo.<br />

ODREĐIVANjE KODOVA<br />

Sve grane drveta koje vode “na levo” se označe nulom,<br />

dok se sve grane koje vode “na desno” označe jedinicom.<br />

Kôd svakog karaktera se određuje prikupljanjem oznaka<br />

grana putanje koja vodi od korena do njega.<br />

- 75 -


HUFFMAN-OVO KODIRANjE – PRIMER<br />

Kodirajmo poruku:<br />

AFAABBAEACABBACABEABCDFDAEAAEFAF<br />

Tabela frekvencija:<br />

A 13<br />

B 6<br />

C 3<br />

D 2<br />

E 4<br />

F 4<br />

Sortirana tabela frekvencija:<br />

D 2<br />

C 3<br />

E 4<br />

F 4<br />

B 6<br />

A 13<br />

- 76 -


HUFFMAN-OVO DRVO – PRIMER<br />

0<br />

1<br />

A<br />

0<br />

1<br />

0<br />

1<br />

0<br />

1<br />

B<br />

0<br />

1<br />

E<br />

F<br />

C<br />

D<br />

A 0<br />

B 100<br />

C 1010<br />

D 1011<br />

E 110<br />

F 111<br />

HUFFMAN-OVO KODIRANjE – PRIMER<br />

Kodirana poruka se dobija nadovezivanjem kodova<br />

karaktera i glasi:<br />

011100100100011001010010010001010010011001101010101<br />

111110110110001101110111<br />

Za kodiranje poruke smo iskoristili<br />

13*1+6*3+3*4+2*4+4*3+4*3=75 bita.<br />

Da smo koristili, na primer, 3-bitno kodiranje koje<br />

karakterima dodeljuje njihove redne binarne brojeve od<br />

000 do 101 iskoristili bismo 3*32=96 bita.<br />

- 77 -


DINAMIČKO HUFFMAN-OVO KODIRANjE<br />

Za razliku od statičkog Huffmanovog kodiranja, gde se<br />

frekvencije pojavljivanja znakova određuju na početku<br />

rada algoritma, kod dinamičkog se ove frekvencije<br />

izračunavaju i menjaju u toku rada algoritma.<br />

- 78 -


OTKRIVANjE I ISPRAVLjANjE GREŠAKA<br />

GREŠKE PRI PRENOSU PODATAKA<br />

Pri prenosu podataka često dolazi do promene pojedinih<br />

bitova podataka zbog:<br />

• smetnji na prenosnom putu<br />

• različitih tipova šumova na lokacijama odašiljanja i prijema<br />

Smetnje se dešavaju bez obzira na udaljenost uređaja,<br />

tj. kako pri prenosu podataka između dva računara tako i<br />

između komponenti istog računara<br />

PRISTUPI REŠAVANjU PROBLEMA<br />

Postoje dva osnovna pristupa rešavanju ovog problema:<br />

• kontrola grešaka unatrag (kontrola sa povratnom spregom)<br />

• kontrola grešaka unapred<br />

KONTROLA GREŠAKA UNATRAG<br />

Uz podatke se šalju dodatne (redundantne) informacije<br />

koje služe da se ustanovi da postoje greške, ali ne i da se<br />

one otklone.<br />

Neispravno preneseni podaci se ponovo šalju.<br />

KONTROLA GREŠAKA UNAPRED<br />

Uz podatke se šalju dodatne (redundantne) informacije<br />

koje služe kako da se ustanovi da greške postoje, tako i<br />

da se odredi njihova lokacija.<br />

Neispravno preneseni podaci se automatski koriguju.<br />

- 79 -


IZBOR METODA KONTROLE GREŠAKA<br />

Kako raste količina prenesenih bitova, tako se povećava i<br />

broj kontrolnih bitova.<br />

Kontrola grešaka unapred zahteva prenošenje mnogo<br />

veće količine redundantnih informacija pa zato:<br />

• u okviru jednog sistema (npr. memorija) se često<br />

upotrebljava metod kontrole unapred<br />

• između sistema (npr. telekomunikacije) se obično<br />

upotrebljava metod kontrole unatrag<br />

POUZDANOST KOMUNIKACIJE<br />

Pouzdanost komunikacije se predstavlja brojem bitova<br />

sa greškom (engl. bit error rate – BER)<br />

• BER je verovatnoća pojavljivanja neispravnog bita<br />

• računarske mreže imaju BER oko 10 -12<br />

• unutar računarskog sistema BER je oko 10 -18 ili manje<br />

TIPOVI GREŠAKA<br />

Postoji više tipova mogućih grešaka:<br />

• pogrešna vrednost bita<br />

• suvišan bit<br />

• nedostajući bit<br />

• zamenjena mesta bitova ili reči<br />

• složene greške<br />

METODE ZA OTKRIVANjE GREŠAKA<br />

Najčešće korišćene metode su:<br />

• kontrola parnosti<br />

• provera zbira bloka<br />

• ciklična provera redundanci<br />

- 80 -


KONTROLA PARNOSTI<br />

Kontrola parnosti je jedan od najjednostavnijih metoda<br />

za otkrivanje grešaka.<br />

Koristi se za otkrivanje pogrešnih vrednosti bitova.<br />

Algoritam:<br />

• Uz svaku n-bitnu reč se dodaje po jedan bit tako da ukupan<br />

broj binarnih jedinica u tako proširenoj reči bude paran (neparan)<br />

Pouzdanost:<br />

• Verovatnoća da se greška ne primeti je reda n 2 /4*BER 2<br />

Slabosti:<br />

• Greška se ne primećuje ako je izmenjen paran broj bitova<br />

KONTROLA PARNOSTI U 2D<br />

Pri prenosu bloka podataka proširuje se prethodni metod:<br />

• i dalje se svaka osnovna reč proširuje radi tzv.<br />

“horizontalne” provere parnosti<br />

• čitavom bloku dodaje se još jedna (proširena) reč tako da<br />

za svaku vrednost bita postoji dodatna “vertikalna” provera<br />

parnosti<br />

Ovim metodom se značajno umanjuje verovatnoća<br />

neotkrivenih grešaka<br />

- 81 -


PRIMER 2D KONTROLE PARNOSTI<br />

KONTROLA ZBIRA<br />

Ako je blok duži od jedne reči, često se primenjuje<br />

metod kontrole zbira.<br />

Algoritam:<br />

• Formira se zbir svih reči u bloku i prenese zajedno sa<br />

porukom. Obično se zbir skraćuje, recimo na 32 bita. Primalac<br />

ponovo izračunava zbir i poredi sa primljenim podatkom.<br />

Slabosti:<br />

• Ne može da prepozna greške neispravnog redosleda reči.<br />

CIKLIČNA PROVERA REDUNDANCI<br />

Prethodne metode imaju ograničene mogućnosti<br />

otkrivanja složenih grešaka.<br />

Ciklička provera redundanci (engl. Cyclic Redundancy<br />

Checking – CRC) otkriva:<br />

• sve greške na neparnom broju bitova<br />

• sve 2-bitne greške<br />

• proširene greške čija je dužina manja od broja<br />

redundantnih bitova<br />

- 82 -


Metod CRC je nešto složeniji, ali se često implementira<br />

hardverski.<br />

Počiva na:<br />

• aritmetici po modulu 2 (tj. bez prenosa)<br />

• deljenju polinoma<br />

• niz bitova bloka koji se prenosi se posmatra kao niz<br />

koeficijenata polinoma, npr. a n<br />

a n-1<br />

...a 1<br />

a 0<br />

odgovara polinomu<br />

M(x)=a n<br />

x n +a n-1<br />

x n-1 +...+a 1<br />

x+a 0<br />

Postupak kodiranja:<br />

• odabire se “polinom generator” G(x) stepena k<br />

• izračunava se x k M(x)/G(x).<br />

Dobijeni ostatak se označava sa R(x).<br />

• koeficijenti ostatka (njih k) se dodaju na kraj poruke<br />

Postupak dekodiranja:<br />

• primljena polinomijalna kodna reč se deli sa G(x)<br />

• ako je ostatak deljenja 0, nema grešaka pri prenosu<br />

• ako ostatak nije nula, postoje greške pri prenosu<br />

Postoje greške koje se ovako ne mogu otkriti, ali se<br />

dobrim izborom polinoma generatora njhov broj<br />

smanjuje.<br />

Dobri polinom generatori su:<br />

CRC-16 = x 16 +x 15 +x 2 +1<br />

CRC-CCITT = x 16 +x 12 +x 5 +1<br />

CRC-CCiTT = x 32 +x 26 +x 23 +x 16 +x 12 +x 11 +x 10 +x 8 +x 7 +x 5 +x 4 +x 2 +1<br />

PRIMER CRC<br />

Neka je:<br />

• niska bitova 11100110<br />

• polinom generator G(x)=x 4 +x 3 +1<br />

Koja niska bitova se šalje primaocu?<br />

- 83 -


Rešenje:<br />

• dodajemo 4 bita 0 (množimo polinom sa x 4 ) i delimo:<br />

111001100000<br />

-11001<br />

1011100000<br />

-11001<br />

111000000<br />

-11001<br />

1010000<br />

-11001<br />

110100<br />

-11001<br />

0110<br />

Na originalnu nisku dopisujemo ostatak 0110 i dobijamo:<br />

111001100110<br />

Provera po prijemu:<br />

• delimo:<br />

111001100110<br />

-11001<br />

1011100110<br />

-11001<br />

111000110<br />

-11001<br />

1010110<br />

-11001<br />

110010<br />

-11001<br />

ostatak je 0, dakle prenos je ispravan: 1100110<br />

METODI ZA OTKRIVANjE I ISPRAVLjANjE GREŠAKA<br />

Koriste se često u radu sa memorijom jer tu:<br />

• osim pri prenosu, postoji i mogućnost nastajanja greške pri<br />

zapisivanju i čitanju podataka, kao i tokom njegovog čuvanja<br />

- 84 -


GREŠKE U RADU SA MEMORIJOM<br />

Tvrdi – stalno prisutni defekti<br />

• usled neispravnosti memorijska ćelija nije u stanju da<br />

pouzdano čuva podatke i ona ih bez spoljašnjeg uzroka menja sa<br />

0 na 1 ili obratno.<br />

Mekani – prolazni defekti<br />

• predstavljaju slučajne izmene sadržaja jedne ili više<br />

memorijskih ćelija<br />

• obično su posledica smetnji u napajanju ili<br />

elektromagnetnog ili radioaktivnog zračenja<br />

VRSTE KODOVA<br />

SED (single error detection) – kôd koji omogućava<br />

detekciju grešaka na jednom bitu<br />

slično: DED, TED,...<br />

SEC (single error correction) – kôd koji omogućava<br />

korekciju grešaka na jednom bitu<br />

slično: DEC, TEC,...<br />

HAMINGOVI KODOVI<br />

Najprostiji kod za otkrivanje i korekciju grešaka je<br />

Hamingov kôd<br />

Naredna stranica predstavlja primer za reči dužine 4:<br />

• u polje koje predstavlja presek bar dva kruga upiše se po<br />

jedna vrednost bita<br />

• u preostala polja se upisuje 0 ili 1 tako da se u svakom<br />

krugu očuva parnost<br />

- 85 -


PRIMERI HAMINGOVOG SEC KODA<br />

a) bitovi podatka<br />

b) sa bitovima parnosti<br />

c) promena bita usled greške<br />

d) lokalizovana greška<br />

SEC-DED KODOVI<br />

Često se SEC(single error correction) kodovi proširuju<br />

tako da osim SEC obavljaju i posao DED (double error<br />

detection)<br />

Obično je za to dovoljno dodavanje svega jednog bita<br />

- 86 -


HAMINGOV SEC-DED KOD<br />

Dodaje se još jedan bit tako da je ukupan zbir bitova paran<br />

a) bitovi podatka<br />

b) bitovi parnosti<br />

c) promenjena dva bita<br />

d) lokalizovana greška<br />

e) ispravljena greška<br />

g) prepoznato da postoji greška<br />

ČUVANjE I PROVERA KOREKTNOSTI ZAPISA<br />

- 87 -


KONCEPT PROVERE<br />

Za reč dužine M bitova generiše se kôd dužine K<br />

Zapisuje se M+K bitova<br />

Nakon čitanja se ponovo generiše ključ K 1 i poredi sa K<br />

ekskluzivnom disjunkcijom:<br />

• ako je razlika 0, smatra se da nema greške<br />

Ako se za reč dužine M bitova generiše kod dužine K<br />

bitova:<br />

• ukupan broj bitova je M+K<br />

• broj opisa grešaka je 2 K -1<br />

• za SEC je potrebno da važi 2 K > M+K<br />

POTREBNE DUŽINE KODOVA ZA SEC<br />

- 88 -


PRIMER<br />

Dužina osnovne reči je 8<br />

Dužina koda je 4<br />

Ukupna dužina reči je 12<br />

Funkcija kodiranja se bira tako da vrednost kontrolnog<br />

bita odgovara zbiru (po modulu 2) bitova osnovne reči<br />

koji imaju 1 na mestu tog kontrolnog bita:<br />

C 1 = M 1 ⊕ M 2 ⊕ M 4 ⊕ M 5 ⊕ M 7<br />

C 2 = M 1 ⊕ M 3 ⊕ M 4 ⊕ M 6 ⊕ M 7<br />

C 3 = M 2 ⊕ M 3 ⊕ M 4 ⊕ M 8<br />

C 4 = M 5 ⊕ M 6 ⊕ M 7 ⊕ M 8<br />

Neka je reč M=10110101<br />

Kôd je K=1010<br />

Neka je kasnije izmenjen bit 5: M 1 =10100101<br />

Odgovarajući kôd je K 1 =0011<br />

Poređenje K i K 1 daje 1001, što ukazuje da je greška u<br />

bitu 5<br />

- 89 -


POKRETNI ZAREZ<br />

ZAPISIVANjE RAZLOMLjENIH BROJEVA<br />

Ceo i razlomljeni deo broja se odvojeno prebacuju u<br />

traženu osnovu.<br />

Ceo deo se zapisuje prema poznatim pravilima.<br />

Razlomljeni deo se zapisuje tako što se u svakom koraku<br />

množi osnovom u kojoj želimo da zapišemo broj. Posle<br />

svakog množenja celobrojni deo predstavlja cifru u<br />

zapisu, a razlomljeni deo se ponovo množi osnovom sve<br />

dok je različit od nule.<br />

PRIMER<br />

Zapisati broj 0.84375 u osnovi 4<br />

0 1 2 3<br />

0.84375 0.375 0.5 0<br />

0 3 1 2<br />

= (0.312) 4<br />

ZAPIS SA POKRETNIM ZAREZOM<br />

Broj se predstavlja kao<br />

<br />

± m * b e<br />

<br />

<br />

<br />

<br />

m je “značajni deo”<br />

b je “osnova zapisa”<br />

e je “eksponent”<br />

broj cifara značajnog dela je “preciznost” i<br />

označavaćemo ga sa p<br />

- 90 -


PRIMER<br />

(23.71) 10<br />

= (0.0926171875) 10 * 16 2<br />

= (0.17B5C2) 16 * 16 2<br />

GREŠKE PRI ZAOKRUŽIVANjU<br />

Zapis realnih brojeva u računaru je aproksimacija skupa<br />

realnih brojeva u određenom intervalu.<br />

Pri aproksimiranju na određeni broj decimala može doći<br />

do zaokruživanja, a samim tim i greške.<br />

Greška pri zaokruživanju se meri na dva načina:<br />

• Pomoću ulp-a<br />

• Pomoću relativne greške<br />

ULP<br />

ULP (Unit in the last place) je najmanja vrednost za koju<br />

se mogu razlikovati dva broja u pokretnom zarezu<br />

zapisana u određenoj osnovi i sa određenom preciznošću.<br />

Ako je broj z predstavljen u računaru kao<br />

d 0 ,d -1 …d -(p-1) * b e , onda je greška<br />

|d 0 , d -1 …d -(p-1) - (z/b e )| * b p-1 ulp-a<br />

PRIMER<br />

Neka je b=10, p=4.<br />

Broj z=0.034869 je predstavljen kao<br />

3.487 *10 -2 . Greška je:<br />

- 91 -


|3.487 – (0.034869/10 -2 )| * 10 3 =<br />

|3.487 – 3.4869| * 10 3 =<br />

0.0001 * 10 3 = 0.1 ulp-a<br />

RELATIVNA GREŠKA<br />

Relativna greška je apsolutna vrednost razlike realnog<br />

broja i njegove reprezentacije podeljena sa apsolutnom<br />

vrednošću realnog broja. Uvek se zapisuje u terminima<br />

mašinskog ε=b 1-p /2.<br />

PRIMER<br />

Neka je b=10, p=4, ε=0.0005.<br />

Broj z=0.034869 je predstavljen kao<br />

3.487 *10 -2 . Relativna greška je:<br />

|0.034869 – 0.03487| / |0.034869| =<br />

0.000028678 ≈ 0.0574ε<br />

POKRETNI ZAREZ<br />

Predstavljanjem brojeva u pokretnom zarezu omogućuje<br />

se zapisivanje vrlo velikih ili jako malih brojeva pomoću<br />

malog broja cifara.<br />

U opštem slučaju broj u pokretnom zarezu se predstavlja<br />

u obliku<br />

±d 0 ,d -1 d -2 ...d -(p-1) be<br />

• b-osnova<br />

• p-preciznost<br />

- 92 -


ZAPIS BROJEVA<br />

d 0 ,d -1 d -2 ...d -(p-1) je značajni deo i zapisuje se u<br />

brojčanom sistemu sa osnovom b (0≤d i < b)<br />

Zapis broja za koji važi da je d 0 ≠0 naziva se<br />

normalizovan.<br />

Za predstavljanje realnih brojeva u računarima koriste se<br />

vrednosti b=2 ili b=16.<br />

I za b=2 i b=16 eksponent se kodira u binarnom<br />

brojčanom sistemu<br />

Vrednost osnove se ne čuva eksplicitno jer je ista za sve<br />

brojeve koji se zapisuju.<br />

Jednostruka preciznost – za zapis brojeva se koriste<br />

registri dužine 32 bita<br />

Dvostruka preciznost – za zapis brojeva se koriste registri<br />

dužine 64 bita<br />

Zapis realnog broja sastoji se od:<br />

• znaka broja<br />

• frakcije (Niz cifara u razlomljenom delu broja n)<br />

• eksponenta<br />

ZAPIS SA BINARNOM OSNOVOM<br />

Zapis sa binarnom osnovom:<br />

• 32 bita – jednostruka tačnost<br />

<br />

1 bit za znak<br />

8 bita za eksponent (u zapisu sa uvećanjem 128)<br />

<br />

23 značajne binarne cifre<br />

• 64 bita – dvostruka tačnost<br />

1 bit za znak<br />

<br />

8 bita za eksponent (uvećan za 128)<br />

<br />

55 značajne binarne cifre<br />

- 93 -


ZAPIS SA BINARNOM OSNOVOM<br />

JEDNOSTRUKA TAČNOST<br />

PDP-11 i VAX-11 računari firme DEC<br />

Zapis u 32-bitnom registru:<br />

31 30 23 22 0<br />

Zna<br />

k<br />

Uvećani<br />

eksponen<br />

t<br />

Frakcija<br />

značajni deo broja se zapisuje u obliku znak i apsolutna<br />

vrednost.<br />

ZNAK<br />

Znak :<br />

0 za pozitivne<br />

1 za negativne brojeve<br />

EKSPONENT<br />

Eksponent se zapisuje u 8 bita na pozicijama 23-30.<br />

Zapisuje se uz uvećanje 128.<br />

Vrednosti eksponenta koje mogu da se zapišu pripadaju<br />

intervalu [-128,+127], odnosno [0,255] posle uvećanja za<br />

128.<br />

UVEĆANjE 128<br />

Bez uvećanja ne bi mogla da se pravi razlika u zapisu<br />

brojeva 0 i 0.1 (0=0x2 0 0.1=0.1x2 0 ) zbog implicitnog<br />

kodiranja prvog bita jedinicom.<br />

- 94 -


Sa druge strane, poželjno je da se ne pravi razlika<br />

između celobrojne nule i nule u pokretnom zarezu.<br />

FRAKCIJA<br />

Frakcija:<br />

Apsolutna vrednost broja se prevodi u binarni sistem i<br />

zapisuje u normalizovanom obliku uz dodatnu<br />

modifikaciju. Umesto oblika :<br />

d0, d-1...d-(p-1), d0 ≠ 0<br />

koristi se oblik:<br />

0, d0d-1...d-(p-1), d 0 ≠ 0<br />

Uz povećanje vrednosti eksponenta za 1.<br />

U zapisu sa binarnom osnovom frakcija<br />

d 0 d -1 d -2 ...d -(p-1) ima 24 bita, ali se u računaru predstavlja<br />

sa 23 binarne pozicije 0-22 jer je uvek d 0 =1, tako da je<br />

njegovo eksplicitno čuvanje nepotrebno.<br />

PRIMERI<br />

Broj Znak Eksponent Frakcija<br />

+15 0 10000100 11100...0<br />

-15 1 10000100 11100...0<br />

+1/64 0 01111011 00000...0<br />

0 0 00000000 00000...0<br />

0 00000001 00000...0<br />

+1x2 -<br />

128<br />

ZAPIS SA BINARNOM OSNOVOM<br />

DVOSTRUKA TAČNOST<br />

Dva uzastopna 32-bitna registra<br />

- 95 -


Prvi registar – kao kod jednostruke tačnosti<br />

Ceo drugi registar – za dodatne cifre frakcije<br />

Omogućuje povećanje preciznosti, tj. veći broj cifara<br />

frakcije, ali ne i povećanje vrednosti eksponenta<br />

- 96 -


63 62 55 54 0<br />

Zna<br />

k<br />

Uvećani<br />

ekspon<br />

ent<br />

Frakcija<br />

31 0<br />

Produžetak frakcije<br />

ZAPIS SA HEKSADEKADNOM OSNOVOM<br />

Zapis sa heksadekadnom osnovom:<br />

• 32 bita – jednostruka tačnost<br />

<br />

1 bit za znak<br />

7 bita za eksponent (u zapisu sa uvećanjem 64)<br />

<br />

24 značajne binarne cifre<br />

• 64 bita – dvostruka tačnost<br />

1 bit za znak<br />

<br />

7 bita za eksponent (uvećan za 64)<br />

<br />

56 značajne binarne cifre<br />

S/360, S/370 firme IBM<br />

Značajan deo: znak i apsolutna vrednost.<br />

Znak :<br />

0 za pozitivne<br />

1 za negativne brojeve<br />

Znak značajnog dela je istovremeno i znak broja (kao i<br />

kod binarne osnove)<br />

Frakcija značajnog dela je takođe normalizovana.<br />

Zapisuje se sa 6 heksadekadnih cifara u 24 bita.<br />

EKPONENT<br />

Eksponent se zapisuje u 7 bita na pozicijama 24-30.<br />

Vrednosti eksponenta se zapisuju uz uvećanje za 64.<br />

Vrednosti eksponenta koje mogu da se zapišu pripadaju<br />

intervalu [-64,+63], odnosno [0,+127] posle uvećanja.<br />

- 97 -


UVEĆANjE ZA 64<br />

NULA<br />

Osnova b=16 se ne zapisuje u registru.<br />

Kao i u slučaju zapisa sa binarnom osnovom, eksponent se<br />

uvećava zbog zapisa nule.<br />

Pravilo je da se nula zapisuje kao sve nule u registru.<br />

FORMAT ZAPISA – JEDNOSTRUKA TAČNOST<br />

31 30 24 23 0<br />

Zna Uvećani<br />

Frakcija<br />

k ekspon<br />

ent<br />

PRIMERI<br />

Broj Znak Eksponent Frakcija<br />

+15 0 1000001 11110...0<br />

-15 1 1000001 11110...0<br />

+1/64 0 0111111 01000...0<br />

0 0 0000000 00000...0<br />

+1x16 -<br />

65<br />

0 0000000 00010...0<br />

FORMAT ZAPISA – DVOSTRUKA TAČNOST<br />

Dva uzastopna 32-bitna registra<br />

Prvi registar – kao kod jednostruke tačnosti<br />

Ceo drugi registar – dodatne cifre frakcije broja<br />

- 98 -


NAPOMENE<br />

Bez obzira na način zapisa realnih brojeva, za izabranu<br />

tačnost (sa binarnom ili heksadekadnom osnovom ) broj<br />

različitih zapisa realnih brojeva je isti, ali je gustina na<br />

pojedinim delovima brojčane ose različita.<br />

Ukoliko se poveća interval za eksponent, smanjuje se<br />

broj cifara frakcije koje je moguće zapisati i obratno.<br />

Dodatno, realnih brojeva koji mogu da se zapišu u<br />

jednostrukoj tačnosti ima isto koliko i celih (2 32 ) jer<br />

toliko ima različitih kombinacija bitova u registru dužine<br />

32 bita.<br />

IEEE 754 ZAPISI<br />

Standard IEEE 754 propisuje zapise:<br />

• 32 bita – jednostruka tačnost<br />

<br />

1 bit za znak<br />

8 bita za eksponent (u zapisu sa uvećanjem 127)<br />

<br />

23 značajne binarne cifre<br />

• 64 bita – dvostruka tačnost<br />

<br />

1 bit za znak<br />

11 bita za eksponent (uvećan za 1023)<br />

52 značajne binarne cifre<br />

<br />

• pri tome<br />

Zapisi su normalizovani, tj. podrazumeva se najviša cifra 1<br />

Nula se zapisuje sa svim bitovima 0<br />

<br />

Najviši eksponent označava posebne NaN vrednosti<br />

NORMALIZOVANI BROJEVI<br />

Normalizovani brojevi u jednostrukoj tačnosti imaju<br />

eksponent izmedju<br />

-126 (00000001) i +127 (11111110).<br />

Frakcija ima oblik<br />

1, d -1 …d -(p-1)<br />

- 99 -


pri čemu se prva jedinica ne zapisuje.<br />

Zapis frakcije može da ima bilo koju vrednost.<br />

PRIMERI<br />

Zapisati broj 13,25 prema standardu IEEE 754 u<br />

jednostrukoj tačnosti<br />

o (13,25) 10<br />

= (1101,01) 2<br />

= (1,10101) 2<br />

* 2 3<br />

o Znak: 0 (+)<br />

o Eksponent sa uvećanjem 127:<br />

130 = (10000010) 2<br />

o Značajni deo sa implicitnom jedinicom: 10101 - (1,10101) 2<br />

o Zapis:<br />

0 10000010 10101000000000000000000<br />

Pročitati sledeći zapis:<br />

1 10000110 01001000000000000000000<br />

o Znak: 1 (-)<br />

o Eksponent: 134-127=7<br />

o Frakcija: (1,01001)2 = (1.28125) 10<br />

o Rešenje: (-1.28125)10 * 2 7 = (-164) 10<br />

ZAPIS BROJEVA U JEDNOSTRUKOJ TAČNOSTI<br />

BINARNA<br />

OSNOVA<br />

HEKSADEKADNA<br />

OSNOVA<br />

IEEE 754<br />

Znak 1 bit 1 bit 1 bit<br />

Eksponent 8 bitova<br />

Uvećanje 128<br />

7 bitova<br />

Uvećanje 64<br />

8 bitova<br />

Uvećanje 127<br />

Frakcija 23 bita<br />

0,1__________<br />

(0,1<br />

podrazumeva<br />

ni deo zapisa.<br />

Ostalo se<br />

unosi u 23<br />

24 bita<br />

0,____________<br />

(0,<br />

podrazumeva<br />

ni deo zapisa.<br />

Ostalo se<br />

unosi u 24<br />

23 bita<br />

1,__________<br />

(1,<br />

podrazumeva<br />

ni deo<br />

zapisa.<br />

Ostalo se<br />

- 100 -


ita.) bita.) unosi u 23<br />

bita.)<br />

- 101 -


NaN<br />

NaN (Not a number) su specijalne vrednosti koje nisu<br />

brojevi i označavaju neke izuzetne situacije prilikom<br />

izračunavanja. Npr. 0/0 ili √-1<br />

Eksponent NaN vrednosti je maksimalan. U slučaju<br />

jednostruke tačnosti to je 128 (11111111).<br />

Frakcija mora biti različita od nule.<br />

Postoje takozvani<br />

• Signalni NaN (SNaN) i<br />

• Tihi NaN (QNaN).<br />

SNaN<br />

Signalni NaN signalizira izuzetno stanje kod aritmetičkih<br />

operacija, poređenja i konverzija.<br />

Zapis eksponenta u jednostrukoj tačnosti je 11111111.<br />

Prvi bit frakcije je 0.<br />

Ostatak frakcije je različit od 0.<br />

QNaN<br />

Tihi NaN predstavlja pojavu nedozvoljene operacije u<br />

programu.<br />

Propagira se kroz izračunavanje.<br />

Signalizira se pojava izuzeća.<br />

Zapis eksponenta u jednostrukoj tačnosti je 11111111.<br />

Prvi bit frakcije je 1.<br />

Ostali bitovi frakcije su proizvoljni.<br />

- 102 -


BESKONAČNO<br />

IEEE 754 standard omogućava predstavljanje beskonačnih<br />

vrednosti.<br />

Znak određuje da li se radi o +∞ ili -∞<br />

Eksponent u jednostrukoj tačnosti ima vrednost 128<br />

(11111111).<br />

Frakcija je 0.<br />

OZNAČENA NULA<br />

Nula se u jednostrukoj tačnosti predstavlja eksponentom<br />

-127 (00000000) i frakcijom 0.<br />

Pošto znak može biti + ili – (0 ili 1) onda postoje i dve<br />

nule +0 i -0.<br />

Prema standardu važi +0 = -0.<br />

log-0 = NaN, a log+0 = -∞<br />

DENORMALIZOVANI BROJEVI<br />

Da bi se povećala gustina realnih brojeva oko nule i<br />

izbegla pojava potkoračenja uvode se takozvani<br />

denormalizovani brojevi.<br />

U jednostrukoj tačnosti važi:<br />

• Zapis eksponenta u jednostrukoj tačnosti je 00000000<br />

• Frakcija je različita od nule, a vodeća jedinica se ne<br />

podrazumeva. Ako je frakcija f, onda je predstavljeni broj 0, f *<br />

2 -126 .<br />

PRIMER<br />

Neka je broj zapisan u denormalizovanom obliku kao:<br />

0 00000000 00010000000000000000000<br />

- 103 -


Radi se o broju +(0,0001) 2 * 2-126 odnosno 0.0625 * 2 -126 = 2 -130<br />

ZAOKRUŽIVANjE<br />

Zaokruživanje se vrši kada rezultat operacije ne može<br />

biti tačno zapisan.<br />

Moguće su sledeće vrste zaokruživanja:<br />

• Zaokruživanje na najbližu vrednost<br />

• Zaokruživanje prema +∞<br />

• Zaokruživanje prema -∞<br />

• Zaokruživanje prema nuli.<br />

ZAOKRUŽIVANjE NA NAJBLIŽU VREDNOST<br />

Pri ovoj vrsti zaokruživanja broj se zaokružuje na<br />

najbližu predstavljivu vrednost, uz zaokruživanje na<br />

parnu cifru kada je broj na sredini intervala između dve<br />

predstavljive vrednosti. Ovo je predefinisani način<br />

zaokruživanja.<br />

ZAOKRUŽIVANjE PREMA +∞<br />

Realizuje se u dva koraka:<br />

• Ako je broj pozitivan i postoji bar jedna jedinica na nekoj<br />

poziciji desno od poslednje pozicije koja se čuva u zapisu, na<br />

poslednju poziciju se dodaje jedinica.<br />

• Bez obzira na znak odbacuju se bitovi desno od poslednje<br />

pozicije koja se čuva u zapisu.<br />

ZAOKRUŽIVANjE PREMA -∞<br />

Realizuje se u dva koraka:<br />

• Ako je broj negativan i postoji bar jedna jedinica na nekoj<br />

poziciji desno od poslednje pozicije koja se čuva u zapisu, na<br />

poslednju poziciju se dodaje jedinica.<br />

- 104 -


• Bez obzira na znak odbacuju se bitovi desno od poslednje<br />

pozicije koja se čuva u zapisu.<br />

ZAOKRUŽIVANjE KA NULI<br />

Odbacuju se svi bitovi desno od poslednje pozicije koja<br />

se čuva u zapisu.<br />

∞ U ARITMETIČKIM OPERACIJAMA<br />

Sa izuzetkom operacija koje proizvode QNaN sve<br />

operacije koje uključuju ∞ takođe imaju ∞ kao rezultat.<br />

Međutim i dalje treba paziti na znak.<br />

QNaN U ARITMETIČKIM OPERACIJAMA<br />

QNaN se propagira kroz aritmetičke operacije tako da<br />

ostaje vidljiv na njihovom kraju. Može se pojaviti u<br />

sledećim slučajevima:<br />

• (±∞) - (±∞)<br />

• 0 * ∞<br />

• 0 / 0, ∞ / ∞<br />

• x % 0, ∞ % x<br />

• √x, x


je povećan eksponent. Ako pri pomeranju frakcija<br />

postane 0 rezultat je vrednost drugog operanda.<br />

Sabiranje i oduzimanje frakcija se vrše prema pravilima<br />

koja važe za cele brojeve u zapisu znak i apsolutna<br />

vrednost. Eksponent rezultata je eksponent operanada<br />

posle izjednačavanja.<br />

Ako dolazi do prekoračenja rezultat se pomera za jedno<br />

mesto udesno uz povećanje vrednosti eksponenta za<br />

jedan. Ako povećanje vrednosti eksponenta dovede do<br />

prekoračenja rezultat je ∞, ali uzevši u obzir i znak.<br />

Ako rezultat operacije nije normalizovan, pokušava se<br />

normalizacija. Cifre frakcije se pomeraju ulevo uz<br />

smanjivanje eksponenta. Može se dobiti i denormalizovan<br />

rezultat.<br />

Na kraju se vrši zaokruživanje, ako je potrebno.<br />

PRIMERI<br />

5.375+0.5625<br />

0 10000001 01011000000000000000000 (5.375)<br />

0 01111110 00100000000000000000000 (0.5625)<br />

1, 010110 (1.010110) 2<br />

+0, 001001 (posle izjedačavanja eksponenata)<br />

1, 011111 (1.011111) 2<br />

0 10000001 01111100000000000000000<br />

=5.9375<br />

5.375-0.5625<br />

1, 010110 (1.010110) 2<br />

-0, 001001 (posle izjedačavanja eksponenata)<br />

1, 001101 (1.001101) 2<br />

0 10000001 00110100000000000000000<br />

=4.8125<br />

- 106 -


IEEE754 MNOŽENjE I DELjENjE<br />

Jednostavnije je od sabiranja i oduzimanja jer se ne vrši<br />

svođenje na isti eksponent.<br />

x = xs x 2 x e y = y s x 2 y e<br />

U opštem slučaju:<br />

x x y = (x s * y s ) x 2 x e+ye<br />

x / y = (x s / y s ) x 2x e-ye<br />

Pri izvođenju operacija potrebno je voditi računa o<br />

generisanju i propagaciji specijalnih vrednosti.<br />

MNOŽENjE – OSNOVI KORACI ALGORITMA<br />

1. Proverava se postojanje specijalnih vrednosti. Ukoliko<br />

neki od argumenata operacije predstavlja specijalnu<br />

vrednost, rezultat se određuje na osnovu odgovarajućih<br />

pravila za specijalne vrednosti.<br />

2. Ukoliko je bar jedan od činilaca jednak nuli, rezultat je 0<br />

3. Saberu se vrednosti eksponenata i od dobijenog zbira<br />

oduzme uvećanje.<br />

Ako je došlo do prekoračenja pri ovom sabiranju, krajnji<br />

rezultat je ±∞ u zavisnosti od znaka brojeva x i y.<br />

Ako je pak došlo do potkoračenja vrednosti eksponenta,<br />

krajnji rezultat je pozitivna ili negativna (u zavisnosti od<br />

znaka brojeva x i y) nula.<br />

4. Pomnože se frakcije brojeva. Množenje se vrši prema<br />

pravilima za množenje celih brojeva zapisanih pomoću<br />

znaka i apsolutne vrednosti<br />

5. Dobijeni rezultat se normalizuje sličnim postupkom kao<br />

kod sabiranja. Pri tome je moguće dobiti i<br />

denormalizovani broj<br />

6. Broj (binarnih) cifara u proizvodu je dvostruko veći od<br />

broja cifara vrednosti koje su pomnožene; cifre koje su<br />

višak se odbacuju u procesu zaokruživanja<br />

- 107 -


DELjENjE – OSNOVNI KORACI ALGORITMA<br />

1. Proverava se postojanje specijalnih vrednosti. Ukoliko je<br />

neki od argumenata operacije specijalna vrednost,<br />

rezultat se određuje na osnovu odgovarajućih pravila za<br />

specijalne vrednosti.<br />

2. Ako je delilac nula, tada<br />

ako je deljenik ≠0, količnik je ±∞ u zavisnosti od<br />

znaka x<br />

ako je deljenik =0, tada je rezultat NaN<br />

3. Oduzmu se vrednosti eksponenata i na dobijenu razliku<br />

doda uvećanje.<br />

Ako je došlo do prekoračenja pri ovom sabiranju, krajnji<br />

rezultat je ± ∞ u zavisnosti od znaka brojeva x i y.<br />

Ako je pak došlo do potkoračenja vrednosti eksponenta,<br />

krajnji rezultat je pozitivna ili negativna (u zavisnosti od<br />

znaka brojeva x i y) nula.<br />

4. Podele se frakcije brojeva. Deljenje se vrši prema<br />

pravilima za deljenje celih brojeva zapisanih pomoću<br />

znaka i apsolutne vrednosti<br />

5. Dobijeni rezultat se normalizuje sličnim postupkom kao<br />

kod sabiranja. Pri tome je moguće dobiti i<br />

denormalizovan broj<br />

6. Dobijeni količnik se zaokružuje prema pravilima za<br />

zaokruživanje<br />

- 108 -


POKRETNI ZAREZ<br />

DEKADNA OSNOVA<br />

BROJEVI<br />

Brojevi mogu biti<br />

• Konačni brojevi (brojevi čije vrednosti mogu da budu tačno<br />

prikazane)<br />

• Specijalne vrednosti.<br />

Brojevi su zapisani pomoću<br />

• Znaka broja (0 za pozitivne, 1 za negativne)<br />

• Frakcije. Frakcija se zapisuje kao celobrojna vrednost koja<br />

je veća ili jednaka nuli.<br />

• Eksponenta.<br />

U zavisnosti od kombinacije vrednosti eksponenta i<br />

frakcije zapisani broj predstavlja konačan broj ili<br />

specijalnu vrednost.<br />

DPD<br />

DPD je zasnovan na principu dekadnog kodiranja: do tri<br />

dekadne cifre se kodiraju pomoću 10-bitnog polja<br />

nazvanog dekleti.<br />

Za kodiranje se koristi poboljšana varijanta Chen-Ho<br />

algoritma kodiranja.<br />

Vrednost broja je<br />

(-1) znak x frakcija x 10 eksponent<br />

- 109 -


DPD FORMAT ZAPISA – JEDNOSTRUKA TAČNOST<br />

Z<br />

1 bit<br />

K<br />

5 bita<br />

NE<br />

6 bita<br />

NF<br />

20 bitova<br />

Z - Znak broja<br />

K - Polje sa kombinacijom<br />

NE - Nastavak eksponenta<br />

NF - Nastavak frakcije<br />

Vrednost broja predstavljenog u pokretnom zarezu<br />

pomoću dekadne osnove se određuje na sledeći način:<br />

1. Ako su 5 bitova kombinacije u intervalu 00000-11101,<br />

tada je u pitanju konačan broj. Tih 5 cifara kodiraju dva<br />

bita najveće težine uvećanog eksponenta i cifru najveće<br />

težine frakcije. Ostatak od 6 bita u polju NE predstavlja<br />

nastavak eksponenta.<br />

2. Ako su 5 bitova kombinacije jednaki 11110, vrednost<br />

broja je +∞ ili -∞, u zavisnosti od znaka broja. Ostalih 6<br />

bitova u polju NE i nastavak frakcije nisu relevantni<br />

3. Ako su 5 bitova kombinacije jednaki 11111, vrednost<br />

broja je NaN. Ako je bit najveće težine polja NE jednak 1<br />

tada je vrednost SNaN; u suprotnom je QNaN. Ostalih 5<br />

bitova polja NE i nastavak frakcije se koriste radi bliže<br />

specifikacije NaN vrednosti.<br />

DPD KODIRANjE<br />

Deli cifre na<br />

• male (0-7) i<br />

• velike (8,9)<br />

na osnovu vrednosti prvog bita u BCD kodu<br />

Male cifre zahtevaju tri bita a velike jedan bit da bi se<br />

međusobno razlikovale<br />

- 110 -


Kodiranje razmatra svaku od kombinacija tri cifre<br />

‣ Sve tri cifre su male: potrebno je 10 bitova (3+3+3 za<br />

cifre, 1 bit da označi ovu kombinaciju)<br />

‣ Dve cifre su male: potrebno je 7 bitova za cifre (3+3+1);<br />

preostala 3 bita označavaju kombinaciju<br />

‣ Jedna cifra je mala: potrebno je 5 bitova za cifre<br />

(3+1+1); preostalih 5 bitova označavaju kombinaciju<br />

‣ Sve cifre su velike: potrebno je 3 bita za cifre (1+1+1);<br />

preostalih 7 (potrebno je samo 5) označavaju<br />

kombinaciju<br />

Dve cifre najveće težine eksponenta i cifra najveće<br />

težine frakcije se određuju na sledeći način:<br />

• Ako su 5 bitova kombinacije u intervalu 0xxxx-<br />

10xxx, tada su dva bita najveće težine kombinacije<br />

dva bita najveće težine eksponenta, a vrednost cifre<br />

najveće težine frakcije je vrednost dekadne cifre<br />

zapisane pomoću tri cifre najmanje težine<br />

kombinacije.<br />

• Ako su 5 bitova kombinacije u intervalu 110xx-<br />

1110xx, predstavimo bitove u kombinaciji kao<br />

11e 1 e 2 f. Tada je dekadna vrednost cifre najveće<br />

težine frakcije jednaka 8+f, dok su e 1 e 2 cifre<br />

najveće težine eksponenta.<br />

- 111 -


DPD SHEMATSKI PRIKAZ KODIRANjA<br />

Cifre C 1 C 2 C 3 zapisane u BCD zapisu<br />

postaju<br />

(abcd)(efgh)(ijkm)<br />

(pqr)(stu)(v)(wxy)<br />

gde je:<br />

aei pqr stu v wxy Komentar<br />

000 bcd fgh 0 jkm Sve cifre su male<br />

001 bcd fgh 1 00m Krajnje desna cifra je velika<br />

010 bcd jkh 1 01m Srednja cifra je velika<br />

100 jkd fgh 1 10m Krajnje leva cifra je velika<br />

110 jkd 00h 1 11m Krajnje desna cifa je mala<br />

(ostale dve su velike)<br />

101 fgd 01h 1 11m Srednja cifra je mala (ostale dve<br />

su velike)<br />

011 bcd 10h 1 11m Krajnje leva cifra je mala (ostale<br />

dve su velike)<br />

111 00d 11h 1 11m Sve cifre su velike; dva bita se<br />

ne koriste<br />

- 112 -


DPD SHEMATSKI PRIKAZ DEKODIRANjA<br />

Cifre<br />

postaju<br />

(pqr)(stu)(v)(wxy)<br />

(abcd)(efgh)(ijkm)<br />

koje predstavljaju BCD zapis cifara C 1 C 2 C 3<br />

vwxst<br />

abcd efgh ijkm<br />

0.... 0pqr 0stu 0wxy<br />

100.. 0pqr 0stu 100y<br />

101.. 0pqr 100u 0sty<br />

110.. 100r 0stu 0pqy<br />

11100 100r 100u 0pqy<br />

11101 100r 0pqu 100y<br />

11110 0pqr 100u 100y<br />

11111 100r 100u 100y<br />

gde tačka (’.’) označava da je sadržaj na toj poziciji nebitan.<br />

- 113 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!