۲
subtitle
ببینین الگوریتم ضرب بوث برای سیستم مکمل دو کار می کنه . شما دوتا دوتا بیتهای مضروب رو در نظر بگیرین . اگه با هم یکسان بود فقط حاصل رو شیف بدین . اگه ۱۰ بود تفریق کنین . اگه ۰۱ بود جمع کنین .
حالا برای مثال شما:
ما می خوایم -۴ رو در -۳ ضرب کنیم:
-۳ در سیستم مکمل دو می شه ۱۱۰۱
-۴ می شه ۱۱۰۰
به بیت مقایسه می گنQ -1 . در ابتدا ۰ فرضش می کنیم ولیQ رو هرچی شیف می دیم وارد اون می شه .
مرحلهی یک: q=0 و q-1=0 -----> حاصل یک شیف: ۰-۰۰۰۰
مرحلهی دو: q=0 و q-1=0 -----> حاصل شیفت مجدد: ۰۰-۰۰۰۰
مرحلهی سه: q=1 و q-1=0 ----> حاصل برابر تفریق + شیفت: تفریق -۳ از حاصل برابر همون جمع با ۳ هست: ۰۰۰۰+ ۰۰۱۱ و بعد شیفتش: ۱۰۰-۰۰۰۱
مرحلهی چهار: q=1 و q-1=1 پس حاصل شیفت: ۱۱۰۰-۰۰۰۰
که برابر حاصل نهاییه .
حالا برای مثال شما:
ما می خوایم -۴ رو در -۳ ضرب کنیم:
-۳ در سیستم مکمل دو می شه ۱۱۰۱
-۴ می شه ۱۱۰۰
به بیت مقایسه می گنQ -1 . در ابتدا ۰ فرضش می کنیم ولیQ رو هرچی شیف می دیم وارد اون می شه .
مرحلهی یک: q=0 و q-1=0 -----> حاصل یک شیف: ۰-۰۰۰۰
مرحلهی دو: q=0 و q-1=0 -----> حاصل شیفت مجدد: ۰۰-۰۰۰۰
مرحلهی سه: q=1 و q-1=0 ----> حاصل برابر تفریق + شیفت: تفریق -۳ از حاصل برابر همون جمع با ۳ هست: ۰۰۰۰+ ۰۰۱۱ و بعد شیفتش: ۱۰۰-۰۰۰۱
مرحلهی چهار: q=1 و q-1=1 پس حاصل شیفت: ۱۱۰۰-۰۰۰۰
که برابر حاصل نهاییه .