寻找二进制数的补码方法如下:
- 令x̄为x的逻辑补码。逻辑补码(也称为一的补码)是通过翻转数字中的所有位来形成的,将所有的1变为0,所有的0变为1。
- 令X = x̄ + 1。如果此加法溢出,则溢出位被丢弃。根据二进制补码的定义,X ≡ −x。
我见过一种快速的方法:
例如:
B = 00010110 D = 22
从左边第一个“1”开始翻转其后的所有位。
-B = 11101010 -D = -22
我不理解这种方法的证明。