checksum

Experto:
Usuario:
Fecha: 20/12/2004
Valoración: (5,00 sobre 5) Categoría: Ciencias e Ingeniería
20/12/2004
alkpone, usuario preguntando en Ciencias e Ingeniería
Usuario
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
20/12/2004
alkpone, experto respondiendo en Ciencias e Ingeniería
Experto
Hola, 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.
20/12/2004
alkpone, usuario preguntando en Ciencias e Ingeniería
Usuario
Excelente. Una fantástica solución.
Enlaces patrocinados
Respuestas relacionadas