0 补码的意义(前置知识)
1 补码转换原码规则(前置知识)
如果补码的最高位(符号位)为1,说明这个补码是负数。
操作如下:
数值位全部取反 ,然后将所有位加1,得到原码。
2 补码与真值的转换公式
1式为补码符号位为0时,补码代表的真值表达式
2式为补码符号位为1时,补码代表的真值表达式
将符号位An代入表达式,得出上式通式
由该式可知
任何被乘数与正数相乘 其部分积即为该被乘数每一位与乘数其中一位相与
当乘数为负数时,则只需考虑两个负数相乘
由权值表达式可知 其部分积在上述情况下 还需多加一位部分积,该部分积为被乘数每一位取反;注意移位
但是通常情况下我们并不会考虑乘数的正负 乘数为正时也满足该情况即多一位部分积为0;
关于部分积相加的问题
因为部分积位数并不统一 所以我们目前要对部分积位数进行统一所以就需要符号位拓展;
符号位拓展的原理:拓展的基本规则就是不能影响补码的真值,所以我们先将补码转换成原码,将符号位提前,再进行数值位取反加一,得到位数统一的部分积,实际效果就为符号位拓展至部分积满足统一位数;