两个数字的补数及其负数差异?

时间:2014-04-06 15:06:11

标签: binary twos-complement

所以我被告知,两个补码通常用来找到一个数字的补码而我只用它来补充正数(即positve - >负转换)但是我刚才得到一个例子这本书问我以下内容:

在8位二进制二进制补码中表达23,-23和-9 形式

现在是什么意思? 23表示二进制为-23,-23表示23?

在那里混淆了

2 个答案:

答案 0 :(得分:1)

2的补码中的正数表示与无符号表示相同。当负面表现发挥作用时,事情开始发生变化。因此,通常,对于给定的w比特,可以用2的补码表示的数字是-2 ^(w-1)-1到2 ^(w-1),其中w比特是有符号比特。因此,由于您有8位,您可以表示-128到127之间的数字。第8位将是有符号位,0表示正数,1表示负数。 对于二进制2的补码N中的数字的任何正表示,负对应-N非常容易找到,只是反转位,并加1。例: 7 in 2的补码是0111,反转这些位给出:1000,加1给出1001,这是2的补码中的-7!希望这有帮助!

答案 1 :(得分:1)

2&#39的补码用于表示负数,反过来可用于进行减法。

23 = 00010111b

要获得-23(23的2'),翻转所有位,并加1:

 11101000b + 1
=11101001b (-23)

-9是9的2的补码.9是

00001001b

所以-9是

11110111b (Flipping and add +1)

另见here