老师参与

为什么1000000000000000是-2的15次方

陌花缓归 发表于2018年01月26日
<img src='https://edu-image.nosdn.127.net/62604F29BE8B5E2F2A87D2F2AC623879.jpg' /> 老师说通过逆运算得来的,我没算出来……
5 回复

    1楼

  • Misachu 发表于2018年01月26日
    0 | 3 | 举报
    <p>同问<br ></p><p>按照补码逆运算不就变正数了吗(如图一)</p><p><img src="//nos.netease.com/edu-image/db48e3f0-c4f0-478d-adf6-106f374f0732.jpg" style="width: 696px; height: 251px;" />后来查询了一下,<a href="https://www.cnblogs.com/youxin/archive/2012/07/03/2575504.html" target="_blank" >原码,补码,反码相互转化</a>中说:<p><code class="brush:html;toolbar:false" >按照求负数补码的逆过程,数值部分应是最低位减1,然后取反。但是对二进制数来说,先减1后取反和先取反后加1得到的结果是一样的,故仍可采用取反加1的方法</code>但仍然算不出(如图二)</p><p><img src="//nos.netease.com/edu-image/57228004-732a-415c-9c1c-25671750c557.jpg" style="width: 702px; height: 247px;" /></p><p><br /></p><p>求解</p></p>
    Misachu 发表于2018年01月26日
    • 陌花缓归 2018年01月26日
      0 | 举报
      <p>按你的说法,原码都溢出了,怎么是-2的15次方呢?</p>
      陌花缓归 发表于2018年01月26日
      0 | 举报
    • Misachu 2018年01月27日
      0 | 举报
      <p>刚查了一下</p><p>可以&nbsp; “取反-转10进制-相反数-减一 ” 来算(如图)</p><p><img src="//nos.netease.com/edu-image/b8139df0-0c5a-4082-b0f4-a8108c4afb4c.JPG" /></p>
      Misachu 发表于2018年01月27日
      0 | 举报
    • Misachu 2018年01月27日
      0 | 举报
      <p><span style="text-decoration: underline;" >具体怎么算还请老师解答</span><br ></p>
      Misachu 发表于2018年01月27日
      0 | 举报
    添加评论
  • 2楼

  • 陌花缓归 发表于2018年01月26日
    0 | 0 | 举报
    <p>按你的说法,原码都溢出了,怎么是-2的15次方呢?</p><p><br ></p>
    陌花缓归 发表于2018年01月26日
    添加评论
  • 3楼

  • C4班20171101032 发表于2018年02月11日
    0 | 0 | 举报
    因为有符号数中0000000000000000已经表示0了,正0负0一样不用重复表示,所以就用1000000000000000来表示-2的15次方。
    C4班20171101032 发表于2018年02月11日
    添加评论
  • 4楼

  • 赵玲玲 发表于2018年02月12日
    4 | 1 | 举报
    <p>这个问题开课以来一直没人问,其实是个很深入的问题。-2^15属于边界数,直接表示是无法计算的,因为-2^15的原码已经超过16位有符号数能表达的范围,这样的数是有特殊设定的。我们可以从比-2^15-1的表示来推算:</p><p>-2^15-1的原码是 1 111 1111 1111 1111,其中第一个1是符号位,其他为数值位。</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 反码是 1 000 0000 0000 0000</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;补码是 1 000 0000 0000 0001</p><p>那么-2^15-1与-2^15的关系如何呢?</p><p>-2^15-1的补码应该比-2^15大1,因为补码不改变数的大小关系,所以-2^15的补码应该是 1000 0000 0000 0000</p><p>(如果你想了解的更深入,可以看下验证过程。</p><p>我们知道,补码运算的减法运算是将减法转换成加一个负数,所以-2^15-1 - 1&nbsp;相当于&nbsp;-2^15-1 +(-1)</p><p>-1的补码是 1 111 1111 1111 1111</p><p>因此-2^15-1 + (-1)应该是 1000 0000 0000 0001 + 1 111 1111 1111 1111 = ·1 1 000 0000 0000 0000</p><p>可以看出运算时发生了溢出,最高位是第17位,被自动舍掉,因此变为 1 000 0000 0000 0000,就是-2^15对应的补码</p><p>)</p>
    赵玲玲 发表于2018年02月12日
    添加评论
  • 5楼

  • hit-1170200426-黄榜 发表于2018年02月24日
    0 | 0 | 举报
    太大溢出了
    hit-1170200426-黄榜 发表于2018年02月24日
    添加评论