$$
\begin{array} { r l } & { ( M \operatorname { A N D } N \operatorname { A N D } \left( W \operatorname { O R } T \right) ) } \\ & { \qquad \operatorname { O R } } \\ & { ( F \operatorname { A N D } N \operatorname { A N D } \left( \operatorname { N O T } W \right) ) } \\ & { \qquad \operatorname { O R } } \\ & { \qquad \quad \quad \quad \quad \quad \quad \quad \quad \quad } \\ & { \qquad \quad \quad \quad \quad \quad \quad \quad \quad \quad B } \end{array}
$$
有了这个公式,店员就可以做一个布尔测试了。为了避免麻烦,我采用了一种略微有点不同的布尔代数形式—一字母不仅仅代表集合。这里,字母可以用数字来赋值。我们只用数字0和1。数字1代表YES,True,即这只猫是符合这样的标准的。数字0表示NO,False,即这只猫不符合这种特定标准。
首先,店员拿出了一只未绝育的褐色公猫。以下是我期望得到的猫的表达式:
$$
( M \times N \times ( W + T ) ) + ( F \times N \times ( 1 - W ) ) + B
$$
以下是用0和1替换之后的式子:
$$
( 1 \times 0 \times ( 0 + 1 ) ) + ( 0 \times 0 { \times } ( 1 - 0 ) ) + 0
$$
注意,只有M和T的值为1,因为这只猫是褐色的公猫。
现在我们要做的就是化简这个表达式。如果简化结果为1,则这只猫就符合你的标准;如果简化结果为0,那么这只猫就不符合。在化简的时候要切记,我们并不是真的在进行加和乘的运算,尽管通常我们可以当做是。符号“+”代表OR,符号“×”代表AND,在大多同类的规则中适用(有时在现代课本中也使用符号“∧”和“√”来表示AND和OR,而非用符号“×”和“+”。但是在这里符号“+”和“×”是具有特殊意义的)。
当符号“×”代表AND时,有以下几种可能的结果:
$$
\begin{array} { l } { 0 \times 0 = 0 } \\ { 0 \times 1 = 0 } \\ { 1 \times 0 = 0 } \\ { 1 \times 1 = 1 } \end{array}
$$
也就是说,只有当运算符AND左右两端都为1的时候,结果才为1。这个运算与常规的乘法是完全相同的,该规则可以总结为如下这样一个表格,这与第8章中加法和乘
编码隐匿在计算机软硬件背后的语言
98