无处借用如何进行二进制减法?

How to subtract binary when there is no where to borrow from?

假设我想做下一个减法动作:

00000000 - 00000001

所以当我尝试减去 0-1 时,我需要从左边的列中借用,但是如果。就像在这种情况下。接下来的所有列都是零吗? 它只是一个进位标志异常吗?

谢谢。

或者现代硬件你得到进位标志和二进制补码结果1111 1111

这就是为什么 1111 1111 有时被称为 -1

几乎就像在现代中央银行中,不需要有钱才能成为 lent/borrowed,也不需要存在更高的数字来完成任何减法。相反,它是根据需要生成的。

一种解释是,根据定义,进位是从 0 中减去 1 或从较小的数字中减去任何数字的结果。 (And/or 将 1 加到 1——正如其他答案和评论中所解释的那样,减法最常执行的操作是将减法器的二进制补码加到减数上。在数学上它们是等价的)

另一种解释是,计算机算术是以 2^8(或 2^N)为模执行的 "makes the paradoxical result possible",但这并不仅仅解释了进位位。