《计算机组成与体系结构(原书第4版)》 —3.2 布尔代数
3.2 布尔代数
布尔代数是表示对象操作的代数,它只有两个值,虽然它可以是任何一对值,但通常是真与假。因为计算机可以看成是一系列“开”或“关”的开关集合,所以布尔代数可以很自然地表示数字信息。事实上,数字电路采用低电压和高电压,但是理解为0和1就足够了。常见的解释为数字值0为假,数字值1为真。
3.2.1 布尔表达式
除了二进制对象,布尔代数也可以对一些对象或变量进行操作。将变量和运算符进行组合就产生了布尔表达式。依据输入值集合{0,1},布尔函数通常有一个或多个输入值,并产生一个输出结果。
3种常见的布尔运算符为AND、OR和NOT。为了更好地理解这些运算符,需要一种机制来检查它们的操作。布尔运算符可以使用一个表来完全描述,这个表列出了所有可能的输入、这些输入所有可能的值,以及这些输入组成的所有可能组合对应的结果。该表被称为真值表。真值表以表格形式表示输入变量与通过布尔运算符或函数运算得到的输出结果的关系。下面分析一下布尔运算符AND、OR、NOT,使用布尔代数和真值表查看每个运算符代表的内容。
逻辑运算符AND通常是通过点或不用符号来表示。例如,布尔表达式xy等效于表达x·y并读成“x与y”。表达式xy通常被被称为布尔积。此操作行为的特征真值表如表3-1所示。
只有当两个输入均为1时,表达式xy的结果才为1,否则为0。表中的每一行代表一个不同的布尔表达式,x和y的所有可能值的组合由表中的行表示。
布尔运算符OR通常是由一个加号来表示。因此,表达式x+y读成“x或y”,只有当两者的输入值都是0时,x+y的结果是0。表达式x+y通常被称为一个布尔和。OR运算的真值表如表3-2所示。
逻辑运算符NOT通常表示为一根短线或一个撇号。因此,无论是x和x′都被读为“x非。”NOT运算符的真值表如表3-3所示。
现在明白了,可以用布尔代数处理二进制变量和这些变量的逻辑运算。结合这两个概念,可以检查由布尔变量和多重逻辑运算符组成的布尔表达式。例如,布尔函数F(x,y,z)=x+y′z 是由3个布尔变量x、y、z和逻辑运算符OR、NOT和AND表示的布尔表达式。怎么知道哪个运算符先操作?优先级规则定义为非最高,接着是与,最后是或。对于函数F,先求y的非,然后执行y′与z,最后将这个结果与x求或。
也可以用真值表来表示这种表达式。它往往对创造一个更复杂的功能很有帮助,如建立出这个函数所有组合的真值表,一次一列,直至该表达式被计算出结果。函数F对应的真值表如表3-4所示。
在真值表的最后一列表示由x、y和z的所有可能组合得到的函数值。注意到函数F实际仅由真值表前三列和最后一列得到。阴影列显示得到最后答案所需的中间步骤。创建这种真值表可以更容易地评价函数对于所有输入值的可能组合的情况。
- 点赞
- 收藏
- 关注作者
评论(0)