算术运算单元

来源:互联网 发布:金庸天才知乎 编辑:程序博客网 时间:2024/05/16 08:27
  【写在前面:希望我的朋友能看见。】
算术运算单元
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是一样的,已经验证过了。
 
下面我们再设计一个有两位二进制数运算的能力的算术运算单元。
如图,我们用三个一位的加法单元,和一个与单元就组成了一个二位的加法设备。加数有a,b,输出的结果c。这个也很容易验证(注意,ab是对称的。).
同样的道理,我们可以设计更多位的加法运算设备。通常我们说的16位数据处理器,或者32位数据处理器就是指这个了。
我们把8bit称为一个字节(byte).
 
如果我们有一个8位的加法单元。那么我们就可以计算任意两个字节的加数的和了。溢出部分暂时不考虑的话。
 
接下来我们再来看看乘法运算的性质。同样我们考虑二进制运算。事实上,对于二进制的乘法运算就是移位的操作。什么是移位呢?假如我们有这么一个字节的二进制数00110101,将这个数的每一位向左移动一位,最右边补0,左边就有一位溢出了。我们得到0110101.得到的数是原来数乘2的结果。也就是说,二进制乘法是移位操作。
 
在电子计算机中,我们将溢出部分都考虑进去后,就可以正确的处理简单的算术运算了。
原创粉丝点击