Numere binare

DIVIZAREA NUMERELOR BINARE

Dacă multiplicarea este efectuată prin mai multe schimburi și adăugiri, atunci împărțirea, fiind o operație de multiplicare inversă, este prin multiple mișcări și subtracții.







(BANCI DREPT, FĂRĂ CEL MAI BUN).

Când reprezentați numere de puncte fixe, divizarea este posibilă în cazul în care dividendul este modulo mai mic decât divizorul, în caz contrar se va produce depășirea bitmap.

La fel ca în diviziunea "manuală", se determină cifrele coeficientului de împărțire a numerelor pe mașină (începând cu cea mai veche) prin scăderea succesivă a divizorului din restul obținut din scăderea anterioară. Totuși, aici operația de scădere este înlocuită cu adăugarea restului cu divizorul negativ reprezentat în codul invers sau complementar. Semnul privat este determinat prin adăugarea modulului două coduri de dividend și divizor.

Să analizăm mai întâi exemplul divizării într-un mod "manual".

Numere binare

Aici, după fiecare scădere, divizorul este mutat spre dreapta în raport cu divizorul. Dacă restul după scădere se dovedește a fi pozitiv, 1 este scris la bitul privat, dacă este negativ, este zero. În practică, de obicei, balanța negativă nu este înregistrată, doar divizorul este mutat încă un pic în dreapta și scos din restul pozitiv.

În mașini, în loc de a schimba divizorul spre dreapta, reziduul este deplasat spre stânga, ceea ce, de fapt, nu schimbă nimic.

Atunci când se împarte cu restul reziduului, reziduul negativ este restabilit prin sumare cu un divizor pozitiv. Reziduul restabilit este deplasat spre stânga cu o singură cifră. Din reziduul mutat, divizorul este din nou scăzut. Cifra următoarei cifre a coeficientului este determinată de semnul restului obținut. Procesul de divizare continuă până când se obține un număr dat de cifre, ceea ce asigură precizia necesară a rezultatului.

Să vedem cum se rezolvă exemplul anterior pe mașină.

Procesul de divizare începe cu schimbarea dividendului în stânga cu o singură cifră, după care se adaugă un divizor, reprezentat, de exemplu, într-un cod suplimentar modificat:







Numere binare

Evident, atunci când se împarte cu restaurarea restului în cel mai nefavorabil caz, sunt necesare două operații pentru a forma fiecare bit privat: scăderea (adunarea în codul adițional sau invers) și adăugarea (restabilirea restului). Asta înseamnă că timpul pentru efectuarea unei operațiuni de divizare poate fi de două ori mai mare decât minimul posibil.

Pentru a reduce timpul mediu de execuție al unei operațiuni de divizare, divizarea este realizată fără restabilirea restului, al cărui algoritm este după cum urmează.

1) Determinați semnul unui anumit modul de sumare, două semne semnate ale divizibilului și divizorului.

2) De la divizibil scădea divizorul. Dacă restul este negativ, mergeți la pasul 3. În caz contrar, calculul este finalizat (a avut loc o depășire).

3) Amintiți-vă semnul restului.

4) Deplasați restul o singură cifră în stânga.

5) Alocați un semn divizorului, care este inversul semnului restului, care este stocat în clauza 2.

6) Adăugați restul mutat și divizorul (luând în considerare semnul).

7) Dați cifra o valoare privată, opusă codului semnului restului.

8) Repetați pașii 3-7 până când se asigură precizia necesară pentru calcularea coeficientului.

Soluția exemplului de mai sus în acest caz se realizează conform următoarei scheme:

Numere binare

CU RACIRE FLOAT

Atunci când se efectuează o operație de diviziune pe mantisa număr în virgulă mobilă determinată privat prin împărțirea mantisa divizorului de dividend mantisa, iar ordinea de ordinul privat prin scăderea împărțitor din codul de dividend a codului, deoarece

Divizând întreg n-biți non-zero (fără a include biții semn) a numărului de A: B, reprezentate în prova (pentru simplitate), rezultatele de cod într-un număr întreg privat C. și reziduuri 0, care este atribuit semnul dividendului; semn privat se calculează ca suma modulo doi operanzi A și B.

Divizarea este efectuată în următoarea secvență.

1) Dividerul B este deplasat spre stânga (normalizat), astfel încât primul bit informativ este 1, se numără numărul de schimburi S; coeficientul împărțirii nu poate fi mai mare de (S + 1) cifre care nu sunt egale cu zero.

2) Ciclul de diviziune (S + 1) al lui | A | pe IB'l unde B 'este normalizată B, rezultând că există (S + 1) bitul privat, începând cu cel mai mare dintre cei mai tineri (S + 1).

3) Reziduul Rs + 1 obținut în ultimul ciclu de fisiune, dacă este pozitiv, se deplasează spre dreapta prin cifre S; dacă Rs + 1 <0 (отрицательный), то остаток восстанавливается: к нему добавляется |В'|, т. е.[Rs+1]вост = Rs+1+|B'|. После этого выполняется сдвиг вправо на S разрядов. В результате получается целый остаток от деления.

Cel privat și restul sunt desemnați prin semne.

Numere binare







Trimiteți-le prietenilor: