布斯乘法算法

✍ dations ◷ 2025-12-07 15:07:35 #电脑架构,计算机科学,算法,二进制算术

布斯乘法算法(英语:Booth's multiplication algorithm)是计算机中一种利用数的2的补码形式来计算乘法的算法。该算法由安德鲁·唐纳德·布思于1950年发明,当时他在伦敦大学柏贝克学院做晶体学研究。布斯曾使用过一种台式计算器,由于用这种计算器来做移位计算比加法快,他发明了该算法来加快计算速度。布斯算法在计算机体系结构学科中备受关注。

对于位乘数,布斯算法检查其2的补码形式的最后一位和一个隐含的低位,命名为-1,初始值为0。对于, = 0, 1, ..., - 1,考察 - 1。当这两位相同时,存放积的累加器的值保持不变。当 = 0且 - 1 = 1时,被乘数乘以2加到中。当 = 1且 - 1 = 0时,从中减去被乘数乘以2的值。算法结束后,中的数即为乘法结果。

该算法对被乘数和积这两个数的表达方式并没有作规定。一般地,和乘数一样,可以采用2的补码方式表达。也可以采用其他计数形式,只要支持加减法就行。这个算法从乘数的最低位执行到最高位,从 = 0开始,接下来和2的乘法被累加器的算术右移所取代。较低位可以被移出,加减法可以只在的前位上进行。

布斯算法的实现,可以通过重复地在上加两个预设值和 S其中的一个,然后对实施算术右移。设和分别为被乘数和乘数,再令和分别为和中的数字位数。

换另一种说法:把前x位用一个单独的数R0表示,中间y位用另一个数表示R1表示,辅助位用Z表示在这里,要通过重复的把R0加上或者减去m来得到结果。具体如下:初始值R0=0,R1=r.Z=0,此时来考查yi和yi-1这两位,在这里就是m的最后一位和Z的值。这里要说下为什么每次看的都是这两位了。在下边每次运算后都会把R0,R1,Z中的值右移一次,RO的最后一位移入R1的高位,R1的最后一位移入Z。这里要注意的是在右移R0时,如果他的最高位是1,则移位后最高位用1填充,如果最高位是0,移位后最高位用0填充。接下来要按m的最后一位和Z的值来判断怎么加减了:

最后是结果,结果就是R0并上R1的值。比如R0=3,R1=25,结果就是325.

考虑一个由若干个0包围着若干个1的正的二进制乘数,比如00111110,积可以表达为:

其中,M代表被乘数。变形为下式可以使运算次数可以减为两次:

事实上,任何二进制数中连续的1可以被分解为两个二进制数之差:

因此,我们可以用更简单的运算来替换原数中连续为1的数字的乘法,通过加上乘数,对部分积进行移位运算,最后再将之从乘数中减去。它利用了我们在针对为零的位做乘法时,不需要做其他运算,只需移位这一特点,这很像我们在做和99的乘法时利用99 = 100 − 1这一性质。这种模式可以扩展应用于任何一串数字中连续为1的部分(包括只有一个1的情况)。那么,

布斯算法遵从这种模式,它在遇到一串数字中的第一组从0到1的变化时(即遇到01时)执行加法,在遇到这一串连续1的尾部时(即遇到10时)执行减法。这在乘数为负时同样有效。当乘数中的连续1比较多时(形成比较长的1串时),布斯算法较一般的乘法算法执行的加减法运算少。

相关

  • 德意志米歇尔德意志米歇尔(Deutscher Michel)是德国的拟人化形象,这个称呼起源于近代,而至今也仍然可以在讽刺画中找到。戴着典型的睡帽(英语:nightcap 德语:Schlafmütze )或者绒球帽的“德意志
  • 统计独立性在概率论里,说两个事件是独立的,直觉上是指一次实验中一事件的发生不会影响到另一事件发生的概率。例如,在一般情况下可以认为连续两次掷骰子得到的点数结果是相互独立的。类似
  • 育幼袋育幼袋(英语:pouch,又译育儿囊)是有袋类雌性个体身上的一个特殊构造。“有袋类”一辞源自拉丁文中的marsupium,意思就是“囊袋”。与其他哺乳类相比之下,有袋类的幼仔在发育相当早
  • 河野太郎河野太郎(1963年1月10日-),日本政治人物,自由民主党众议院议员(7期)。父亲是前副总理及外务大臣河野洋平。前众议院议员河野一郎为祖父,前参议院议长河野谦三为大叔公。1981年考进庆
  • 新西兰国家党新西兰国家党(英语:New Zealand National Party;毛利语:Rōpū Nāhinara)是新西兰是一个中间偏右的保守主义政党。国家党是新西兰当今的最大反对党。国家党创立于1936年,是当时新
  • 大陆军大陆军(英语:Continental Army)是美国独立战争中的英属北美殖民地军事力量,于1775年6月14日根据第二次大陆议会的决议建立,使美国独立运动有了革命武力对抗英国军队。在整个战争
  • 蒂迪旺沙山脉蒂迪旺沙山脉(马来语:Banjaran Titiwangsa;بنجرن تيتيوڠسا)是马来半岛的主干山脉,也是马来半岛的自然分隔线,将半岛分成东岸及西岸地区。山脉由泰国南部开始一直延申
  • 训练及准则司令部美国陆军训练及准则司令部(英语:United States Army Training and Doctrine Command,缩写为TRADOC),美国陆军司令部之一,建立于1973年7月1日,总部位于维吉尼亚州尤斯蒂斯堡(Fort Eus
  • 亡兵纪念日阵亡将士纪念日(英语:Memorial Day,是美国联邦法定节日,原名纪念日,或悼念日,又译国殇纪念日)是美国的一个纪念日,每年5月的最后一个星期一悼念在各战争中阵亡的美军官兵。全国悼念
  • 夏绿夏绿(なつ みどり)是日本小说家、轻小说作家、漫画原作者与科普文章作者。出生于大阪,神户大学农学部毕业,大阪京都大学理学研究科博士,日本分子生物学会(日语:日本分子生物学会)会