📅  最后修改于: 2020-12-30 04:28:55             🧑  作者: Mango
就像1的补码一样,2的补码也用于表示有符号的二进制数。为了找到二进制数的2的补码,我们将首先找到二进制数的1的补码,然后将1加到二进制数的最低有效位。
例如,如果我们要计算数字1011001的2的补数,则首先,找到数字0的110的补数,然后将1加到LSB。因此,通过将1加到LSB,数字将为(0100110)+ 1 = 0100111。我们还可以使用“或”,“与”和“非”门来创建逻辑电路。查找5位二进制数的2的补码的逻辑电路如下:
范例1:110100
为了找到给定数字的2的补码,请将所有0都更改为1,将所有1都更改为0。因此,数字110100的1的补码为001011。现在,向该数字的LSB加1,即(001011)+ 1 = 001100 。
范例2:100110
为了找到给定数字的1的补码,请将所有0都更改为1,将所有1都更改为0。因此,数字100110的1的补码为011001。现在将这个数字的LSB加1,即(011001)+ 1 = 011010 。
Binary Number | 1’s Complement | 2’s complement |
---|---|---|
0000 | 1111 | 0000 |
0001 | 1110 | 1111 |
0010 | 1101 | 1110 |
0011 | 1100 | 1101 |
0100 | 1011 | 1100 |
0101 | 1010 | 1011 |
0110 | 1001 | 1010 |
0111 | 1000 | 1001 |
1000 | 0111 | 1000 |
1001 | 0110 | 0111 |
1010 | 0101 | 0110 |
1011 | 0100 | 0101 |
1100 | 0011 | 0100 |
1101 | 0010 | 0011 |
1110 | 0001 | 0010 |
1111 | 0000 | 0001 |
2的补码用于表示有符号数并执行算术运算(例如减法,加法等)。正数仅表示为幅度形式。因此,代表正数没有任何关系。但是,如果我们代表负数,那么我们必须选择1的补码或2的补码技术。 1的补码是一种歧义技术,2的补码是一种明确技术。让我们看一个示例,以了解如何计算带符号的二进制数表示形式中的2的补码。
示例1:+6和-6
数字+6与二进制数相同。为了表示两个数字,请使用5位寄存器。
因此,+ 6在5位寄存器中表示为0 0110。
-6通过以下方式在5位寄存器中表示:
示例2:+120和-120
数字+120与二进制数相同。为了表示两个数字,请使用8位寄存器。
因此,+ 120在8位寄存器中表示为0 1111000。
-120在8位寄存器中的表示方式如下: