逻辑门
主要的逻辑门包括与门(AND)、或门(OR)、非门(NOT)、异或门(XOR)、与非门(NAND)、或非门(NOR)等。
布尔代数
布尔代数的基本运算法则如下:

多路复用器
多路复用器(Multiplexer)可以根据选择信号从多个输入中选择一个输出。
ALU
算术逻辑单元(Arithmetic Logic Unit)是计算机中的一个重要组件,负责执行算术和逻辑运算。
加法器
原理
二进制加法的过程中每一位运算不是独立的。两个数字的当前位的和加上当前产生的进位,产生当前位的和以及下一位的进位。 设和分别是两个二进制数的第位,是当前位产生的进位,那么当前位的和和下一位的进位可以表示为:
电路
一位加法器的电路如下:
将上一位的进位输入到下一位的加法器中,就可以构建多位加法器:
溢出
需要有一种标志表示加法器得到的结果是否溢出(OF)。
溢出只会发生在有符号运算的两种情况下:
- 两个正数相加得到一个负数。此时输入的最高位都是0,但输出的最高位是1。
- 两个负数相加得到一个正数。此时输入的最高位都是1,但输出的最高位是0。
有符号数可能产生溢出的运算情况可以分为下面四种:
| 加数1 | 加数2 | 输出 | 是否溢出 | ||
|---|---|---|---|---|---|
| 正 | 正 | 负 | 是 | 0 | 1 |
| 正 | 正 | 正 | 否 | 0 | 0 |
| 负 | 负 | 正 | 是 | 1 | 0 |
| 负 | 负 | 负 | 否 | 1 | 1 |
由上表看出溢出发生的标志是
即当最高位的进位和次高位的进位不同时发生溢出。
减法器
减法器可以通过加法器来实现。减去一个数等价于加上它的补码。