¿Qué es la operación del código Gray? Introducción a la operación del código Gray [Explicación detallada]
En el sistema digital, solo se pueden reconocer 0 y 1, y varios datos solo se pueden procesar después de convertirlos en códigos binarios. El código Gray es un código no ponderado que utiliza codificación absoluta. Un código Gray típico es un código autocomplementario de un solo paso con propiedades reflectantes y cíclicas. Sus características cíclicas y de un solo paso eliminan la posibilidad de errores graves al seleccionar números aleatorios, y sus características reflectantes y autocomplementarias hacen que la inversión sea muy conveniente. El código Gray es una codificación confiable, que es un método de codificación que minimiza los errores, porque el código binario natural se puede convertir directamente en una señal analógica a través de un convertidor de digital a analógico, pero en algunos casos, como el código binario, se convierte. del decimal 3 al decimal 4, se debe cambiar cada bit, lo que hace que el circuito digital genere un gran pulso de corriente pico. El código Gray no tiene este inconveniente. Este es un sistema de ordenamiento numérico en el que todos los números enteros adyacentes difieren en su representación numérica en un solo dígito. Cuando convierte entre dos números adyacentes cualesquiera, solo cambia un número. Reduce en gran medida la confusión de la lógica de un estado al siguiente. Además, dado que solo hay una diferencia numérica entre el número máximo y el número mínimo, también se le suele denominar código de reflexión Gray o código cíclico. La siguiente tabla es una tabla comparativa de varios códigos binarios naturales y códigos Gray:
En términos generales, los códigos binarios ordinarios y los códigos Gray se pueden convertir entre sí de las siguientes maneras:
Código binario->; Código Gray (codificación): comenzando desde el bit más a la derecha, cada bit se aplica XOR con el bit izquierdo por turno. Como valor del bit del código Gray correspondiente, el bit más a la izquierda permanece sin cambios (equivalente a 0 a la izquierda). );
Código Gray->Código binario (decodificación): XOR cada bit con el valor decodificado del segundo bit de la izquierda como el valor decodificado del bit (el bit más a la izquierda permanece sin cambios) .
Descripción matemática (computadora):
Código original: p[0 ~ n]; Código Gray: c[0~n](n?n); (p); Decodificación: p = F(c); Al escribir, los números disminuyen de izquierda a derecha.
Código: c=p XOR p[i+1](i?n, 0?i?n-1), c[n]= p[n];
Decodificación: p[n]=c[n], p=c XOR p[i+1](i?n, 0?i?n-1).
El código Gray fue propuesto por Frank Gray de los Laboratorios Bell en la década de 1940 (propuesto por el ingeniero francés Jean-Maurice-Emlle en 1880).
Baudot), utilizado para evitar errores en la transmisión de señales mediante el método PCM (Pusle Code Modulation), y recibió una patente estadounidense en marzo de 1953. Por definición, el método de codificación del código Gray no es único, pero el que se analiza aquí es el más utilizado.
El código Gray fue descubierto por los antepasados de los chinos.
Código de nueve cadenas y Gray
Al analizar la notación completa de la solución de nueve cadenas, debido a que solo se mueve un anillo a la vez, las expresiones de dos pasos solo difieren en un número. Tomemos como ejemplo los cinco anillos. Los cinco dígitos en la primera columna desde la izquierda son el estado de los cinco anillos, ordenados desde el primer anillo hasta el quinto. La segunda columna es un número de cinco dígitos que representa el orden inverso. Parece un número binario, pero al compararlo con la cuarta columna, podemos ver que no es un número de paso representado por un número binario. La tercera columna es el número de pasos desde el estado inicial hasta este estado. La columna de la derecha es la representación binaria de los pasos.
00000-00000-0-00000
10000-00001-1-00001
11000-00011-2-00010
01000 -00010-3-00011
01100-00110-4-00100
11100-00111-5-00101
10100-00101-6-00110 p>
00100-00100-7-00111
00110-01100-8-01000
10110-01101-9-01001
11110-01111 -10-01010
01110-01110-11-01011
01010-01010-12-01100
11010-01011-13-01101
10010-01001-14-01110
00010-01000-15-01111
00011-11000-16-10000
10011-11001-17 -10001
11011-11011-18-10010
01011-11010-19-10011
01111-11110-20-10100
11111-11111-21-10101
¡Descubrimos que los números en la columna de la derecha son exactamente los códigos Gray de números binarios del decimal 0 al 21! Por supuesto, esto requiere 21 pasos. Si escribe los números binarios de 5 dígitos en secuencia, es
10111-11101-22-10110
00111-11100-23-10111
00101-10100-24-11000
10101-10101-25-11001
11101-10111-26-11010
01101-10110-27-11011
01001-10010-28-11100
11001-10011-29-11101
10001-10001-30-11110
00001- 10000-31-11111
Esto muestra que para una cadena de cinco eslabones con solo cinco eslabones, no es la que toma la mayor cantidad de pasos desde el estado inicial al estado 1111, pero sí la que toma más para llegar a el estado 0001, que es de 31 pasos. De manera similar, para la cadena de nueve anillos, el estado inicial 11111111 no es el que más se usa, pero el estado 000000001 es el que más se usa. El código gris 1111111 representa el número binario 1065438+. Ésta es la connotación matemática contenida en las Nueve Cadenas.
Nota: De números binarios a código Gray: Verifique de derecha a izquierda Si el lado izquierdo de un número es 0, el número no cambia, si es 1, el número cambia (0 se convierte en 1; , 1 se convierte en 0). Por ejemplo, el código Gray del número binario 11011 es 1010.
Código gris a número binario: Verifique de derecha a izquierda Si la suma de los dígitos izquierdos de un número es un número par, el número permanece sin cambios; si es un número impar, el número cambiará; .
Por ejemplo, el código Gray 11011 significa que el número binario es 10010.
Lo anterior se puede utilizar para ayudar a la memoria: 2G se vuelve cero, G2 se vuelve par e impar.
De esta manera, no sólo podemos saber cuántos pasos se necesitan para pasar de un estado a otro usando una solución completa, sino también cuántos pasos se necesitan para usar una solución simple, y podemos saber cuál es la siguiente acción. (A excepción de los dos estados de 0000000000 y 1111111, cualquier estado se puede transformar en dos estados, es decir, hay dos acciones).
Por ejemplo, suponiendo que el estado inicial de la cadena de nueve es 110110, el estado de terminación requerido es 00101165438.
¿Cuántos pasos se necesitan para una solución simple y una solución completa? ¿Cuál es el primer paso?
Solución (1) Estado inicial 1101110, código Gray 011001, conversión. El estado de terminación es 00100111, el código Gray es 1110065438 y el número binario convertido es 100. La diferencia entre los dos es 326-141=186 y la solución completa requiere 186 pasos.
(2) Dado que la condición inicial de 141 es menor que la condición de terminación de 327, el primer paso debe ser 142, el binario correspondiente es 010001165438 y el código Gray convertido es 0165438.
(3) Pasos de solución simple, calculamos los pasos simples correspondientes a partir de 141, 327 respectivamente,
Para N=141, obtenemos N0 = 103 para N=327, N0; =242. La diferencia entre los dos es 139, por lo que el paso simple es 139.