(Part 1)
It has a good practical application in rotary position encoders. If you use the linear codes as you normally use, you will find that as the count progresses to the next, it is possible that more than two of the bits change simultaneously.. The worst part is , the change may not occur exactly simultaneously and so this transition period will give error (glitches) reading. To avoid this problem whole sale, use gray code where only one change will occur as the count prograsses. No chance of such error.
The gray codes are generated on the right hand side...