Sunteți pe pagina 1din 5

Împărţirea numerelor binare în virgulă mobilă

Împărţirea a două numere binare X (deîmpărţitul) şi Y (împărţitorul), reprezentate în virgulă


mobilă, adică X = M x  2e x şi X = M y  2
ey
poate fi descrisă în felul următor:

X/Y= M x  2e x / M y  2 y = M x / M y  2( ex − ey ) = M z  2e z .
e

De aici reiese, că exponentul rezultatului (cîtului) a două numere, reprezentate în virgulă


mobilă este egală cu diferenţa dintre exponentul deîmpărţitului şi exponentul împărţitorului, iar
mantisa cu cîtul rezultat în urma împărţirii mantisei deîmpărţitului la mantisa împărţitorului.
Împărţirea se îndeplineşte în cîteva etape:
a) denormalizarea deîmpărţitului
Pentru a evita o eventuală depăşire a formatului mantisei cîtului (în cazul cînd mantisa
deîmpărţitului este mai mare decît cea a împărţitorului) se denormalizează, adică se micşorează
conştient mantisa deîmpărţitului. Pentru aceasta se deplasează aritmetic cu o poziţie la dreapta
mantisa deîmpărţitului, iar exponentul lui se incrementează.
b) calcularea exponentului rezultatului
Se calculează exponentul rezultatului (cîtului) folosind formula: Ez=Ex–Ey. Exponenții
operanzilor şi rezultatului şînt numere întregi cu semn.
a) calcularea mantisei rezultatului
Valoarea mantisei rezultatului se obţine în urma împărţirii mantisei deîmpărţitului la mantisa
împărţitorului, adică Mz = Mx:My. Împărţirea mantiselor, ca două numere fracţionare cu semn, poate
fi efectuată prin oricare din metodele de împărţire a numerelor binare în virgulă fixă, ţinîndu-se cont
de semnele mantiselor operanzilor.
d) normalizarea rezultatului
Dacă la mantisa obţinută la etapa precedentă cifra semnului coincide cu cifra din poziţia cea
mai semnificativă a valorii mantisei, atunci rezultatul nu este normalizat. Aceasta se întîmplă doar
în cazul cînd iniţial mantisa deîmpărţitului normalizat era mai mică decît cea a împărţitorului. Pentru
a normaliza cîtul, mantisa rezultatului se deplasează cu o poziţie la stînga, iar exponentul se
decrementează.

Cazuri excepționale
La împărțirea a două numere în virgulă mobilă pot apărea următoarele situații:
- Depășirea negativă a exponentului rezultatului;
- Depășirea pozitivă a exponentului rezultatului.
În cazul depășirii negative, rezultatul este interpretat ca fiind egal cu zero (cu excepția cazului
în care este prevăzută o tratare specială a acestei situații).
Dacă depășirea pozitivă are loc odată cu obținerea unei mantise denormalizate a produsului,
atunci în primul rând, mantisa rezultatului ar trebui normalizată. Dacă, după normalizarea mantizei,
depășirea exponentului nu este eliminată, atunci dispozitivul de calcul trebuie să interpreteze
rezultatul ca fiind egal cu infinit.

Exemplul 1.
Mx = 1.010110
Ex = 0.0011
My = 0.110101
Ey = 0.1001
a) denormalizarea deîmpărţitului
Se deplasează aritmetic cu o poziţie la dreapta mantisa deîmpărţitului, iar puterea lui se
incrementează. Ca rezultat se obţine:
Mx=1.101011,
Ex=Ex+1
Ex=0.0011
+1 1
Ex=0.0100
b) calcularea exponentului rezultatului
Folosind formula Ez=Ex–Ey, obţinem:
Ex 0.0100
–Ey 1.0111
Ez= 1.1011
c) calcularea mantisei rezultatului
Valoarea mantisei rezultatului (Mz) se obţine efectuînd operaţia Mz = Mx:My. La început se
determină semnul mantisei rezultatului prin adunarea modulo 2 a semnelor mantiselor operanzilor,
adică: Sz=Sx Ꚛ Sy=1 Ꚛ 0=1
Apoi se determină valoarea modulelor mantiselor ambilor operanzi:
IMxI=0.010101
IMyI=0.110101
-IMyI=1.001011
Împărţirea modulelor mantiselor operanzilor se va efectua folosind metoda fără restabilirea
restului cu deplasarea restului la stînga.
0.010101 modulul mantisei deîmpărţitului IMxI
1.001011 scăderea modulului mantisei împărţitorului IMyI, (adunarea –IMyI)
0. 1.100000 rest negativ, cifra cîtului este egală cu 0
1.000000 deplasarea restului la stînga
0.110101 adunarea modulului mantisei împărţitorului + IMyI
0 1.110101 rest negativ, cifra cîtului este egală cu 0
1.101010 deplasarea restului la stînga
0,110101 adunarea modulului mantisei împărţitorului + IMyI
1 0.011111 rest pozitiv, cifra cîtului este egală cu 1
0.111110 deplasarea restului la stînga
1.001011 scăderea modulului mantisei împărţitorului IMyI, (adunarea –IMyI)
1 0.001001 rest pozitiv, cifra cîtului este egală cu 1
0.010010 deplasarea restului la stînga
1.001011 scăderea modulului mantisei împărţitorului IMyI, (adunarea –IMyI)
0 1.011101 rest negativ, cifra cîtului este egală cu 0
0.111010 deplasarea restului la stînga
0.110101 adunarea modulului mantisei împărţitorului + IMyI
0 1.101111 rest negativ, cifra cîtului este egală cu 0
1.011110 deplasarea restului la stînga
0.110101 adunarea modulului mantisei împărţitorului + IMyI
1 0.010011 rest pozitiv, cifra cîtului este egală cu 1

