最近在复习计算机组成原理,当时上课时就被这里折磨的够呛,现在记录一下详细的思路省的后面再忘记
原码一位乘法
运算时符号位和运算位分开求,符号位取两位
乘积的符号由两个数的符号位异或得出
步骤
- 写出两个数x和y的原码,选择乘数y,被乘数x
- 若y的右边第一位是1,则x1=0+x
若y的右边第一位是0,则x1=0+0 - 将x1右移一位,记移除的数值为k
- 重复步骤2~3,将y的右边每个数字都用完,结束相加
- 最后一步也要右移,右移完的数和所有的k值连接起来就是最终结果
补码一位乘法
符号位参与运算,被乘数符号位取两位,乘数符号位取一位
步骤
- 写出两个数x和y的补码,被乘数x,乘数y末尾加个0
- 从后往前,计算y的后一位减去前一位的值
- 若为0,则部分积加0,右移一位,记移除的数值为k
若为1,则部分积加x的补码,右移一位
若为-1,则部分积加-x的补码,右移一位 - 最后一步不右移,把部分积和所有的k值(从下到上)连接起来就是最终结果