Programiranje 2/K1 2019
Pitanja
Pitanje 2
Na jednom računaru, realni brojevi se predstavljaju na širini od 11 bita u formatu seeeemmmmmm, gde je s bit predviđen za kodiranje predznaka broja, eeee su 4 bita za eksponent u kodu sa viškom 8, a mmmmmm su biti normalizovane matise sa skrivenim bitom (0.5≤M<1). Celi brojevi na ovom računaru se predstavljaju u drugom komplementu na širini od 7 bita. Vrednost realnog broja na lokaciji X je 32.510. Predstava celog broja na lokaciji Y je 1228. Koji je sadržaj realne promenljive Z nakon što se na ovom računaru obavi operacija Z = X + Y? Sva zaokruživanja se obavljaju prema pravilima ANSI/IEEE standarda za realne brojeve.
Postavka
- w = 11, k = 4, v = 8, p = 6
- VAX mantisa
Broj Y
Y = 1228 = 001 010 010 = 0101 0010.
Komplementiramo, Y = -10 1110 (-46).
Normalizujemo mantisu da bude u formatu 0.1mmmmmm.
Y = -011110 = -0.1011100 * 26. Nema zaokruživanja.
Broj X
X = 32.5 = 10 0000.1
Normalizujemo:
X = 10 000.1 = 0.1000001 * 26
Sabiranje
Z = X + Y = 0.1000001 * 26 - 0.1011100 * 26 = -(0.1011100 * 26 - 0.1000001 * 26) = -0.0011011 * 26.
Normalizujemo.
Z = -0.1101100 * 24
Mantisa = 101100
Eksponent E = 4. e = E + v = 4 + 8 = 12 = 11002.
Znak je negativan.
Sastavljamo 1 1100 101100 = 0111 0010 1100 = 72C16 (A).