二进制补码 - 方法分析

Two's Compliment - Method Analysis

我有一个关于双恭维的方法的问题:这两种方法哪个是正确的,我如何反驳不正确的?

开始示例任务:将负二进制数 -20 转换为二进制补码负二进制数(以 8 位二进制形式保存)。

方法一:

  1. 求数的正二进制值,
  2. 翻转二进制值的位
  3. 翻转后的数字加一

示例:对于 -20.. 20的二进制是00010100,翻转后的位是11101011,翻转后的位加1就是11101100。 所以,11101100 是 -20 的补码。

方法二:

  1. 正值减一
  2. 求出该十进制数的正二进制数
  3. 翻转二进制数的位

示例:对于 -20.. 20 是正十进制数,因此 20-1 = 19。19 在二进制中是 00010011。翻转位:11101100。11101100 在二进制补码中是 -20。

两种方法都有效。

给定 n 位数 A=an-1,an-2...a0,C2 是满足 A+C2(A)=2^n

的数

如果/A是A的位补,很容易证明A+/A=11..11=2^n-1 => C2=/A+1证明了第一种方法

第二种方法规定 C2(A)=/(A-1)。如果我们计算 /(A-1) + (A-1)=11...11=2^n-1, 可以看出 /(A-1)+A=2^n 证明第二种方法.