这个你上了大学,学了计算机电路就知道了。计算器内部主要是通过异或门来实现加法运算的。

逻辑无非就这几种:非门(NOT)、与门(AND)、或门(OR)、异或门(XOR),其中非门还可以和另外三个进行组合。加法主要是靠异或门实现的。

计算机内部为了计算方便,一律用二进制的形式表示数据,二进制是“逢二进一”的,只有 0 和 1 两个数字。逻辑上一般把 0 称为逻辑假,把 1 称为逻辑真。计算机内部的加法也只有四条规则:

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 10(进位位 C 为 1,结果位为 0)

而这个规则正是使用异或门实现的。异或门(A XOR B)是指:只有 A 和 B 的状态为一真一假时,才返回真。若 A 和 B 同时为真或者同时为假,则返回假。那么你看看,上面的四条加法规则,是不是完全满足异或门的定义

对于进位位,我们都学过加法算式的竖式吧。类似于加法竖式,在进位位为 1 的数位上,是要再加上进位位的数的。计算机中的【加】,其实是逻辑异或。那么问题来了,原先的两个数,加上进位位,一共三个数,怎么进行异或运算(A XOR B XOR C)

我们知道,数学上的四则运算是有优先级的,先乘除后加减。其实逻辑多项式运算上也同样有优先级,一般认为 NOT > AND > OR > XOR。对于同级运算,其实可以使用结合律,即:A XOR B XOR C = ( A XOR B ) XOR C = A XOR ( B XOR C )。这样是不是就可以理解了

而且,多试几次,你会发现一个规律:任意 n 个(n ≥ 2)逻辑量进行异或运算,若其中有奇数个逻辑真,则最终结果为逻辑真若其中有偶数个逻辑真,则最终结果为逻辑假。

这样,一个简单的加法器就出来了。我们可以试试(假设是一个八位二进制的加法器),比如 23 + 44 = ?

23 的二进制为 00010111

44 的二进制为 00101100

运算的结果是二进制的 01000011,换算成十进制是 67,完全正确。

计算器的加法原理就这么多,其余的减法、乘法、除法什么的也是在加法器的原理上进行改装的,在这里就不说太多了。