# Boolean Operators

In conventional algebra, operators such as +, -, *, and / connect values into a expression which has its own value. Operators in boolean algebra perform the same function. However, since boolean algebra is two-valued while conventional algebra is many-valued, operators in boolean algebra are much easier to define! In fact, it is possible to record all possible behaviors of a boolean “binary operator” (an operator which acts on two input values) in one four-celled table, called a “truth table”.

### Logic Gates:

A logic gate is nothing more than a physical implementation of a boolean operator. It performs some boolean operation on physical “inputs” to yield an output value. For any logic gate to be useful, for each input or output, we must choose one physical position to represent a “true” value and another to represent a “false” value. This process is called picking an “encoding”.

Most electronic logic gate designers choose to encode an input or output value of “true” as a relatively high voltage and a value of “false” as a relatively lower one. We chose a to encode “true” as a dowel rod pushed away from a gate’s input(s) in the direction of its outputs. We chose to encode “false” as a dowel rod pulled towards the input(s).

### OR (inclusive-OR)

The boolean operator called “OR” creates an expression which is true if at least one of the values that it acts on is true. A logic gate which implements the OR operation is called an “OR-gate”. And OR-gate that uses our mechanical logic encoded will extend its output rod if at least one of its inputs is pushed in.

### AND:

The “AND” operator produces an expression which is “true” only when both values it acts on are true are “true”.

### NOT:

The “NOT” operator is a “unary operator”, meaning that it only acts on one value. The expression NOT(x) has the opposite value of x. A NOT-gate is also called an “inverter”.

### XOR (exclusive-OR)

The XOR operator produces an expression which is true if *only* one of the values in the expression is true, and false otherwise.

### Buffer:

A buffer doesn’t exactly represent a boolean operation. If anything, it produces “true” if its input is “true”. However, the purpose of a buffer is more than this. Buffers are a necessity which comes about when boolean algebra is implemented using a physical medium. A buffer will restore a signal to its full strength. Signals hovering in between “true” and “false” will be pushed to the closer value.