2 的补码

2025年3月17日 | 阅读 3 分钟

就像 1 的补码一样,2 的补码也用于表示有符号二进制数。为了找到二进制数的 2 的补码,我们将首先找到二进制数的 1 的补码,然后将其加 1 到其最低有效位。

例如,如果我们想计算数字 1011001 的 2 的补码,首先,我们找到该数字的 1 的补码,即 0100110,然后将 1 加到 LSB。因此,将 1 加到 LSB 后,该数字将变为 (0100110)+1=0100111。我们还可以使用 OR、AND 和 NOT 门创建逻辑电路。用于查找 5 位二进制数 2 的补码的逻辑电路如下所示

2's complement

例 1:110100

为了找到给定数字的 2 的补码,将所有 0 变为 1,将所有 1 变为 0。因此数字 110100 的 1 的补码是 001011。现在将 1 加到该数字的 LSB,即 (001011)+1=001100。

例 2:100110

为了找到给定数字的 1 的补码,将所有 0 变为 1,将所有 1 变为 0。因此,数字 100110 的 1 的补码是 011001。现在将 1 加到该数字的 LSB,即 (011001)+1=011010。

2 的补码表

二进制数1's 补码2 的补码
000011110000
000111101111
001011011110
001111001101
010010111100
010110101011
011010011010
011110001001
100001111000
100101100111
101001010110
101101000101
110000110100
110100100011
111000010010
111100000001

2 的补码的用途

2 的补码用于表示有符号数字并执行算术运算,例如减法、加法等。正数直接表示为量级形式。因此,表示正数无需任何操作。但是,如果我们表示负数,那么我们必须选择 1 的补码或 2 的补码技术。1 的补码是一种模棱两可的技术,而 2 的补码是一种明确的技术。让我们看一个例子来理解如何在有符号二进制数表示中计算 2 的补码。

例 1:+6 和 -6

数字 +6 与二进制数相同。为了表示这两个数字,使用 5 位寄存器。

因此 +6 在 5 位寄存器中表示为 0 0110。

-6 在 5 位寄存器中的表示如下

  1. +6=0 0110
  2. 现在,找到数字 0 0110 的 1 的补码,即 1 1001。
  3. 现在,将其 LSB 加 1。当我们将 1 加到 11001 的 LSB 时,新生成的数字是 11010。这里,符号位为 1,这意味着该数字是负数。
2's complement

例 2:+120 和 -120

数字 +120 与二进制数相同。为了表示这两个数字,使用 8 位寄存器。

因此,+120 在 8 位寄存器中表示为 0 1111000。

-120 在 8 位寄存器中的表示如下

  1. +120=0 1111000
  2. 现在,找到数字 0 1111000 的 1 的补码,即 1 0000111。这里,MSB 表示该数字是负数。
  3. 现在,将其 LSB 加 1。当我们将 1 加到 1 0000111 的 LSB 时,新生成的数字是 1 0001000。这里,符号位为 1,这意味着该数字是负数。

下一个主题有符号