_Mita je napisao:Posmatra se racunar koji radi sa [inlmath]9[/inlmath]-bitnim brojevima predstavljenim u komplementu dvojke. Koja se vrednost dobije kada se na ovom racunaru izracuna izraz [inlmath](A-B)-(C-D)[/inlmath]? Vrednosti operanada [inlmath]A[/inlmath] i [inlmath]B[/inlmath] su [inlmath]217_{10}[/inlmath] i [inlmath]-F1{16}[/inlmath], a predstave operanada [inlmath]C[/inlmath] i [inlmath]D[/inlmath] su [inlmath]115_{16}[/inlmath] i [inlmath]011000101_{2}[/inlmath].
Buni me sabiranje predstava i sabiranje vrednosti, koja je razlika, kad se sta radi? Znam da je predstava ono zapisano u racunaru, ali me buni kada sabiram dve predstave, a kada vrednosti i sta se desava sa prekoracenjem, posto se ono javlja ako se ovi brojevi saberu u decimalnom sistemu?
Ako ne dolazi do prekoračenja, onda razlike u sabiranju vrednosti i sabiranju predstava zapravo i nema. Razlika se pojavljuje onda kada pri sabiranju predstava dođe do prekoračenja (do kojeg ne može doći pri sabiranju vrednosti), jer tada sabiranjem vrednosti dobijemo ispravan rezultat, dok pri sabiranju predstava, umesto ispravnog rezultata, dobijemo neki broj koji se nalazi unutar granica dozvoljenih širinom kodne reči.
U ovom zadatku, pošto se posmatra računanje izraza
na računaru, a data je širina od [inlmath]9[/inlmath] bita, moramo sve vrednosti pretvoriti u binarne devetobitne predstave:
[inlmath]A=217_{10}=0\:1101\:1001_2[/inlmath]
[inlmath]B=-F1_{16}=1\:0000\:1111_2[/inlmath]
[inlmath]C=115_{16}=1\:0001\:0101_2[/inlmath]
[inlmath]D=0\:1100\:0101_2[/inlmath]
[inlmath]A-B=0\:1101\:1001_2-1\:0000\:1111_2=1\:1100\:1010_2[/inlmath] – došlo je do prekoračenja, ali to nas ovde ne zanima, ovo je predstava koja se dobija ovom operacijom;
[inlmath]C-D=1\:0001\:0101_2-0\:1100\:0101_2=0\:0101\:0000_2[/inlmath] – i ovde je došlo do prekoračenja budući da smo od negativnog broja oduzimali pozitivan broj, a kao rezultat dobili pozitivan broj.
I, na kraju:
[inlmath]\left(A-B\right)-\left(C-D\right)=1\:1100\:1010_2-0\:0101\:0000_2=1\:0111\:1010_2[/inlmath]
I, pošto se u zadatku traži
vrednost koja se dobije, ovaj rezultat konvertujemo u decimalni sistem, imajući u vidu da se radi o devetobitnom komplementu dvojke:
[inlmath]1\:0111\:1010_2=-134_{10}[/inlmath]
(Da smo sve predstave operanada konvertovali u vrednosti i operaciju [inlmath]\left(A-B\right)-\left(C-D\right)[/inlmath] izvršili nad vrednostima umesto nad predstavama, dobili bismo rezultat [inlmath]378_{10}[/inlmath]. On se od dobijenog rezultata nad predstavama razlikuje za [inlmath]512_{10}[/inlmath], tj. za [inlmath]2^9[/inlmath], što odgovara jednom prekoračenju u devetobitnom komplementu dvojke.)
Bi sad mogao da pokušaš ove ostale zadatke?