Einstein777 2023-05-21 22:38 采纳率: 77.8%
浏览 25
已结题

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

img

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

  • 写回答

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.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)。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月30日
  • 已采纳回答 5月22日
  • 创建了问题 5月21日