x=0.1011 y=-0.1001 用补码一位乘法和补码两位乘法计算X*Y的结果有什么区别,具体怎么算?

如题所述

没区别,两位乘法复杂点。具体两位乘法忘了。因为没必要纠结这个。要考试的话一般都是考存储和指令子类的,一位的话给你发个例题吧。
原码一位乘法中,符号位与数值位是分开进行计算的。运算结果的数值部分是乘数与被乘数数值位的乘积,符号是乘数与被乘数符号位的异或。原码一位乘法的每一次循环的操作是最低位为1,加被乘数的绝对值后右移1位;最低位为0,加0后右移1位。几位乘法就循环几次。

「答案」:

x原=00011,y原=10101,|x|=0011, |y|=0101结果的符号位1 0=1

循环 步骤 乘积(R0 R1)

0 初始值 0000 0101

1 加0011 0011 0101

右移1位 0001 1010

2 加0 0001 1010

右移1位 0000 1101

3 加0011 0011 1101

右移1位 0001 1110

4 加0 0001 1110

右移1位 0000 1111

所以结果为-00001111
补码的话把原码变成补码算就行
温馨提示:答案为网友推荐,仅供参考
相似回答