18.01.2015 Views

PDF dokument koji pokriva kompletno gradivo koje se ... - Glavna

PDF dokument koji pokriva kompletno gradivo koje se ... - Glavna

PDF dokument koji pokriva kompletno gradivo koje se ... - Glavna

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Elektrotehnički fakultet Univerziteta u Beogradu Programiranje 1<br />

Zadatak IZ (Oktobar 2007)<br />

Posmatra <strong>se</strong> računar <strong>koji</strong> radi sa 9-bitnim brojevima predstavljenim u komplementu dvojke. Koja <strong>se</strong><br />

vrednost dobije kada <strong>se</strong> na ovom računaru izračuna izraz (A-B)-(C-D) Vrednosti operanada A i B<br />

su 217 10 i -F1 16 , predstave operanada C i D su 115 16 i 011000101 2 .<br />

A) -122 10<br />

(B) -86 16<br />

C) 101111010 2<br />

Rešenje:<br />

Zadatak ilustruje razliku između vrednosti operanda i predstave operanda u memoriji računara.<br />

Vrednost operanda <strong>se</strong> dobija interpretacijom predstave operanda, primenom zadatih pravila. U<br />

ovom slučaju, pravila su određena sistemom komplement dvojke.<br />

Zadatak je moguće rešiti na više načina. Ovde će biti prikazana dva pristupa.<br />

1. Računanje na osnovu vrednosti operanada<br />

Za operande A i B su date njihove vrednosti. Pri tome, operand A je dat u decimalnom brojnom<br />

sistemu, a operand B u heksadecimalnom. Radi jednostavnijeg računa, najpre treba odrediti vrednost<br />

operanda B u decimalnom brojnom sistemu: B = - (15 * 16 1 + 1 * 16 0 ) = -241.<br />

Za operande C i D su date njihove predstave. Pri tome, predstava operanda C je data u<br />

heksadecimalnom brojnom sistemu, a predstava operanda D je data u binarnom brojnom sistemu.<br />

Slično prethodnom slučaju, da bi <strong>se</strong> jednostavnije odredile vrednosti ovih operanada, treba ih<br />

prikazati u binarnom brojnom sistemu: tako <strong>se</strong> direktno vidi vrednost svakog bita broja, čime <strong>se</strong><br />

smanjuje mogućnost greške prilikom interpretacije. Reprezentacija C: 100010101 2 . Očigledno, broj u<br />

lokaciji C je negativan. Da bi <strong>se</strong> odredila njegova vrednost, najpre ga treba pretvoriti u pozitivan broj.<br />

Reprezentacija –C : 011101011 2 , odnosno C = -235. Određivanje vrednosti operanda C je moglo i<br />

jednostavnije da <strong>se</strong> obavi: negativan broj <strong>se</strong> interpretira kao ceo broj bez znaka i od njega <strong>se</strong><br />

oduzme 2 n , gde je n u ovom slučaju 9, dakle oduzme <strong>se</strong> 512. Interpretacijom reprezentacije<br />

operanda C kao celog broja bez znaka dobija <strong>se</strong> vrednost 256+16+4+1 = 277. Prema tome,<br />

277-512 = -235, što je tražena vrednost. Slično <strong>se</strong> dobija D = 128+64+4+1 = 197.<br />

Sada treba razmatrati parcijalne sume A-B i C-D zato što računar rezultat svake od njih mora da<br />

smesti u memoriju pre nego što obavi sledeću operaciju. Prilikom svake od operacija može doći do<br />

prekoračenja, pa je zato preporučljivo da <strong>se</strong> najpre odrede vrednosti minINT i maxINT za ovaj<br />

računar. Za 9-bitni računar, minINT = -256, maxINT = 255. A-B = 217-(-241) = 458. Očigledno<br />

dolazi do prekoračenja (rezultat je veći od maxINT). Prekoračenje označava da je rezultat<br />

operacije netačan. Ipak, rezultat te operacije (iako netačan) će biti upisan u memoriju računara.<br />

Vrednost rezultata je 458-512 = -54. Slično tome, C-D = -235-197 = -432. I u ovom slučaju dolazi do<br />

prekoračenja a rezultat je -432+512 = 80. Konačno, vrednost celog izraza je -54-80 = -134.<br />

Očigledno, odgovor pod A) je netačan. Takođe, odgovor pod C) je netačan jer je u pitanju pozitivan<br />

broj, a vrednost ovog izraza je negativan broj. Odgovor pod B) je tačan: 8*16 1 + 6 * 16 0 = 128+6 =<br />

132.<br />

NAPOMENA: u zadatku <strong>se</strong> tražila VREDNOST rezultata. Da <strong>se</strong> tražila predstava rezultata u<br />

memoriji, onda bi rešenje pod C) bilo tačno. Takođe treba primetiti da je prekoračenje kod<br />

aritmetičkih operacija sasvim normalna pojava i da rezultat, iako netačan, postoji.<br />

Materijal za vežbe na tabli i pripremu ispita Strana 20 od 82

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!