为什么使用补码?

程序员素养 专栏收录该内容
23 篇文章 1 订阅

补码(Two’s complement)是什么

大多数计算机使用补码来表示负数。这种方法在执行数学运算(如加法和减法)时更有效。
位的最左边叫最高有效位 (the most significant bit or MSB) : 用于指示正​​数或负数,其余位用于存储数字的实际大小。正数总是以 0 开头。

四位正数的补码数为 0000 = 0、0001 = 1~ 0111 = 7。最小的正数是最小的二进制能表示的值。

负数总是以 1 开头。最小的负数是最大的二进制值。1111 是 -1,1110 是 -2,1101 是 -3,直到 1000 代表 -8。

对负数求二进制补码的一般过程

  1. 找到要表示的负数的正二进制值。
  2. 在数字前面加一个 0,表示它是正数。
  3. 取反
  4. 将此数字加 1。

使用二进制补码求 -1

1 = 001
前面加0变成0001
取反 变成1110
加 1 = 1111 ( -8 + 4 + 2 + 1 = -1 )

或者:
2^8 - 1 = 10000 - 1 = 1111

使用二进制补码求 -4

4 = 100
前面加0变成0100
“倒置”变成1011
加 1 = 1100 ( -8 + 4 = -4 )

或者:
2^4 - 4 = 10000 - 0100 = 1100

为什么使用补码

因为使用补码,可以把减法改成加法。实际电路中,只有加法器。

在这里插入图片描述
减一个数,直接加他的补码

拓展阅读

补码
为什么

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值