El código binario reflejado ( RBC ), también conocido como código binario reflejado ( RB ) o código Gray después de Frank Gray , es una ordenación del sistema numérico binario de tal manera que dos valores sucesivos difieren en un solo bit (dígito binario).
Por ejemplo, la representación del valor decimal "1" en binario normalmente sería " 001 " y "2" sería " 010 ". En el código Gray, estos valores se representan como " 001 " y " 011 ". De esa manera, incrementar un valor de 1 a 2 solo requiere un bit para cambiar, en lugar de dos.
Los códigos grises se utilizan ampliamente para evitar salidas espúreas de conmutadores electromecánicos y para facilitar la corrección de errores en las comunicaciones digitales, como la televisión digital terrestre y algunos sistemas de televisión por cable .
Muchos dispositivos indican la posición cerrando y abriendo interruptores. Si ese dispositivo usa códigos binarios naturales , las posiciones 3 y 4 están una al lado de la otra, pero los tres bits de la representación binaria son diferentes:
El problema con los códigos binarios naturales es que los interruptores físicos no son ideales: es muy poco probable que los interruptores físicos cambien de estado exactamente en sincronía. En la transición entre los dos estados que se muestran arriba, los tres interruptores cambian de estado. En el breve período mientras todos están cambiando, los interruptores leerán alguna posición falsa. Incluso sin el rebote de tecla , la transición puede parecer 011 - 001 - 101 - 100 . Cuando los interruptores parecen estar en la posición 001 , el observador no puede decir si esa es la posición 1 "real", o un estado de transición entre otras dos posiciones. Si la salida se alimenta a un sistema secuencial , posiblemente a través delógica combinacional , entonces el sistema secuencial puede almacenar un valor falso.
Este problema se puede resolver cambiando solo un interruptor a la vez, por lo que nunca hay ambigüedad de posición, lo que resulta en códigos que asignan a cada uno de un conjunto contiguo de números enteros , oa cada miembro de una lista circular, una palabra de símbolos como que no hay dos palabras de código idénticas y que cada una de las dos palabras de código adyacentes difieren exactamente en un símbolo. Estos códigos también se conocen como unidades de distancia , [3] [4] [5] [6] [7] de distancia única , de paso único , monostróficos [8] [9] [6] [7] o códigos sincópicos , [8] en referencia a la distancia de Hamming de 1 entre códigos adyacentes.