计算机科学把小数点位置固定的数字,叫做定点数。相对的,把小数点位置不固定的数,叫做浮点数。
因为整数做加、减、乘、除运算时,不论参与运算的数字还是运算结果,小数点都在最右边,因此大多数情况下,定点数指的是整数。
计算机定点运算的:加法、减法、乘法都是以加法器为基础的,且加法器逻辑较简单,所以这里拿出来重点讲一下。关于除法器,我当年《组成原理》没学好,所以印象不深刻。
二进制加法运算,改造为逻辑运算
前面我们讲过二进制的加法:
我们可以把上述式子改造成如下样子,等号左边有三项,分别是:进位位:;加数
;另一个加数
。等号右边是两项:进位位
,和加法结果
:
分析上面的式子,我可以得出如下表格:
输入项 | 输出项 | |||
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 0 | 1 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 1 |
于是我们可以得出结论:
当输入项中有奇数个 1 时, 为1,写成算式就是:
==(
&
&
)|(
&
&
)|(
&
&
)|(
&
&
)
当输入项中,任何两个为 1 时,为 1,写成算式就是:
== (
&
) | (
&
) | (
&
)
等将来你学到《离散数学》时,就会学到:
^
== (
& (
)) | ((
) &
)
于是 就可以用异或来表示:
==
^
^
二进制加法的逻辑运算改造为硬件电路
把上面的式子中,与运算替换成与门,或运算替换成或门,非运算替换成非门,就可以得到一个可以计算一位二进制加法的全加器,把多个全加器级联起来,就可以实现多位二进制加法,如下图,是一个四位二进制加法的全加器: