二进制转补码,计算机组成原理定点运算

img

有没有写一下过程呀 自己算怎么都算不对.
转换成了二进制 补码 算了也都和答案不对

首先将十进制数转换为二进制的机器数:

*=25/32的分子和分母都可以写成2的幂次方的形式,即25=2^4+2^3+2^0,32=2^5,因此,25/32可以表示为:

25/32 = 12^-1 + 12^-2 + 02^-3 + 02^-4 + 1*2^-5

将其乘以2的8次方,得到:

= (12^-1 + 12^-2 + 02^-3 + 02^-4 + 12^-5) * 2^8
= 100110.01

y=-21/64同样可以化为二进制机器数:

-21/64 = -12^-1 - 12^-4 - 1*2^-6

将其乘以2的8次方,得到:

y = -101010.01

接下来进行加减运算,先计算[x+y]补:

x+y = 100110.01 - 101010.01
= -000100.00

将结果取反加1得到[~(000100.00)+1]补,即111100.00补。由于符号位为1,所以[111100.00]补表示的是一个负数。

然后计算[x-y]补:

x-y = 100110.01 - (-101010.01)
= 001000.10

将结果取反加1得到[~(001000.10)+1]补,即111110.10补。由于符号位为1,所以[111110.10]补表示的是一个负数。

最后确定标志位。由于机器数字长8位,只有当加减运算结果在-128到127之间时才不会发生溢出。因此:

对于[x+y]补,溢出标志V=0,进位标志C=1(最高位相加产生了进位),零标志z=0(结果不等于0)。

对于[x-y]补,溢出标志V=0,进位标志C=0(最高位没有进位),零标志z=0(结果不等于0)。