The Gray Code
Symmetric way of generating code where adjacent values differ in only one variable.
Use the "mirror" approach to generate the Gray code.
Unit-distance Gray code useful for error detection in a serial process
e.g. Water level indicator, wind direction indicator.