 the reflected binary code, also known as gray code after frank gray, is a binary numeral system where two successive values differ in only one bit (binary digit). the reflected binary code was originally designed to prevent spurious output from electromechanical switches. today, gray codes are widely used to facilitate error correction in digital communications such as digital terrestrial television and some cable tv systems. == name == thumb|gray's patent introduces the term "reflected binary code" bell labs researcher frank gray introduced the term reflected binary code in his 1947 patent application, remarking that the code had "as yet no recognized name".f. gray. pulse code communication, march 17, 1953 (filed nov. 1947).  he derived the name from the fact that it "may be built up from the conventional binary code by a sort of reflection process". the code was later named after gray by others who used it. two different 1953 patent applications use "gray code" as an alternative name for the "reflected binary code";j. breckman. encoding circuit, jan 31, 1956 (filed dec. 1953). e. a. ragland et al. direction-sensitive binary code position control system, feb. 11, 1958 (filed oct. 1953).  one of those also lists "minimum error code" and "cyclic permutation code" among the names. a 1954 patent application refers to "the bell telephone gray code".s. reiner et al. automatic rectification system, jun 24, 1958 (filed jan. 1954).  == motivation == many devices indicate position by closing and opening switches. if that device uses natural binary codes, these two positions would be right next to each other: ... 011 100 ... the problem with natural binary codes is that, with physical, mechanical switches, it is very unlikely that switches will change states exactly in synchrony. in the transition between the two states shown above, all three switches change state. in the brief period while all are changing, the switches will read some spurious position. even without keybounce, the transition might look like 011 â 001 â 101 â 100. when the switches appear to be in position 001, the observer cannot tell if that is the "real" position 001, or a transitional state between two other positions. if the output feeds into a sequential system, possibly via combinational logic, then the sequential system may store a false value. the reflected binary code solves this problem by changing only one switch at a time, so there is never any ambiguity of position, dec gray binary 0 000 000 1 001 001 2 011 010 3 010 011 4 11
Data_transmission Numeral_systems