bazele informaticii.doc

Download bazele informaticii.doc

If you can't read please download the document

Upload: auroraistratie

Post on 28-Sep-2015

253 views

Category:

Documents


1 download

TRANSCRIPT

UNIVERSITATEA DIN PETROANI

FACULTATEA DE INGINERIE MECANIC I ELECTRIC

CURS POSTUNIVERSITAR INFORMATIC

REFERAT

BAZELE INFORMATICII

NMULIRE I MPRIRE

Student: Gheorghe (Istratie) Aurora

An universitar 2011-2012

An I CPUI

BAZELE INFORMATICII

INMULTIRE SI IMPARTIRE

1.1. Principiul inmultirii

Utilizarea operatorilor de inmultire si de impartire implica, in interiorul unui calculator, executarea unui algoritm compus din operatii elementare. Utilizarea intensiva a unor asemenea operatori incetineste executia programului. In scopul maririi vitezei de executie, aceasta se face prin logica cablata (compusa doar din porti logice).

Operatia de inmultire, chiar daca este complexa se poate intotdeauna descompune in operatii mai simple. Inmultirea se efectueaza deplasand deinmultitul multiplicat cu cifra corespunzatoare din inmultitor. Fig.1. arata o inmultire realizata dupa aceasta metoda.

11

1

0

1

1

deinmultit

x

23

x

1

0

1

1

1

inmultitor

33

1

0

1

1

+

22

1

0

1

1

deplasarea

1

0

1

1

deinmultitului

253

0 0 0

0

+1 0 1 1

produs

1 1 1 1

1

1

0

1

Fig.1.

In loc sa avem o lista lunga de deinmultiti deplasati, vom efectua la fiecare iteratie suma acestora, deci vom crea produse partiale. Fig.2. prezinta o inmultire cu tehnica produselor partiale.

1

0

1

1

deinmultit

x

1

1

0

1

inmultitor

initializare

0

0 0 0

0 0 0 0

produs partial

+

1

0

1

1

deinmultit decalat

0

0 0 0 1 0 1 1

produs partial

+

0 0 0 0

produs partial

0

0 0 0 1 0 1 1

+

1 0 1 1

produs partial

0

0 1 1 0 1 1 1

+

1 0 1 1

produs

1 0 0 0 1 1 1 1

Fig.2.

Atunci cand se inmulteste un cuvant de n biti cu un cuvant de m biti, produsul va fi pe n+m biti.

1.2. Inmultirea fara semn

Inmultirea a doua numere logice de n biti este definita prin:

n 1

D = A B = A b j 2 j

(1)

j=0

Cu deinmultitul A:

n1

A = a i

2i

a i (0,1)

(2)

i=0

si inmultitorul B:

n 1

B = a j

2 ji

b j (0,1)

(3)

j=0

Cum bj nu poate lua decat valorile 0 sau 1, fiecare produs partial Abj nu poate lua decat valorile 0 sau A, si produsul (1) se reduce la un sir de adunari si de deplasari.

Pentru a simplifica realizarea inmultirii vom modifica ecuatia (1) astfel incat sa nu

mai apara decat inmultiri cu 2, adica translatii de un bit spre stanga.

D=(Ab0)+(2A) b1+(2(2A)) b2++(2(2n-2A)) bn-1

(4)

1.3. Inmultirea numerelor cu semn

Algoritmul de inmultire dat de ecuatia (4) poate si extins la numerele aritmetice reprezentate in complement fata de 2, calculul direct al produsului fiind un pic mai delicat. Fie doua numere aritmetice A si B de n biti: daca A si B sunt numere negative, se

vor scrie in complement fata de 2 numerele pozitive corespunzatoare A si B , cu:

n

(5)

A = 2

A

n

(6)

B = 2

B

Cu A si B amandoua pozitive, inmultirea se executa ca pentru numerele logice. Daca unul dintre factori este negativ vom avea:

n

n

(7)

A B = A (2 B) = A 2 A B

Pentru orice valoare a lui A, termenul A2n iese din domeniul de reprezentare daca

produsul este codificat pe n biti; deci in acest caz inmultirea da rezultatul cautat

A B ,

sub forma de complement fata de 2.

Pentru A si B amandoua negative vom scrie:

n

n

2n

n

n

(8)

A B = (2

A) (2

B) = 2 2 A 2 B +A B

Rezultatul este

A B daca nu exista depasire de capacitate, deoarece toti ceilalti

termeni ies din domeniul de reprezentare.

1.4. Exemplu

Dupa cum s-a prezentat in paragraful precedent, inmultirea numerelor aritmetice poate fi realizata printr-un sir de translatii spre stanga si adunari. Ca toate operatiile elementare realizate in complement fata de 2, este necesara extinderea semnului fiecarui produs partial inaintea adunarii urmatoare. Fig.3 prezinta o inmultire binara in complement fata de 2 fara depasire de capacitate.

-2

1

1

1

0

deinmultit

-3

x

inmultitor

1

1

0

1

0

0

0

0

produs partial

x1

+

1 1 1 0

extindere de semn

1 1 1 1 0

primul produs partial

x02

+

0 0 0 0

x122

1 1 1 1 1 0

al doilea produs partial

+

1 1 1 0

x123

1 1 1 0 1 1 0

al treilea produs partial

+

1 1 1 0

1 1 1 0 0 1 1 0

produsul

+6

Fig.3.

Se observa ca inmultirea adoua numere de n biti A si B utilizeaza un circuit de

adunare de n biti, deci produsul D=AB nu va fi corect decat daca:

-2n-1