În exemplul de mai sus au fost calculate 6 cifre după virgulă a cîtului ca şi lungimea
operanzilor.
Valoarea modulului mantisei cîtului obţinut este:
IMzI=0.011001.
Semnul mantisei rezultatului Sz=1, de aceea Mz=1.100111.
d) normalizarea rezultatului
La mantisa cîtului cifra semnului coincide cu cifra din poziţia cea mai semnificativă a valorii
mantisei, deci rezultatul nu este normalizat. Pentru al normaliza, mantisa se deplasează cu o poziţie
la stînga, iar puterea se decrementează.
Ez=Ez-1
Ez= 1.1011
-1= 1.1111
1.1010
În consecinţă rezultatul va fi: Mz=1.001110 și Ez=1.1010.
Exemplu 2
Mx = 0.111110
Ex = 0.1110
My = 1.010101
Ey = 0.1011
a) denormalizarea deîmpărţitului
Se deplasează aritmetic cu o poziţie la dreapta mantisa deîmpărţitului, iar puterea lui se
incrementează. Ca rezultat se obţine:
Mx=0.011111,
Ex=Ex+1
Ex=0.1110
+1 1
Ex=0.1111
b) calcularea exponentului rezultatului
Folosind formula Ez=Ex–Ey, obţinem:
Ex 0.1111
–Ey 1.0101
Ez= 0.0100
c) calcularea mantisei rezultatului
Valoarea mantisei rezultatului (Mz) se obţine efectuînd operaţia Mz = Mx:My. La început se
determină semnul mantisei rezultatului prin adunarea modulo 2 a semnelor mantiselor operanzilor,
adică: Sz=Sx Ꚛ Sy=0 Ꚛ 1=1
Apoi se determină valoarea modulelor mantiselor ambilor operanzi:
IMxI=0.011111
IMyI=0.101011
-IMyI=1.010101
Împărţirea modulelor mantiselor operanzilor se va efectua folosind metoda cu restabilirea
restului cu deplasarea restului la stînga.
0.011111 deîmpărţitul Mx
1.010101 scăderea împărţitorului My, (adunarea – My)
0 1.110100 rest negativ, cifra cîtului este egală cu 0
0.101011 restabilirea restului (adunarea + My)
0.011111 valoarea restabilită
0.111110 deplasarea restului la stînga
1.010101 scăderea împărţitorului My, (adunarea – My)
1 0.010011 rest pozitiv, cifra cîtului este egală cu 1
0.100110 deplasarea restului la stînga
1.010101 scăderea împărţitorului My, (adunarea – My)
0 1.111011 rest negativ, cifra cîtului este egală cu 0
0.101011 restabilirea restului (adunarea + My)
0.100110 valoarea restabilită
1.001100 deplasarea restului la stînga
1.010101 scăderea împărţitorului My, (adunarea – My)
1 0.100001 rest pozitiv, cifra cîtului este egală cu 1
1.000010 deplasarea restului la stînga
1.010101 scăderea împărţitorului My, (adunarea – My)
1 0.010111 rest negativ, cifra cîtului este egală cu 0
0.101110 deplasarea restului la stînga
1.010101 scăderea împărţitorului My, (adunarea – My)
1 0.000011 valoarea restabilită a restului
0.000110 deplasarea restului la stînga
1.010101 scăderea împărţitorului My, (adunarea – My)
0 1.011011 rest negativ, cifra cîtului este egală cu 0

În exemplul de mai sus au fost calculate 6 cifre după virgulă a cîtului ca şi lungimea
operanzilor.
Valoarea modulului mantisei cîtului obţinut este:
IMzI=0.101110.
Semnul mantisei rezultatului Sz=1, de aceea Mz=1.010010.
d) normalizarea rezultatului
La mantisa cîtului cifra semnului nu coincide cu cifra din poziţia cea mai semnificativă a
valorii mantisei, deci rezultatul este normalizat.
În consecinţă rezultatul va fi:
Mz=1.010010
Ez=0.0100.

S-ar putea să vă placă și