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:
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
- Estableix els bits binaris Multiplicand i Multiplicador com a M i Q, respectivament.
- Inicialment, establim AC i Qn + 1registra el valor a 0.
- 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.
- Un Qn representa l'últim bit de la Q i la Qn+1mostra el bit incrementat de Qn en 1.
- 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:
- 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.
- 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.
- 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.
- L'operació funciona contínuament fins que arribem a n - 1 bit a l'algorisme de la cabina.
- 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.
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 | AC | Q | Qn + 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)