有没有写一下过程呀 自己算怎么都算不对.
转换成了二进制 补码 算了也都和答案不对
1条回答 默认 最新
- 小小陈11 2023-05-22 09:12关注
首先将十进制数转换为二进制的机器数:
*=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.01y=-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)。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用