拿拿林 2021-07-28 23:31 采纳率: 95.7%
浏览 43
已结题

关于yuan码反码补码的问题

我不知道yuan码,补码,反码之间的换算应该怎么搞,目前看到的第一个关系是 补码=反码+1,但是接下来的例题又不是了
img

img
我觉得例题的补码到反码,不就应该是减1,是1111…110吗

  • 写回答

2条回答 默认 最新

  • 八云黧 2021-07-29 00:59
    关注

    两个反码不是一个反码,第一个PPT的反码是原码的反码,第二个PPT的反码是补码的反码
    原理可以分析一下:不考虑符号位,一个x位二进制数a,和它全部取反的二进制数~a有什么关系?显然a+~a=2^(x+1)-1
    即~a=2^(x+1)-1-a,将一个数取反就会得到这个结果。
    考虑一个x位原码表示的数c,它的补码的值c'=~c+1=2^(x+1)-1-c+1=2^(x+1)-c。
    下面分析两种情况:

    1. 直观上的想法,取补码码的逆运算:对补码先减一再取反
      c''=~(c'-1)=~(2^(x+1)-c-1)=2^(x+1)-1-(2^(x+1)-c-1)=2^(x+1)-1-2^(x+1+c+1)=c
    2. 对补码再求补,是否能得到原码
      (c')'=~(c')+1=2^(x+1)-1-c'+1=2^(x+1)-c'=2^(x+1)-2^(x+1)+c=c

    所以第二张PPT是对补码求补依次得到原码,给出的反码是补码对应的反码

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    拿拿林 2021-07-29 02:24

    听懂了一半 就是我现在对“x位”,“~a”,“^”,“'”,不太懂

    回复
    八云黧 回复 拿拿林 2021-07-29 02:29

    只是一个记号罢了。
    比如说一个二进制数10010,它就是5位的,用x位只是证明对任意位的二进制数结论都成立
    ~是取反的符号,比如a是10100,~a就是01011。
    ^是数学中的幂运算,比如3^4就是3的4次方也就是333*3=81
    '就真的只是一个记号了,我这里用c'表示一个数c的补码值

    回复
    拿拿林 回复 八云黧 2021-07-29 03:00

    太感谢了 我懂了

    回复
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 8月5日
  • 已采纳回答 7月29日
  • 创建了问题 7月28日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部