logo

Algoritme de multiplicació de Booth

L'algorisme de la cabina és un algorisme de multiplicació que ens permet multiplicar els dos nombres enters binaris amb signe en el complement a 2, respectivament. També s'utilitza per accelerar el rendiment del procés de multiplicació. També és molt eficient. Funciona amb els bits de cadena 0 del multiplicador que no requereix cap bit addicional només desplaçar els bits de cadena més a la dreta i una cadena d'1 en un pes de bit multiplicador 2kal pes 2mque es pot considerar com 2k+ 1- 2m .

A continuació es mostra la representació pictòrica de l'algoritme de la cabina:

Cabina

En el diagrama de flux anterior, inicialment, AC i Qn + 1 els bits s'estableixen a 0 i el SC és un comptador de seqüències que representa el conjunt de bits totals n, que és igual al nombre de bits del multiplicador. N'hi ha BR que representen el multiplicar bits, i QR representa el bits multiplicadors . Després d'això, vam trobar dos bits del multiplicador com a Qni Qn + 1, on Qn representa l'últim bit de QR, i Qn + 1representa el bit incrementat de Qn en 1. Suposem que dos bits del multiplicador són iguals a 10; vol dir que hem de restar el multiplicador del producte parcial de l'acumulador AC i després realitzar l'operació de desplaçament aritmètic (ahr). Si els dos multiplicadors són iguals a 01, vol dir que hem de fer la suma del multiplicant al producte parcial de l'acumulador AC i després realitzar l'operació de desplaçament aritmètic ( Ashr ), inclòs Qn + 1 . L'operació de desplaçament aritmètic s'utilitza a l'algorisme de Booth per desplaçar els bits AC i QR cap a la dreta en un i es manté el bit de signe en AC sense canvis. I el comptador de seqüències es decrementa contínuament fins que es repeteix el bucle computacional, igual al nombre de bits (n).

Treballant l'algoritme de la cabina

  1. Estableix els bits binaris Multiplicand i Multiplicador com a M i Q, respectivament.
  2. Inicialment, establim AC i Qn + 1registra el valor a 0.
  3. SC representa el nombre de bits del multiplicador (Q) i és un comptador de seqüències que es decrementa contínuament fins a igualar el nombre de bits (n) o arribar a 0.
  4. Un Qn representa l'últim bit de la Q i la Qn+1mostra el bit incrementat de Qn en 1.
  5. En cada cicle de l'algorisme de la cabina, Qni Qn + 1els bits es comprovaran en els paràmetres següents de la següent manera:
    1. Quan dos bits Qni Qn + 1són 00 o 11, simplement realitzem l'operació de desplaçament aritmètic a la dreta (ashr) al producte parcial AC. I els bits de Qn i Qn + 1s'incrementa en 1 bit.
    2. Si els bits de Qni Qn + 1Si es mostra a 01, els bits multiplicadors (M) s'afegiran a l'AC (registre de l'acumulador). Després d'això, realitzem l'operació de desplaçament correcta als bits AC i QR en 1.
    3. Si els bits de Qni Qn + 1Si es mostra a 10, els bits multiplicadors (M) es restaran de l'AC (registre acumulador). Després d'això, realitzem l'operació de desplaçament correcta als bits AC i QR en 1.
  6. L'operació funciona contínuament fins que arribem a n - 1 bit a l'algorisme de la cabina.
  7. Els resultats dels bits binaris de multiplicació s'emmagatzemaran als registres AC i QR.

Hi ha dos mètodes utilitzats en l'algoritme de Booth:

negreta en css

1. RSC (Circular de desplaçament a la dreta)

Desplaça el bit més a la dreta del nombre binari i després s'afegeix al començament dels bits binaris.

Cabina

2. RSA (Aritmètica de desplaçament a la dreta)

Afegeix els dos bits binaris i després desplaça el resultat cap a la dreta en una posició d'1 bit.

una matriu en java

Exemple : 0100 + 0110 => 1010, després d'afegir el nombre binari, desplaceu cada bit 1 cap a la dreta i poseu el primer bit de la resultant al començament del nou bit.

Exemple: Multipliqueu els dos nombres 7 i 3 utilitzant l'algorisme de multiplicació de Booth.

Anys . Aquí tenim dos nombres, 7 i 3. En primer lloc, hem de convertir 7 i 3 en nombres binaris com 7 = (0111) i 3 = (0011). Ara poseu 7 (en binari 0111) com a multiplicant (M) i 3 (en binari 0011) com a multiplicador (Q). I SC (Recompte de seqüències) representa el nombre de bits, i aquí tenim 4 bits, així que establiu el SC = 4. A més, mostra el nombre de cicles d'iteració dels algorismes de la cabina i després els cicles executats SC = SC - 1 vegada.

Qn Qn + 1 M = (0111)
M' + 1 = (1001) & Operació
AC Q Qn + 1 SC
1 0 Inicial 0000 0011 0 4
Sostreure (M' + 1) 1001
1001
Realitzeu operacions de desplaçament aritmètic a la dreta (ashr) 1100 1001 1 3
1 1 Realitzeu operacions de desplaçament aritmètic a la dreta (ashr) 1110 0100 1 2
0 1 Addició (A + M) 0111
0101 0100
Realitzeu l'operació de desplaçament a la dreta aritmètica 0010 1010 0 1
0 0 Realitzeu l'operació aritmètica de desplaçament a la dreta 0001 0101 0 0

L'exemple numèric de l'algoritme de multiplicació de Booth és 7 x 3 = 21 i la representació binària de 21 és 10101. Aquí, obtenim la resultant en binari 00010101. Ara la convertim en decimal, com (000010101)10= 2*4 + 2*3 + 2*2 + 2*1 + 2*0 => 21.

ubuntu build essencial

Exemple: Multipliqueu els dos nombres 23 i -9 utilitzant l'algorisme de multiplicació de Booth.

Aquí, M = 23 = (010111) i Q = -9 = (110111)

QnQn + 1 M = 0 1 0 1 1 1
M' + 1 = 1 0 1 0 0 1
ACQQn + 1SC
Inicialment 000000 110111 0 6
1 0 Resta M 101001
101001
Realitzeu l'operació de desplaçament a la dreta aritmètica 110100 111011 1 5
1 1 Realitzeu l'operació aritmètica de desplaçament a la dreta 111010 011101 1 4
1 1 Realitzeu l'operació aritmètica de desplaçament a la dreta 111101 001110 1 3
0 1 Addició (A + M) 010111
010100
Realitzeu l'operació aritmètica de desplaçament a la dreta 001010 000111 0 2
1 0 Resta M 101001
110011
Realitzeu l'operació aritmètica de desplaçament a la dreta 111001 100011 1 1
1 1 Realitzeu l'operació aritmètica de desplaçament a la dreta 111100 110001 1 0

Qn + 1 = 1, vol dir que la sortida és negativa.

Per tant, 23 * -9 = complement de 2 de 111100110001 => (00001100111)