Top left: binary to Gray code encoder. 7-seg shows input.
Bottom/right: Gray to binary decoder. 7-seg shows output.
In Gray code, sequential values only change by 1 bit. This is useful in preventing errors in certain circumstances, and in certain testing scenarios. I know I'd be happier testing adders and things in EC if sequential inputs only changed by 1 bit. On that note, I should have made the decoder first, and driven the encoder from the decoder. :)
Counter-driven version shows the 1-bit changes:
http://everycircuit.com/circuit/5856216424382464
https://en.wikipedia.org/wiki/Gray_code
The decoder here corresponds to the "more efficient version" in the converting section.
5.0V & 4.8V LEDs for simplicity.