bueno.sigo atrancado en esto del calculo crc.sigo haciendo pruebas con esta pagina:
http://ghsi.de/CRC/index.php?Polynom=100110001&Message=021cb801000000y he aprendido algo de lo que son los polinomios.pero los calculos no me cuadran.
respecto a la formula ya la entiendo. P(x) = x8+ x5+ x4+ x0 que es el polinomo 131 ='100110001' lo que indica es el bit que va a estar a 1.
asi que '11111111'= P(x) = x7+ x6+ x5+ x4+ x3+ x2+ x1+ x0
esto lo veo sencillo.y tambien veo sencillo conseguir el crc de 2bytes.pero no se como hacerlo con 3 o mas.y he probado todas las combinaciones.
en el anterior calculo:
0xB1 0xA2 0x00 <- valor inicial"0x00"
principio -> 101100011010001000000000
polinomio 0x0131 100110001
_________
XOR 001010010
101001001 ->eliminamos los ceros de la izquierda.y bajamos del principio dos cifras porque son dos ceros los eliminados
polinomio 100110001
_________
xor 001111000
111100000 ->eliminamos 2 ceros bajamos 2 siguienes cifras
polinomio 100110001
_________
xor 011010001
110100010 ->eliminamos 1 cero bajamos 1 cifra
polinomio 100110001
_________
xor 010010011
100100111 ->eliminamos 1 cero bajamos 1 cifra
polinomio 100110001
__________
xor 000010110
101100000 ->eliminamos 4 ceros bajamos 4 cifras
polinomio 100110001
_________
xor 001010001
101000100 ->eliminamos 2 ceros bajamos 2 cifras
polinomio 100110001
_________
xor 001110101
111010100 ->eliminamos 2 ceros bajamos 2 cifras
polinomio 100110001
_________
xor 011100101
111001010 ->eliminamos 1 cero bajamos 1 cifra
polinomio 100110001
_________
xor 011111011 resultado: 0xFB
vuelvo a realizar el calculo con 3 bytes:
0xb1 0xa2 0xa3 0x00
principio -> 10110001101000101010001100000000
poli 100110001
_________
00101001001
100110001
_________
00111100000
100110001
_________
0110100010
100110001
_________
0100100110
100110001
_________
0000101111010
100110001
_________
00100101110
100110001
_________
0000111110011
100110001
_________
0110000100
100110001
_________
0101101010
100110001
_________
00101101100
100110001
_________
00101110100
100110001
_________
00100010100
100110001
_________
000100101 = 0x25
asi que no me cuadra el valor final de crc.cuando en la pagina del enlace el resultado es 0xC7