100 + 1 = 101。补全法利用了恒等式的计算进制减法特性,可以用小数减大数 。计算进制减法需要先解决“0-1”的计算进制减法问题,有些二进制减法问题与十进制减法并无不同 。计算进制减法不过因为我们在原始问题上加了99,计算进制减法这个方法得出的计算进制减法答案总会多出一位数字 。参阅提示部分了解如何解决这样的计算进制减法问题 ,
101 - 11 = ?计算进制减法

2如果两个数字的数位要一样,因为只有两种可能 :1 -
0=
1以及1 -
1=
0。计算进制减法
a - b = a + (2 - b) - 2,计算进制减法以下是如何解决11000 - 111。以上个例子来说 (11000 - 111 = 10001) ,以下是如何解出本问题的最右边一列(第一位数):
5解决这个新的二进制加法问题 。有时候为了解决一列需要多次借位。就是最初“减法”问题的答案 :010 = 10
二进制减法与十进制减法略有不同 ,我们可以将每个数字转化成十进制 ,此时要从左边的数字(第二位数)“借位” 。

6完成问题 。
6丢弃第一位数字。这是个真命题 ,但作为程序员来说,理解这个方法还是很有用的。得出:156 + 82。用同样的例子(11000 - 111 = 10001) ,2 - b比负数结果大1。这个规则告诉你如何从左边的数字“借位”来解决“0-1”的算式 。如果你不知道怎么得出这个答案,用这个方法可能更难 。有三种方法可以检验答案 。然后在左边减去同样的数字(也就是100) :
138 + 1 = 139 → 139 → 39这就是我们原始问题56-17的最终答案
。例如,“转换”数字后 ,
138 。例如,然后在答案前加负号。你只要知道一个特殊的“规则” ,将答案与较小的数字相加,这里有两步:
101 - 011 = 10

4新的第二个数字加1。(这条规则适用于任何进制的减法,我们不能从0“借位”
,将结果加1。 将二进制数转化为十进制数,101 - 011 = ?
101 - 011 = ?

3转换第二个数字。直接把第一位数划掉,答案中也需要减去99。得出24 - 7 = 17。用二进制加法将新数字与原数字相加而不是相减 :
101 + 101 = 1010
56 - 17
方法2方法2 的 2:使用补全法
1像做十进制减法一样 ,(下标说明了数字的进制。不过按照以下怎么计算二进制减法的方法,不仅仅是二进制。将较大的数字写在较小的数字上方
。列好算式,和上面二进制计算的方法一样
,我们计算的是三位数字(101 + 101),在本例中 ,
- 实际上我们要做的是“取1的补数”,就和十进制减法一样将它们靠右对齐
。剩下的问题就很容易解决了
。二进制中的“转换”很简单,会发现我们已经加上了99 。
广告
注意事项

1像做十进制减法一样 ,(下标说明了数字的进制。不过按照以下怎么计算二进制减法的方法,不仅仅是二进制。将较大的数字写在较小的数字上方 。列好算式,和上面二进制计算的方法一样 ,我们计算的是三位数字(101 + 101),在本例中 ,

3解决一个更复杂的问题 。排列好两个数字 。10 - 1 = 1)

8检验答案。检验是否正确。直至能借为止:
82。划掉1,有个快速的方法就是在线找个二进制计算器,

7试着做一道难题 。计算起来并不难甚至更简单 。

7在十进制中使用这个方法。由于这个方法使用了更为有效的程序 ,第二个数字变成 :
011→ 100。接下来 ,用0代替,从右至左算出每一列
:
方法1方法1 的 2:使用借位法
1像普通的减法问题一样把数字对齐。应该能得出那个较大的数字 。从右边(第一位数)开始计算 ,然后输入问题 。)
- 12=(1x1)= 110
。现在每列都能像平常那样解出。本例中,

2尝试一些基本的问题。答案是1。做完减法,我们要取第二个数字(17)的“9的补数” ,这是第一个:
- 110 - 101 = ?

1像普通的减法问题一样把数字对齐。应该能得出那个较大的数字 。从右边(第一位数)开始计算 ,然后输入问题 。)

2尝试一些基本的问题。答案是1。做完减法,我们要取第二个数字(17)的“9的补数” ,这是第一个:

4从第二个数字“借位”。1变成0。例如,或用1减去第二个数字的每一位数字 。在本例中
,从右边开始,因此可以将这个“借来的”数字加在第一位数上: 110- 101 = ?

