Convertidor de código Gray: binario a Gray y Gray a binario
Convierte binario a código Gray, código Gray a binario o decimal a código Gray (hasta 64 bits) con la regla XOR, y mira la secuencia completa del código Gray reflejado para pocos bits.
Cómo funciona
Binario → Gray: G = B ⊕ (B >> 1); es decir, el primer bit Gray es igual al primer bit binario y cada bit siguiente es el XOR de dos bits binarios vecinos · Gray → binario: B₁ = G₁ y luego cada bit binario = bit binario anterior ⊕ bit Gray actual
El código binario reflejado (código Gray) ordena los números de modo que dos valores consecutivos difieren en un solo bit. Así se evitan errores transitorios cuando varios bits cambian a la vez, y por eso lo usan los encoders rotativos y lineales, los mapas de Karnaugh y los punteros de FIFO asíncronas. Pasar a Gray es un solo XOR del número con él mismo desplazado a la derecha; volver a binario es un XOR acumulado desde el bit más significativo. Se manejan anchos de hasta 64 bits de forma exacta.
Ejemplo resuelto
Binario 1011 (decimal 11): el primer bit Gray es 1; luego 1 ⊕ 0 = 1, 0 ⊕ 1 = 1 y 1 ⊕ 1 = 0, así que el código Gray es 1110. Con la fórmula: 1011 ⊕ 0101 = 1110. En la secuencia de 4 bits, 10 (1111) → 11 (1110) → 12 (1010) cambian un solo bit cada vez.
Fuentes: Gray code — Wikipedia · F. Gray, Pulse code communication, US Patent 2,632,058 (1953)
Preguntas frecuentes
¿Por qué se usa el código Gray en los encoders?
Cuando un encoder mecánico u óptico pasa de una posición a la siguiente, en código Gray solo cambia una pista. En binario normal, pasar de 0111 a 1000 cambia cuatro bits, y si se leen a mitad de la transición la posición puede saltar mucho; con código Gray el peor error es de un paso.
¿Cómo convierto código Gray a binario a mano?
Copia el primer bit (el de la izquierda). Para cada posición siguiente, haz XOR entre el bit binario que acabas de escribir y el bit Gray de esa posición: si el bit Gray es 1, invierte el bit binario anterior; si es 0, repítelo. 1110 → 1, 1⊕1 = 0, 0⊕1 = 1, 1⊕0 = 1 → 1011.
¿Existe un solo código Gray?
Hay muchas secuencias con la propiedad de cambiar un bit a la vez, pero “código Gray” suele referirse al código Gray binario reflejado, G = B ⊕ (B >> 1), que es el que usa este convertidor. Cada secuencia de n bits es la de n−1 bits seguida de su imagen en espejo con un 1 delante.
¿Qué relación tiene con los mapas de Karnaugh?
Las filas y columnas de un mapa K se etiquetan en orden de código Gray (00, 01, 11, 10) para que las celdas vecinas difieran en una sola variable, que es lo que permite agrupar los 1 adyacentes.
Calculadoras relacionadas
Esta calculadora tiene fines informativos. Verifica los resultados importantes antes de tomar decisiones.