logo

Booths multiplikationsalgoritme

Booth-algoritmen er en multiplikationsalgoritme, der giver os mulighed for at multiplicere de to fortegnede binære heltal i henholdsvis 2's komplement. Det bruges også til at fremskynde udførelsen af ​​multiplikationsprocessen. Det er også meget effektivt. Det virker på strengbits 0'erne i multiplikatoren, der ikke kræver yderligere bit, forskyd kun strengbittene længst til højre og en streng på 1'er i en multiplikatorbitvægt 2ktil vægt 2mder kan betragtes som 2k+1- 2m .

Følgende er den billedlige repræsentation af Booth's Algorithm:

Booth

I ovenstående flowchart, indledningsvis, AC og Qn + 1 bit er sat til 0, og SC er en sekvenstæller, der repræsenterer det samlede antal bitsæt n, som er lig med antallet af bits i multiplikatoren. Der er BR der repræsenterer multiplikante bits, og QR repræsenterer multiplikator bits . Derefter stødte vi på to bits af multiplikatoren som Qnog Qn + 1, hvor Qn repræsenterer den sidste bit af QR, og Qn + 1repræsenterer den øgede bit af Qn med 1. Antag, at to bits af multiplikatoren er lig med 10; det betyder, at vi skal trække multiplikatoren fra partialproduktet i akkumulatoren AC og derefter udføre den aritmetiske skiftoperation (ashr). Hvis de to af multiplikatorerne er lig med 01, betyder det, at vi skal udføre additionen af ​​multiplikaanden til delproduktet i akkumulator AC og derefter udføre den aritmetiske skiftoperation ( Ashr ), herunder Qn + 1 . Den aritmetiske skiftoperation bruges i Booths algoritme til at flytte AC- og QR-bits til højre med én og forbliver fortegnsbitten i AC uændret. Og sekvenstælleren dekrementeres kontinuerligt, indtil beregningsløkken gentages, svarende til antallet af bit (n).

Arbejder på Booth Algorithm

  1. Indstil Multiplikand og Multiplikator binære bits som henholdsvis M og Q.
  2. Til at begynde med indstillede vi AC og Qn + 1registrerer værdi til 0.
  3. SC repræsenterer antallet af multiplikatorbit (Q), og det er en sekvenstæller, der kontinuerligt dekrementeres, indtil det er lig med antallet af bit (n) eller nås til 0.
  4. En Qn repræsenterer den sidste bit af Q, og Qn+1viser den øgede bit af Qn med 1.
  5. I hver cyklus af kabinealgoritmen, Qnog Qn + 1bits vil blive kontrolleret på følgende parametre som følger:
    1. Når to bit Qnog Qn + 1er 00 eller 11, udfører vi blot den aritmetiske skift til højre (ashr) til delproduktet AC. Og biterne af Qn og Qn + 1øges med 1 bit.
    2. Hvis bits af Qnog Qn + 1er viser til 01, vil multiplikand-bittene (M) blive tilføjet til AC (akkumulatorregisteret). Derefter udfører vi den rigtige skiftoperation til AC- og QR-bittene med 1.
    3. Hvis bits af Qnog Qn + 1er viser til 10, vil multiplikandbittene (M) blive trukket fra AC (akkumulatorregisteret). Derefter udfører vi den rigtige skiftoperation til AC- og QR-bittene med 1.
  6. Operationen fungerer kontinuerligt, indtil vi nåede n - 1 bit i booth-algoritmen.
  7. Resultaterne af de binære multiplikationsbits vil blive gemt i AC- og QR-registrene.

Der er to metoder, der bruges i Booths algoritme:

markdown billeder

1. RSC (Right Shift Circular)

Det forskyder bit længst til højre i det binære tal, og derefter tilføjes det til begyndelsen af ​​de binære bit.

Booth

2. RSA (Right Shift Arithmetic)

Den tilføjer de to binære bit og flytter derefter resultatet til højre med 1-bit position.

java program loop

Eksempel : 0100 + 0110 => 1010, efter at have tilføjet det binære tal forskyd hver bit med 1 til højre og sæt den første bit af resultant til begyndelsen af ​​den nye bit.

Eksempel: Gang de to tal 7 og 3 ved at bruge Booths multiplikationsalgoritme.

Flere år . Her har vi to tal, 7 og 3. Først og fremmest skal vi konvertere 7 og 3 til binære tal som 7 = (0111) og 3 = (0011). Indstil nu 7 (i binær 0111) som multiplikant (M) og 3 (i binær 0011) som en multiplikator (Q). Og SC (Sequence Count) repræsenterer antallet af bits, og her har vi 4 bit, så sæt SC = 4. Den viser også antallet af iterationscyklusser af standens algoritmer og derefter kører cykler SC = SC - 1 gang.

Qn Qn + 1 M = (0111)
M' + 1 = (1001) & Operation
AC Q Qn + 1 SC
1 0 Initial 0000 0011 0 4
Trække fra (M' + 1) 1001
1001
Udfør aritmetiske højreskiftoperationer (ashr) 1100 1001 1 3
1 1 Udfør aritmetiske højreskiftoperationer (ashr) 1110 0100 1 2
0 1 Tilføjelse (A + M) 0111
0101 0100
Udfør aritmetisk højreskifteoperation 0010 1010 0 1
0 0 Udfør aritmetisk højreskifteoperation 0001 0101 0 0

Det numeriske eksempel på Booths multiplikationsalgoritme er 7 x 3 = 21, og den binære repræsentation af 21 er 10101. Her får vi resultanten i binær 00010101. Nu konverterer vi den til decimal, som (000010101)10= 2*4 + 2*3 + 2*2 + 2*1 + 2*0 => 21.

jordnødde vs jordnødde

Eksempel: Gang de to tal 23 og -9 ved at bruge Booths multiplikationsalgoritme.

Her er M = 23 = (010111) og Q = -9 = (110111)

QnQn + 1 M = 0 1 0 1 1 1
M' + 1 = 1 0 1 0 0 1
ACQQn + 1SC
I første omgang 000000 110111 0 6
1 0 Træk M fra 101001
101001
Udfør aritmetisk højreskiftoperation 110100 111011 femten
elleve Udfør aritmetisk højreskiftoperation 111010 011101 1 4
elleve Udfør aritmetisk højreskiftoperation 111101 001110 1 3
0 1 Tilføjelse (A + M) 010111
010100
Udfør aritmetisk højreskiftoperation 001010 000111 0 2
1 0 Træk M fra 101001
110011
Udfør aritmetisk højreskifteoperation 111001 100011 elleve
elleve Udfør aritmetisk højreskiftoperation 111100 110001 1 0

Qn + 1 = 1, betyder det, at outputtet er negativt.

Derfor er 23 * -9 = 2'er komplement af 111100110001 => (00001100111)