如何从一个补码转换为两个补码

时间:2014-10-30 16:29:01

标签: twos-complement

我对如何从一个补码转换为两个补码感到困惑。 假设我们在一个补码中有10101101。如何将其转换为二进制补码?

由于

1 个答案:

答案 0 :(得分:7)

看看定义:

补充意味着否定值的位是原始位中所有位的补码(反转)。

N比特数的二进制被定义为从2 ^ N减去原始N比特数的结果。此操作的效果与原始数字的结果相同,即取一个补码并加1。

在这种情况下,如果10101101是唯一补码,只需添加一个即可获得两个补码,即10101110。或者,做得很好:

  1. 补丁= 10101101
  2. 原始数字= 01010010(根据一个补码的每个定义反转位数)
  3. 两个补码= 2^8 - 01010010 = 100000000 - 01010010 = 10101110