在做人工计算时,我们会使用借位的方式,比如21-5,我们会从20上借位,变成10+11-5=16。
但是计算机并不会借位,那么怎么让计算机在不通过借位的情况下完成减法运算呢?这里我们需要引入补数的概念。
21-5=21+(99-5)+1-100
=21+94+1-100
=116-100
=16
我们先介绍关于9的补数,设数a,则有a的补数A为(9-a)。
假设有关于(10^n)-1的补数,设数a,则有a的补数A为(10^n)-1-a;设数(a-b),则有(a-b)的补数:
(10^n)-1-(a-b)=(10^n)-1-a+b=A+b
注意(a-b)本身应当是其补数的补数,即(a-b)是(A+b)的补数。
自此,我们便将减法等效为加法,使用被减数的补数与减数相加。
即21-5=99-((99-21)+5)=16,这里有两次补数计算。