[ARM汇编]计算机原理与数制基础—1.1.3 二进制补码

打印 上一主题 下一主题

主题 527|帖子 527|积分 1581

在计算机中,为了表示有符号整数(即正数和负数),通常采用二进制补码表示法。二进制补码不仅可以表示负数,还能简化计算机的加法和减法运算。接下来,我们将介绍二进制补码的概念及其计算方法。
原码、反码和补码

在讨论补码之前,我们先了解一下原码和反码的概念。

  • 原码:直接将一个有符号整数转换为二进制数,最高位表示符号(0 代表正数,1 代表负数)。例如:+5 的原码为 00000101,-5 的原码为 10000101。
  • 反码:对于正数,其反码与原码相同;对于负数,除符号位外,其余位取反(0 变为 1,1 变为 0)。例如:+5 的反码为 00000101,-5 的反码为 11111010。
  • 补码:对于正数,其补码与原码相同;对于负数,其补码为反码加 1。例如:+5 的补码为 00000101,-5 的补码为 11111011。
求补码的方法


  • 求正数的补码:直接将正数转换为二进制数,最高位为 0。
  • 求负数的补码:先求其绝对值的二进制数,然后取反并加 1。
示例:
求 +5 和 -5 的补码:
  1. +5 的补码:00000101
  2. -5 的补码:先求 +5 的二进制数:00000101,然后取反:11111010,最后加 1:11111011
复制代码
补码的加法运算

使用补码表示法进行加法运算时,可以将有符号整数的加法统一为无符号整数的加法。计算过程中,如果最高位(符号位)有进位,则忽略该进位。
示例:
计算 +5 和 -3 的和:
  1. +5 的补码:00000101
  2. -3 的补码:11111101
  3. 相加:
  4.   00000101
  5. + 11111101
  6. ----------
  7. 100000010  (最高位有进位,忽略)
复制代码
结果为 00000010,转换为十进制数为 2。所以,+5 和 -3 的和为 2。
从补码还原到原码

为了从补码还原到原码,我们可以根据补码的符号位采取不同的方法:

  • 如果补码的符号位为 0(正数),则补码即为原码。
  • 如果补码的符号位为 1(负数),则将补码减 1,然后取反,即可得到原码。
示例:
从补码 11111011 还原到原码:
  1. 补码:11111011
  2. 减 1:11111010
  3. 取反:10000101
复制代码
原码为 10000101,表示负数 -5。
通过学习二进制补码的概念及其计算方法,我们能够更好地理解计算机中有符号整数的表示方式和加减法运算。在后续学习 ARM 汇编的过程中,我们会频繁地使用到补码表示法,因此熟练掌握补码的计算方法至关重要。
推荐阅读:
https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA
https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

缠丝猫

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表