A binary (n, n) block code having the following properties:
A Gray code can be conveniently represented by its
transition sequence, i.e. the ordered list of bit positions that change when moving from one codeword to the next. The Good–de Bruijn diagram graph of a Gray code forms a Hamiltonian cycle. Gray codes are used in encoding the positions of shafts, wheels, etc., in order to avoid the problems that would arise when several digits were supposed to change at the same time.