布尔逻辑和真值表说明

时间:2010-02-12 00:42:13

标签: boolean-logic truthtable

我需要创建一个真值表,我真的需要找到一个资源来解释它是如何工作的。我举一个问题的例子。 我必须基于此创建一个真值表:A *(B + A B)= A B. 所以真值表看起来像:
    0 0
    0 1
1 0
1 *表示A *(B + A B)= A B

我怎么开始解决这个问题?是否有任何好的资源可以很好地解释该怎么做?

好的,那么我做了一个更复杂的涉及NOT。 !表示不是

!(A *!B +!A B)= A B +!(A + B)

所以我做了C = A *!B D =!A * B然后!(C + D)左侧。我对这一方的最终答案是

0 0 1  
0 1 0
1 0 0
0 0 1

所以右边是这个 C = A * B D = A + B然后是C +!D 所以看起来像这样

0 0 1
0 1 0
0 1 0
1 1 1

我想我得到了它? :)

1 个答案:

答案 0 :(得分:4)

编辑:我根据您的评论(现已删除)添加了一些额外的解释。

A和B是两个布尔变量。例如,在程序中,A可能是firstTestOK而B可能是secondTestOK。 A和B中的每一个可以是真(1)或假(0)。

A + B表示A或B,如果A或B为真,则为真。 A * B表示只有当A和B都为真时A和B才为真。

A,B的所有组合都是:

  1. A为假,B为假
  2. A为假,B为真
  3. A为真且B为假
  4. A是真的,B是真的
  5. 这可以作为真值表更紧凑地编写如下:

    A B
    0 0
    0 1
    1 0
    1 1
    

    您要求做的是显示A *(B + A B)与A B相同。因此,对于每个组合,我们计算出左侧,即A *(B + A B)和右侧,即A B:

    A B C=A*B D=B+C A*D  = A*B
    0 0  0     0     0      0
    0 1  0     1     0      0  
    1 0  0     0     0      0
    1 1  1     1     1      1
    

    所以,看看最后两列中的所有组合,我们看到结果是相同的,所以A D = A (B + A B)是A < / EM>乙

    由于左侧有点复杂,我通过引入C和D将它分解成碎片逐步完成。