补码乘法运算
视频链接地址:
https://www.bilibili.com/video/BV1BE411D7ii?from=search&seid=6420326887479343502
前言
在本篇中,你将掌握
- 补码一位乘法
补码一位乘法
正数的补码 = 原码
负数的补码 = 原码数值位取反 + 1
1.1 与原码区别
补码的乘法运算与原码区别如上
1.2 硬件
与原码运算的硬件方式不同,在ACC\MQ\X中直接存储带有符号位的乘数,且MQ中多存储一位辅助位,初始为0;X和ACC也都使用用双符号位代表正负
1.3 手算模拟
记住计算规则:
- 辅助位 y 5 y_5 y5 - MQ最低位 y 4 y_4 y4 = 1时, A C C + [ x ] 补 ACC +[x]_补 ACC+[x]补
- 辅助位 y 5 y_5 y5 - MQ最低位 y 4 y_4 y4 = 0时, A C C + 0 ACC +0 ACC+0
- 辅助位 y 5 y_5 y5 - MQ最低位 y 4 y_4 y4 = -1时, A C C + [ − x ] 补 ACC +[-x]_补 ACC+[−x]补
其中 [ − x ] 补 = [ x ] 补 的 符 号 位 和 数 值 位 取 反 , 数 值 位 并 加 1 [-x]_补 = [x]_补的符号位和数值位取反,数值位并加1 [−x]补=[x]补的符号位和数值位取反,数值位并加1 ,在计算n次后最后还要多一次加法,此时的MQ最低位 y 4 y_4 y4就是乘数的符号位。
最终计算结果为最后一次加法的结果接上当前乘数的前n位。
2 小结
本篇重点:在原码乘法的基础上注意补码乘法的区别,能够手动推演补码乘法的过程即可。