Checksum

Hola,
¿Alguien sabe que realiza este checksum? ¿Hace una Xor de los datos? Es un CRC?
#DEFINE ADDSUM16(cs, CC) cs += (CC);
cs << = 1;
if (cs & 0x10000) cs++;
cs &= 0xffff;
Gracias

1 respuesta

Respuesta
1
Lo que hace la función ADDSUM16 es sumar "CC" a "cs". Lo que sigue es una rotación de bits hacia la izquierda trabajando con 16 bits.
Donde dice "cs<<=1" lo que se hace es desplazar todos los bits de cs un lugar a la izquierda. Se logra lo mismo multiplicando por 2. Luego el "if" verifica si el bit 16 quedó en 1. Si es así lo mueve a la posición del bit 0 logrando la rotación. La última línea se asegura que los bits mayores al 15 queden en cero. El resultado es una rotación de 16 bits a la izquierda.
Eso es todo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas