什么是计算机体系结构中的 Booth 乘法算法?
布斯乘法算法定义了一种乘法算法,可以将两个有符号二进制数以二进制补码相乘。该算法有助于计算机体系结构的研究。
布斯算法包含将两个预定值(A和S)之一连续添加到乘积(P)上,然后对乘积(P)执行向右的算术移位。让我们考虑预先确定的值是A和S,乘积是P。考虑被乘数和乘数分别是m和r。设m和r中的位数分别为x和y。
Booth的乘法算法涉及以下步骤-
步骤1-确定A和S的值以及P的初始值。这些值的长度应该等于(x+y+1)。
对于A,MSB用m的值填充,其余(y+1)位用零填充。
对于S,MSB以二进制补码表示法填充(-m)的值,其余(y+1)位填充为零。
对于P,x的MSB用零填充。在该值的右侧,附加了r的值。然后,LSB用零填充。
步骤2-确定P的LSB。
如果它们是01,则找到P+A的值,并忽略溢出或进位(如果有)。
如果它们是10,则找到P+S的值,并忽略溢出或进位(如果有)。
如果它们是00,则在下一步中直接使用P。
如果它们是11,则在下一步中直接使用P。
步骤3-在第二步中获得的值在算术上向右移动一位。P现在被赋予了新的值。
Step4-Step2和Step3重复y次。第5步:从P中去掉LSB,得到m和r的乘积。
示例-找到3x(-4)的乘积,其中m=3,r=-4,x=4和y=-4。
A=001100001
S=110100000
P=000011000
由于y=4,循环必须执行四次。
P=000011000
这里,最后两位是00。
因此,执行算术右移后P=000001100。
P=000001100
这里,最后两位是00。
因此,执行算术右移后P=000000110。
P=000000110
这里,最后两位是10。
因此,P=P+S,即110100110。
执行算术右移后P=111010011。
P=111010011
这里,最后两位是11。
因此,执行算术右移后P=111101001。
从P去掉LSB后的乘积为11110100。
11110100是-12的二进制表示。
评论列表