m0_67761994 2024-05-29 01:24 采纳率: 87.1%
浏览 3
已结题

这是什么意思……怎么得来的这个,-13+13是8421转化来的吗

img


这是什么意思……怎么得来的这个,-13+13是8421转化来的吗,那第一个数字是符号位 怎么还有一个0

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-29 01:24
    关注

    引自免费微信小程序:皆我百晓生

    看起来你正在学习计算机科学中的二进制表示法,特别是关于补码(Two's Complement)的概念。补码是用来在二进制系统中表示负数的一种方式。这里是一个详细的解释:

    补码的基本规则是,一个正数的补码就是它的原码(即直接按位转换为二进制),而一个负数的补码则是取反加一得到的。

    例如,对于十进制的13,其二进制表示为00001101,这是一个正数,所以补码也是00001101

    对于十进制的-13,其二进制表示可以通过将13的补码取反再加一得到。13的补码是00001101,取反得到11110010,然后加一得到11110011,这就是-13的补码。

    在你提供的例子中,他们进行了一些基于补码的计算:

    1. 对于13 - 15的计算,首先将每个数转换成补码:

      • (13) 补 = 00001101
      • (-15) 补 = 11110011

      然后执行减法,实际上是做加法 -15 + (-13),因为减去一个负数等同于加上它的相反数。

      00001101 (13)补
      + 11110011 (-15)补
      ________________
      11110000 (结果)
      

      因为结果超过了8位,所以要进行模2^8(也就是128)的舍入。在这个例子中,最高位的溢出不会影响其他位的结果,所以我们只需保留低8位,得到 -2 的补码 11110000

    2. 接下来是 -13 - 15 的计算,同样的步骤:

      • (13) 补 = 00001101
      • (-15) 补 = 11110011

      加上 -13 的补码,得到 -28 的补码 11100100

    3. 在最后一部分,他们展示了几个二进制补码的加减操作,并给出了答案。例如:

      • 13 + 10 变成 001101 + 001010,结果是 010111,即十进制的23。
      • -13 - 10 变成 110011 + 110110,结果是 111101,即十进制的-3。
      • -23 + 10 变成 101001 + 001010,结果是 110011,即十进制的-3。
      • -13 - 10 再次出现,结果与之前相同。

    这些计算都是通过将每个数转换成补码,然后执行相应的二进制加法或减法得出的。如果你对某个具体步骤有疑问,可以告诉我,我会进一步解释。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月18日
  • 已采纳回答 6月10日
  • 创建了问题 5月29日

悬赏问题

  • ¥15 单纯型python实现编译报错
  • ¥15 c++2013读写oracle
  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音