On this page we will construct every one of the 16 two-input logic gates from only NAND gates.
A and B
The logic gates 0011 (A) and 0101 (B) are the simplest to construct, as they don't
need any NAND gates:
NOT A and NOT B
The logic gates 1100 (NOT A) and 1010 (NOT B) are also very simple, as they are
the inverse gates of A and B. Note that the inverse of a logic gate is just the
same but with a NAND gate at the end to reverse the output:
NAND and AND
The logic gates 1110 (NAND) and 0001 (AND) are also each other's inverse:
A IMPLIES B and B IMPLIES A
The logic gates 1011 (A IMPLIES B) and 1101 (B IMPLIES A) both require two
NAND gates, and are equivalent to A NAND (NOT B) and (NOT A) NAND B
respectively:
B AND NOT A and A AND NOT B
The logic gates 0100 (B AND NOT A) and 0010 (A AND NOT B) are the inverses of
A IMPLIES B and B IMPLIES A respectively:
OR and NOR
The logic gates 0111 (OR) and 1000 (NOR) are next. OR is equivalent
to (NOT A) NAND (NOT B), and NOR is its inverse:
TRUE and FALSE
The logic gates 1111 (TRUE) and 0000 (FALSE) have constant outputs. To do this,
we can use A NAND (NOT A) and its inverse:
XOR and XNOR
The logic gates 0110 (XOR) and 1001 (XNOR) are the most complicated ones.
XOR is equivalent to (B IMPLIES A) NAND (A IMPLIES B), and XNOR is
its inverse: