x=0.1011 y=-0.1001 用补码一位乘法和补码两位乘法计算X*Y的结果有什么区别,具体怎么算?
1个回答
展开全部
没区别,两位乘法复杂点。具体两位乘法忘了。因为没必要纠结这个。要考试的话一般都是考存储和指令子类的,一位的话给你发个例题吧。
原码一位乘法中,符号位与数值位是分开进行计算的。运算结果的数值部分是乘数与被乘数数值位的乘积,符号是乘数与被乘数符号位的异或。原码一位乘法的每一次循环的操作是最低位为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
补码的话把原码变成补码算就行
原码一位乘法中,符号位与数值位是分开进行计算的。运算结果的数值部分是乘数与被乘数数值位的乘积,符号是乘数与被乘数符号位的异或。原码一位乘法的每一次循环的操作是最低位为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
补码的话把原码变成补码算就行
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询