二进制补码计算——有符号数的乘法

位数问题

a_width位的a,乘以B_width位的b,结果的位数是A_width + B_width。

定点小数问题

小数位数等于a的小数位数,加上b的小数位数之和。

补码相乘问题

  • 补码 * 补码 = 补码
  • 符号问题
    1、无符号数 * 无符号数 = 无符号数
    2、无符号数 * 有符号数 = 有符号数
    3、有符号数 * 无符号数 = 有符号数
    4、有符号数 * 有符号数 = 有符号数

无符号数 * 无符号数

在这里插入图片描述
另一个例子:
8*9

无符号数 * 有符号数

在这里插入图片描述
第四个加数——a先补最高位(0 0001),再连同最高位取反(1 1110)加一(1 1111),最后乘以b的符号位
结果的最高位是符号位

有符号数 * 无符号数

在这里插入图片描述
每个加数——都要补符号位
结果的最高位是符号位

有符号数 * 有符号数

在这里插入图片描述
前三个加数——都要补符号位
第四个加数——a先补符号位(1 1001),再连同符号位取反(0 0110)加一(0 0111),最后乘以b的符号位。
结果的最高位是符号位

参考资料:https://www.allaboutcircuits.com/technical-articles/multiplication-examples-using-the-fixed-point-representation/


版权声明:本文为qq_39873850原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。