减法的基本运算过程:
在求253-176的过程中,个位由于3小于6,需要从十位借一位,之后用13-6得到7,十位4-7,需要从百位借位,14-7得到7,最后的结果为77
避免借位的减法:
如果我们用十进制中的最大数来减,这样就可以不用借位了,上一步的求解过程就可以分解为如下:
253+(999-176)-999
1076-999
这时,发现还是需要借位,那如果能够减去十进制中的最小数,就不需要借位了
253+(999-176)+1-999-1
即为253+(999-176)+1-1000=1077-1000
值为负数的减法:
176-253,可以翻转之后值取反,为了统一,我们还是按照上面的思路来
176+(999-253)-999
922-999
如果按照上面来走,即为922-999+1就不对了,通过观察,我们发现999-922刚好不用借位,只需要值求反即可
二进制的减法:
11111101-10110000
同理,我们求减数的1的补码(十进制中,用9减去,即为9的补码),减数的1的补码为11111111-10110000位01001111,可以看到,二进制的补码即为1变0,0变1
因此,二进制的补码也可以叫做反码
之后,我们被减数+反码,即11111101+01001111=101001100
之后,结果加1,在减去(11111111+1),(101001100+1)-100000000=01001101
总过程如下:11111101+(11111111-10110000)+1-(11111111+1)
八位二进制减法:
本例只适用于值为正数的结果
如果被减数大于减数,那么结果肯定大于0,如果在加一个全为1的八位二进制后,必然会多出一个第九位,而刚好我们最后要减去一个第九位为1的其他全为0的二进制
这样,我们只需要舍弃第九位即可,因为我们是八进制计算器,因此第九位溢出被去掉,结果刚好为减法的结果
因此,八位二进制减法简化为如下步骤:
1.减数取反
2.被减数+减数的反码
3.结果再加1