【写在前面:希望我的朋友能看见。】
算术运算单元
2007
年7月6日
16:42
电子设备能够完成数字逻辑的运算。假如我们用低电平标识逻辑的假,用高电平表示逻辑的真。我们就可以设计这样的电子设备,给它三个接线脚,其中两个接线脚用来接输入电平,一个接线脚用来接输出电平。这个电子设备能够对输入的电平给出它们的逻辑与运算的结果,并输出到输出脚上。同样也可以制造其他的有两个输入一个输出(二元)的逻辑运算设备。将两个这样的二元设备可以组合成一个三元设备。当然也可以有一元设备,如取反逻辑设备。把这些逻辑设备的输入输出脚可以组合成更复杂的逻辑运算。
如果我们规定或者就认为,逻辑真就是
1
,逻辑假就是
0
。那么我们就可以设计出算术运算单元了。如我们用逻辑异或设备,就可以设计出二进制加法运算单元。很容易验证有:
1+1 = 0;
1+0 = 1;
0+1 = 1;
0+0 = 0;
我们将这样的一个接线脚成为一个位
(bit,
比特
).
这里需要注意一个概念,加数是对称的。所谓对称的就是将两个加数交换位置后结果是不会有任何变化的。这和加法的交换律是完全吻合的。这样做验证的时候就可以少验证一个
0+1=1
了,因为交换加数后和
1+0=1
是一样的,已经验证过了。
下面我们再设计一个有两位二进制数运算的能力的算术运算单元。
![](https://p-blog.csdn.net/images/p_blog_csdn_net/turnerbook/untitled4.bmp)
如图,我们用三个一位的加法单元,和一个与单元就组成了一个二位的加法设备。加数有
a,b
,输出的结果
c
。这个也很容易验证
(
注意,
a
和
b
是对称的。
).
同样的道理,我们可以设计更多位的加法运算设备。通常我们说的
16
位数据处理器,或者
32
位数据处理器就是指这个了。
我们把
8bit
称为一个字节
(byte).
如果我们有一个
8
位的加法单元。那么我们就可以计算任意两个字节的加数的和了。溢出部分暂时不考虑的话。
接下来我们再来看看乘法运算的性质。同样我们考虑二进制运算。事实上,对于二进制的乘法运算就是移位的操作。什么是移位呢?假如我们有这么一个字节的二进制数
00110101,
将这个数的每一位向左移动一位,最右边补
0
,左边就有一位溢出了。我们得到
0110101.
得到的数是原来数乘
2
的结果。也就是说,二进制乘法是移位操作。
在电子计算机中,我们将溢出部分都考虑进去后,就可以正确的处理简单的算术运算了。