布斯乘法算法

✍ dations ◷ 2025-11-24 20:49:05 #电脑架构,计算机科学,算法,二进制算术

布斯乘法算法(英语: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串时),布斯算法较一般的乘法算法执行的加减法运算少。

相关

  • 尤素甫·哈斯·哈吉甫玉素甫‧哈斯‧哈吉甫 (阿拉伯语:يوسف خاصّ حاجب‎; Yūsuf Khāṣṣ Ḥājib Balasağuni; 维吾尔语:.mw-parser-output .font-uig{font-family:"UKIJ Tuz","UKI
  • 太初核合成原初核合成(BBN)是物理宇宙学的一个概念,指宇宙在早期阶段产生H-1(最常见,也是最轻的氢同位素,只有单独的一个质子)之外原子核的过程。原初核合成在大爆炸之后只经历了几分钟,相信与
  • 凯氏温标热力学温标,又称开尔文温标、绝对温标,简称开氏温标,凯氏温标,是一种标定、量化温度的方法。它对应的物理量是热力学温度,或称开氏度,符号为K,为国际单位制中的基本物理量之一;对应
  • 冰斗冰斗(英语:cirque)是由山地冰川侵蚀而形成的,一种三面环山的凹地,如果冰已经消失,也被称为围谷、圈谷。冰斗形成于雪线附近的积雪凹地由于随季节和昼夜温度的变化,积雪融化和冻结反
  • 斯特凡·恩德利歇斯特凡·恩德利歇(全名斯特凡·拉迪斯劳斯·恩德利歇 德语:Stephan Ladislaus Endlicher)(1804年6月24日-1849年3月28日),奥地利植物学家、古钱币研究专家和汉学家。他出生于布拉迪
  • South Australia南澳大利亚(英语:South Australia,缩写为SA),简称南澳,位于澳大利亚中南部,与澳大利亚大陆的其余四州及北领地接壤,是澳大利亚联邦的一州,其下划分为69个地方政府区域。南澳大利亚南
  • 金堉金堉(朝鲜语:김육/金堉 Gim Yug ?,1580年-1658年9月)韩国朝鲜王朝中期的文臣及实学者、政治家、经世家。他是大同法的施行者。字伯厚(백후)、号潜谷(잠곡)、晦静堂(회정당)、谥号文贞(
  • 丝状真菌霉菌是非分类学名词,是对菌丝体发达,而又不产生大型肉质子实体的丝状真菌的俗称。霉菌的菌丝呈长管、分枝状,无横隔壁,具多个细胞核,并会聚成菌丝体。霉菌常用孢子的颜色来称呼,如
  • 银娇《银娇》(韩语:은교,英语:A Muse)是一部2012年上映的韩国电影。改编自韩国著名社会学作家朴范信(朝鲜语:박범신)的同名小说,与《Cholatse》、《古山子》并称为朴氏“渴望三部曲”。原
  • 日本捕鲸业日本捕鲸始于绳文时代(前131世纪-前4世纪)。在国际捕鲸委员会禁止商业捕鲸后,20世纪日本庞大的商业捕鲸活动宣告结束。1986年,国际捕鲸委员会允许日本以“科学研究”的目的,在南极