Boolean Logic and Truth Tables Explanation

I'm needing to create a truth table, and I really need to find a resource to explain how it works. I'll give an example of a problem.
I have to create a truth table based on this: A*(B+A*B)=A*B
So the truth table looks something like:

0 0

0 1

1 0

1 1 for A*(B+A*B)=A*B

How do I even begin to solve this? Are there any good resources that give a good explanation on what to do?

Ok So I then did one more complicated that involves a NOT. ! indicates not

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

So I did C = A*!B D=!A*B then !(C+D) for the left side. My final answer for that side is

```
0 0 1
0 1 0
1 0 0
0 0 1
```

So the right side is this

C = A * B D = A + B then C + !D
so that looked like this

```
0 0 1
0 1 0
0 1 0
1 1 1
```

I think I'm getting it? :)

http://www.stackoverflow.com/questions/2248883/

Posted: February 12, 2010 at 12:42 AM by: Doug

Edit: I put in some extra explanation given your comment (which is now deleted).

A and B are two boolean variables. For example, in a program, A might be firstTestOK and B might be secondTestOK. Each of A and B can be either true (1) or false (0).

A+B means A or B which is true if either A or B is true. A*B means A and B is is true only if both A and B are true.

All of the combinations for A, B are:

- A is false and B is false
- A is false and B is true
- A is true and B is false
- A is true and B is true

This can be written more compactly as a truth table as follows:

```
A B
0 0
0 1
1 0
1 1
```

What you've been asked to do is show A*(B+A*B) is the same as A*B. So, for each combination, we work out the left-hand-side, which is A*(B+A*B) and the right-hand-side, which is 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
```

so, looking at all of the combinations in the last two columns, we see that the results are the same, so A*D=A*(B+A*B) is A*B.

Since the left-hand-side is a little complicated, I did it in steps by breaking it up into pieces, by introducing C and D.

On February 12, 2010 at 12:47 AM by: Ramashalanka

- How do I insert queue elements into a vector?
- PHP: Detecting file extension from: filename.jpg
- Override the form 'Reset' behavior when data is refreshed via ajax
- Safari Javascript is conflicting JSON item with keyword
- How do I trace which file RSpec is loading?
- Selecting online users from db with mysql command
- Shortcomings of modelling roles as boolean columns on User table
- Does Int32.TryParse(String, Int32) alter the int argument on failure?
- jQuery autofill with multiple values and icons (email to field)
- File -> Open Website in MonoDevelop?
- Extending MVC TemplateHelper / DisplayFor* methods - should I be doing that?
- Using Youtube Intent to launch a video from a defined starting point
- Problems getting SvnKit to work on 64 bit Windows 7
- Selenium-RC PHP example fails
- How to Turn Off Showing Whitespace Characters in Visual Studio IDE
- rails to_json not following scropes
- South django.db.utils.IntegrityError: django_content_type.name may not be NULL while running unit tests
- [ Python Beginner ] compilation error. AttributeError: 'module' object has no attribute 'init'
- C#: Get all week numbers from within 2 dates globalized/ISO 8601 compatible
- Disable a:hover styles when some element is visible;
- How do I get a windows current size using Tkinter?
- How do I declare a 32bit integer in java?
- Store the order of something in MySQL
- Async queries with DBD::Pg fail with: Cannot execute until previous async query has finished
- Order by field mysql command doesn't work, gives wrong order
- Facebook API (Wall) Possible to let Facebook pick an image?
- ruby csv::writer - encapsulate field
- Matrices extracting and assigning numbers or symbols
- Which iOS frameworks most useful to learn and in what order?
- How can I make my Ruby script (not Rails) run anywhere?

Logo, website design and layout ©2011 CodingTiger.com