【计算机组成原理】定点乘法运算之补码一位乘法(Booth算法)
2016-10-25 13:48
1096 查看
x * y = z
讨论已知x和y的情况下,怎么通过补码一位乘法方法得出z~~
首先说下运算规则~
和原码一位乘法不同的是,补码一位乘法的符号位是参加运算的~运算的所有的数包括得到的结果z都是补码的形式~
被乘数x取双符号参与运算,部分积的初值为0~~乘数y取单符号位~
乘数y末尾首先要增加一个附加位0,每次讨论的是y的最后两位~但是每次移动是移动一位哦~
判断y的最后两位的时候,遵循这样的规则:
为00或者为11的时候,直接右移一位
为01的时候,加x的补,然后右移一位
为10的时候,加-x的补,然后右移一位
5. 不过有个特例,就是最后一步不用右移一位!
举个栗子~~
比如x = -0.1101,y=0.1011
先写出x的补码:[x]补 = 11.0011,再写出-x的补码:[-x]补 = 00.1101
一开始部分积的初值是:00.0000
在y后面加个0~那么y变成了0.10110
然后从y的最后两位开始往前,0.10110当前最后两位是10,所以加上[-x]补:
00.0000 + 00.1101 = 00.1101
右移一位,变成00.01101
此时y =0.10110的最后两位变成了11(是往前挪了一个位置哦,不是两个~),按照规则应该直接右移一位就好啦,就变成了00.001101
此时y =0.10110的最后两位变成了01,所以根据规则要加[x]补:
00.001101 + 11.0011 = 11.011001
右移一位,变成了11.1011001
此时y =0.10110的最后两位变成了10,加上[-x]补:
11.1011001 + 00.1101 = 00.1000001
右移一位,变成了:00.01000001
此时y =0.10110最后两位是01(所以从这里就可以知道规则里面要在y前面补一个0的作用了吧嘿嘿),加[x]补:
00.01000001 + 11.0011 = 11.01110001
因为这已经是最后一步了,所以不用再右移了,所以最后结果就是1.01110001
这个结果是x*y的补码哦~
讨论已知x和y的情况下,怎么通过补码一位乘法方法得出z~~
首先说下运算规则~
和原码一位乘法不同的是,补码一位乘法的符号位是参加运算的~运算的所有的数包括得到的结果z都是补码的形式~
被乘数x取双符号参与运算,部分积的初值为0~~乘数y取单符号位~
乘数y末尾首先要增加一个附加位0,每次讨论的是y的最后两位~但是每次移动是移动一位哦~
判断y的最后两位的时候,遵循这样的规则:
为00或者为11的时候,直接右移一位
为01的时候,加x的补,然后右移一位
为10的时候,加-x的补,然后右移一位
5. 不过有个特例,就是最后一步不用右移一位!
举个栗子~~
比如x = -0.1101,y=0.1011
先写出x的补码:[x]补 = 11.0011,再写出-x的补码:[-x]补 = 00.1101
一开始部分积的初值是:00.0000
在y后面加个0~那么y变成了0.10110
然后从y的最后两位开始往前,0.10110当前最后两位是10,所以加上[-x]补:
00.0000 + 00.1101 = 00.1101
右移一位,变成00.01101
此时y =0.10110的最后两位变成了11(是往前挪了一个位置哦,不是两个~),按照规则应该直接右移一位就好啦,就变成了00.001101
此时y =0.10110的最后两位变成了01,所以根据规则要加[x]补:
00.001101 + 11.0011 = 11.011001
右移一位,变成了11.1011001
此时y =0.10110的最后两位变成了10,加上[-x]补:
11.1011001 + 00.1101 = 00.1000001
右移一位,变成了:00.01000001
此时y =0.10110最后两位是01(所以从这里就可以知道规则里面要在y前面补一个0的作用了吧嘿嘿),加[x]补:
00.01000001 + 11.0011 = 11.01110001
因为这已经是最后一步了,所以不用再右移了,所以最后结果就是1.01110001
这个结果是x*y的补码哦~
相关文章推荐
- 【计算机组成原理】定点乘法运算之补码一位乘法(Booth算法)
- 【计算机组成原理】定点乘法运算之原码两位乘法
- 【计算机组成原理】定点数的运算
- 计算机组成原理 机器数的移位运算
- 计算机组成原理---为什么计算机中要使用补码?
- 【连载】计算机组成原理 --- 第二章数据的表示和运算
- 计算机组成原理COP2000课设 原码一位乘
- 计算机组成原理实验:验证74LS181运算和逻辑功能
- 计算机组成原理实验二:四位补码运算器
- 计算机组成原理之原码、补码、反码和移码
- 定点乘法运算之原码一位乘法
- 计算机组成原理(原码、反码、补码)
- 另一个视角解读计算机编码-补码编码 分类: 计算机组成原理 2011-03-10 20:31 307人阅读 评论(0) 收藏
- 计算机组成原理 运算方法:定点数加减
- 计算机组成原理课程设计实验一:验证74LS181运算和逻辑功能
- 定点乘法运算之原码一位乘法
- 计算机组成原理---如何将真值转成补码,原码,移码,反码。
- 定点乘法运算之原码一位乘法
- 计算机组成原理--运算速度表示和进制表示
- 定点乘法运算之原码一位乘法