> gli esempio disponibili in rete danno tutti lo stesso risultato? perche'
> potrebbe essere sbagliato il manuale.
Si quei 2 algoritmi recuperati in rete (su CCITT non ce ne sono molti)
determinano tutti lo stesso risultato, diverso da quello del manuale (che
riporta 2 esempi, quindi non credo sia un errore). La questione credo sia
dovuta al discorso unsigned, non gestito in java. Cosi' ho fatto un
accrocchio davvero orrendo. Ho preso per buono l'algoritmo in C proposto
dal manuale, cioe' questo:
void calc_crc (unsigned chat data_byte)
{
data_byte ^= crcmsb;
data_byte ^= (data_byte / 16);
crcmsb = crclsb ^ (data_byte / 8) ^ (data_byte * 16);
crclsb = data_byte ^ (data_byte * 32);
}
e mi sono messo a giocare con le stringhe. Cioe' mi sono fatto le
funzioni xor, shiftLeft, shiftRight, che prendono come parametri le
stringhe in binario (00000001, 00000011, ..)
Alla fine ho ottenuto il risultato del manuale, ma con un algoritmo che
definirlo orrendo e' un complimento :)