logo

Бутов алгоритам множења

Алгоритам штанда је алгоритам множења који нам омогућава да помножимо два потписана бинарна цела броја у комплементу 2, респективно. Такође се користи за убрзавање процеса множења. Такође је веома ефикасан. Ради на стринг битовима 0 у множитељу који не захтева никакав додатни бит, само помера крајње десне битове низа и низ 1 у тежини бита множитеља 2кна тежину 2мто се може сматрати као 2к+ 1- 2м .

Следи сликовни приказ Бутовог алгоритма:

Боотх

У горњем дијаграму тока, у почетку, АЦ и Пн + 1 битови су постављени на 0, а СЦ је бројач секвенци који представља укупан скуп битова н, што је једнако броју битова у множитељу. Постоје БР који представљају битови множења, а КР представља битови множитеља . Након тога, наишли смо на два бита множитеља као Кни Кн + 1, где Кн представља последњи бит КР, а Кн + 1представља инкрементирани бит Кн за 1. Претпоставимо да су два бита множитеља једнака 10; то значи да морамо да одузмемо множилац од парцијалног производа у акумулатору АЦ и затим извршимо операцију аритметичког померања (асхр). Ако су два множитеља једнака 01, то значи да треба да извршимо сабирање множеника делимичном производу у акумулатору АЦ, а затим извршимо операцију аритметичког померања ( Асхр ), укључујући Пн + 1 . Операција аритметичког померања се користи у Бутовом алгоритму за померање АЦ и КР битова удесно за један и остаје непромењен предзнак у АЦ. Бројач секвенци се континуирано смањује све док се рачунска петља не понови, једнако броју битова (н).

Рад на алгоритму штанда

  1. Поставите бинарне битове множитеља и множитеља као М и К, респективно.
  2. У почетку смо поставили АЦ и Кн + 1региструје вредност на 0.
  3. СЦ представља број битова множитеља (К), и то је бројач секвенци који се континуирано смањује до једнак броју битова (н) или достиже 0.
  4. Кн представља последњи бит К, а Кн+1приказује инкрементирани бит Кн за 1.
  5. На сваком циклусу алгоритма штанда, Кни Кн + 1битови ће бити проверени на следећим параметрима на следећи начин:
    1. Када два бита Кни Кн + 1су 00 или 11, једноставно изводимо операцију аритметичког померања удесно (асхр) на делимични производ АЦ. И битови Кн и Кн + 1се повећава за 1 бит.
    2. Ако су битови Кни Кн + 1се приказује на 01, битови множења (М) ће бити додати у АЦ (акумулаторски регистар). Након тога, извршимо операцију десног померања на АЦ и КР битове за 1.
    3. Ако су битови Кни Кн + 1је приказано на 10, битови множења (М) ће бити одузети од АЦ (регистра акумулатора). Након тога, извршимо операцију десног померања на АЦ и КР битове за 1.
  6. Операција континуирано ради све док не постигнемо н - 1 бит у алгоритму кабине.
  7. Резултати бинарних битова множења биће сачувани у АЦ и КР регистрима.

Постоје две методе које се користе у Бутовом алгоритму:

спојеви и врсте спојева

1. РСЦ (Ригхт Схифт Цирцулар)

Он помера крајњи десни бит бинарног броја, а затим се додаје на почетак бинарних битова.

Боотх

2. РСА (аритметика десног померања)

Додаје два бинарна бита, а затим помера резултат удесно за 1-битну позицију.

маркдовн прецртано

Пример : 0100 + 0110 => 1010, након додавања бинарног броја померите сваки бит за 1 удесно и ставите први бит резултанте на почетак новог бита.

Пример: Помножите два броја 7 и 3 користећи Боотх-ов алгоритам множења.

Године . Овде имамо два броја, 7 и 3. Пре свега, треба да конвертујемо 7 и 3 у бинарне бројеве као што су 7 = (0111) и 3 = (0011). Сада поставите 7 (у бинарном 0111) као множитељ (М) и 3 (у бинарном 0011) као множилац (К). А СЦ (број секвенци) представља број битова, а овде имамо 4 бита, тако да поставите СЦ = 4. Такође, показује број итерационих циклуса алгоритама кабине, а затим циклуси се покрећу СЦ = СЦ - 1 пут.

Пн Пн + 1 М = (0111)
М' + 1 = (1001) & Операција
АЦ П Пн + 1 СЦ
1 0 Иницијал 0000 0011 0 4
Одузми (М' + 1) 1001
1001
Извршите аритметичке операције десног померања (асхр) 1100 1001 1 3
1 1 Извршите аритметичке операције десног померања (асхр) 1110 0100 1 2
0 1 Сабирање (А + М) 0111
0101 0100
Извршите операцију аритметичког померања удесно 0010 1010 0 1
0 0 Извршите операцију аритметичког померања удесно 0001 0101 0 0

Нумерички пример Бутовог алгоритма множења је 7 к 3 = 21, а бинарни приказ броја 21 је 10101. Овде добијамо резултанту у бинарном облику 00010101. Сада је претварамо у децимални, као (000010101)10= 2*4 + 2*3 + 2*2 + 2*1 + 2*0 => 21.

како сазнати величину екрана

Пример: Помножите два броја 23 и -9 користећи Боотхов алгоритам множења.

Овде је М = 23 = (010111) и К = -9 = (110111)

ПнПн + 1 М = 0 1 0 1 1 1
М' + 1 = 1 0 1 0 0 1
АЦППн + 1СЦ
У почетку 000000 110111 0 6
1 0 Одузми М 101001
101001
Извршите операцију аритметичког померања удесно 110100 111011 петнаест
Једанаест Извршите операцију аритметичког померања удесно 111010 011101 1 4
Једанаест Извршите операцију аритметичког померања удесно 111101 001110 1 3
0 1 Сабирање (А + М) 010111
010100
Извршите операцију аритметичког померања удесно 001010 000111 0 2
1 0 Одузми М 101001
110011
Извршите операцију аритметичког померања удесно 111001 100011 Једанаест
Једанаест Извршите операцију аритметичког померања удесно 111100 110001 1 0

Пн + 1 = 1, то значи да је излаз негативан.

Дакле, 23 * -9 = 2 комплемента од 111100110001 => (00001100111)