Sto cercando di decodificare un checksum o un CRC in cui un numero a 8 bit * viene convertito in un numero a 5 bit per il controllo degli errori. Ho un elenco incompleto di valori e checksum dei dati e ho bisogno di capire l'algoritmo in modo da poter compilare i dati mancanti. L'ho tracciato in hex e binario e non riesco a individuare un pattern. Spero che qualcuno riconosca l'algoritmo / la tecnica che è stata utilizzata. Ecco la mia lista incompleta (i valori sono in decimale):
Data Val == Checksum
4 = 15;
5 = 2;
6 = 1;
7 = 12;
8 = 17;
9 = 28;
10 = 31;
11 = 18;
12 = 30;
13 = 19;
14 = 16;
15 = 29;
16 = 18;
17 = 31;
18 = 28;
19 = 17;
20 = 29;
21 = 16;
22 = 19;
23 = 30;
24 = 3;
25 = 14;
26 = 13;
27 = 0;
28 = 12;
29 = 1;
30 = 2;
31 = 15;
32 = 19;
33 = 30;
34 = 29;
35 = 16;
36 = 28;
37 = 17;
38 = 18;
39 = 31;
40 = 2;
41 = 15;
42 = 12;
43 = 1;
44 = 13;
45 = 0;
46 = 3;
47 = 14;
48 = 1;
49 = 12;
51 = 2;
53 = 14;
53 = 3;
54 = 0;
55 = 13;
56 = 16;
57 = 29;
58 = 30;
59 = 19;
60 = 31;
61 = 18;
62 = 17;
63 = 28;
64 = 20;
65 = 25;
66 = 26;
67 = 23;
68 = 27;
69 = 22;
73 = 8;
74 = 11;
76 = 10;
79 = 9;
80 = 6;
81 = 11;
82 = 8;
* Potrebbe essere 16 bit. Ci sono altri 8 bit che vengono dopo che nel mio campione i dati non vengono utilizzati e tutti gli zeri. In tal caso potrebbe essere:
1024 = 15;
1280 = 2;
1536 = 1;
1792 = 12;
2048 = 17;
2304 = 28;
etc.
Se è a 16 bit come sospetto, ho bisogno dell'algoritmo per gestire anche quei bit. Cordiali saluti: Fa parte di un formato a infrarossi proprietario utilizzato dalla vecchia tastiera a raggi infrarossi Microsoft Media Center di XP, simile ma non del tutto simile al protocollo RC5. La documentazione che ho trovato è sparsa, incompleta e contiene errori.