questa è la versione originale, con la lunghezza:
//CRC-8 - algoritmo basato sulle formule di CRC-8 di Dallas/Maxim
byte CRC8(const byte *data, byte len) {
byte crc = 0x00;
while (len--) {
byte extract = *data++;
for (byte tempI = 8; tempI; tempI--) {
byte sum = (crc ^ extract) & 0x01;
crc >>= 1;
if (sum) {
crc ^= 0x8C;
}
extract >>= 1;
}
}
return crc;
}
Se provate con diversi vettori, anche che contengono 0 nei loro elementi, avrete gli stessi risultati fra questa e quella che non vuole la lunghezza dell'array. Poi se trovate un errore a me fa piacere:
- imparo e la prox volta non o commetto
- sistemiamo insieme questa funzione
Entrambe sono nello spirito dell'open source, non prendo queste critiche male, anzi