首页 > 代码库 > Booth算法(有符号数的乘法)
Booth算法(有符号数的乘法)
求 M3M2M1M0×Q3Q2Q1Q0 : 0110×0101 (有符号数用补码表示,最高位表示正负)
1、添加辅助位:A=0000 Q-1=0
2、控制逻辑判断:
①Q0Q-1=01 时:A=A+M 然后 A、Q、Q-1算术右移 (两步)
②Q0Q-1=10 时:A=A-M 然后 A、Q、Q-1算术右移 (两步)
补码加减:(A-M)补码=A补码+(-M)补码
③Q0Q-1=00或11 时:A、Q、Q-1算术右移 (一步)
补码右移:空位填1
3、Q有几位就做几次右移运算。(如:01000×011,做3次右移结束)
4、结果即为AQ(0001 1110,即 6×5=30)。
A | Q | Q-1 | M | |
初值 | 0000 | 0101 | 0 | 0110 |
① A-M | 1010 | 0101 | 0 | 0110 |
A,Q,Q-1右移 | 1101 | 0010 | 1 | 0110 |
② A+M | 0011 | 0010 | 1 | 0110 |
A,Q,Q-1右移 | 0001 | 1001 | 0 | 0110 |
③ A-M | 1011 | 1001 | 0 | 0110 |
A,Q,Q-1右移 | 1101 | 1100 | 1 | 0110 |
④ A+M | 0011 | 1100 | 1 | 0110 |
A,Q,Q-1右移 | 0001 | 1110 | 0 | 0110 |
Booth算法(有符号数的乘法)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。