如何找到N的补数?

时间:2010-02-20 18:40:06

标签: algorithm bit-manipulation

我想找到9的数字补码,但失败了。

我用1和2的补充方法尝试了它但没有效果。

找出N的数字补码的常用方法是什么?

2 个答案:

答案 0 :(得分:8)

n的补充使用:(简单的三步法)。

假设512 - 96 = ?(两个数字都以基数n给出,比如基数:14)。

  1. 查找n-1的{​​{1}}补码(要减去的第二个数字)。 96的{​​{1}}补码为13(因为A = 10,B = 11,C = 12,D = 13)。

  2. 通过将099添加到DDD - 096 = D47的补码值来查找n的补码。 1的补充是n - 1

  3. 使用14的补码(D47 + 1 = D48)添加第一个数字(512)并保留进位。 n(已移除D48)。

  4. CHECK:

    512 + D48 = 45A

答案 1 :(得分:7)

通过从9中减去每个数字,找到基数10中的9个补码。

所以45(= ... 000045)变为54(= ... 999954)。

Ten的补充只是9'的补充加1.所以... 000045变为(... 999954 + 1)= ... 999955。

有关Wikipedia的更多信息。