Red de conocimiento informático - Computadora portátil - Cálculo CRC, ¡urgente! Solicitud de puntuación alta, código CRC

Cálculo CRC, ¡urgente! Solicitud de puntuación alta, código CRC

1. Convierta el polinomio generador G(X) (es decir, la potencia máxima de X a R) en el número binario de R+1 dígito correspondiente.

2. Desplace el código de información dejado por R bits, correspondientes al polinomio de información correspondiente C(X)*2R.

3. Divida el código de información por el polinomio generador (número binario) para obtener el resto del dígito R.

4. Coloque el resto en la posición que quedó vacante después de desplazar el código de información hacia la izquierda para obtener el código CRC completo.

Ejemplo Supongamos que el polinomio generador utilizado es G(X)=X3+X+1. La información original de 4 bits es 1010. Encuentre la información codificada.

Solución:

1. Convertir el polinomio generador G(X)=X3+X+1 en el divisor binario correspondiente 1011.

2. El polinomio generador tiene 4 bits (R+1) (Nota: la suma de verificación calculada por el polinomio generador de 4 bits es de 3 bits, R es el número de dígitos de la suma de verificación), es necesario dejar el mensaje original C(X) Shift 3 (R) bits para convertirse en 1010 000

3. El número binario correspondiente al polinomio generado es el número binario después de que el mensaje original se desplaza hacia la izquierda 3 bits y se divide en módulo 2 (altamente alineado). , que equivale a un bit O:

1010000

1011

------------------

0001000

1011

-----------------

011

Obtener El resto es 011, por lo que la codificación final es: 1010 011

* CRC. definir CRCCCITT 0x1021

#define CCITT-REV 0x8408

#define CRC16 0x8005

#define CRC16-REV 0xA001

#define CRC32 - POLINOMIO 0xEDB88320L

/* Lo anterior es la definición de división CRC*/

#define NIL 0

#define crcupdate(d. a,t) *(a)