Gray code

from The Free On-line Dictionary of Computing (8 July 2008)
Gray code

   <hardware> A {binary} sequence with the property that only one
   {bit} changes between any two consecutive elements (the two
   codes have a {Hamming distance} of one).

   The Gray code originated when {digital logic} circuits were
   built from {vacuum tubes} and electromechanical {relays}.
   Counters generated tremendous power demands and noise spikes
   when many bits changed at once.  E.g. when incrementing a
   register containing 11111111, the {back-EMF} from the relays'
   collapsing magnetic fields required copious noise suppression.
   Using Gray code counters, any increment or decrement changed
   only one bit, regardless of the size of the number.

   Gray code can also be used to convert the angular position of
   a disk to digital form.  A radial line of sensors reads the
   code off the surface of the disk and if the disk is half-way
   between two positions each sensor might read its bit from both
   positions at once but since only one bit differs between the
   two, the value read is guaranteed to be one of the two valid
   values rather than some third (invalid) combination (a
   {glitch}).

   One possible {algorithm} for generating a Gray code sequence
   is to toggle the lowest numbered bit that results in a new
   code each time.  Here is a four bit Gray code sequence
   generated in this way:

   	0 0 0 0
   	0 0 0 1
   	0 0 1 1
   	0 0 1 0
   	0 1 1 0
   	0 1 1 1
   	0 1 0 1
   	0 1 0 0
   	1 1 0 0
   	1 1 0 1
   	1 1 1 1
   	1 1 1 0
   	1 0 1 0
   	1 0 1 1
   	1 0 0 1
   	1 0 0 0

   The codes were patented in 1953 by Frank Gray, a {Bell Labs}
   researcher.

   (http://nist.gov/dads/HTML/graycode.html).

   (2002-08-29)
    

[email protected]