Algo de calcul d'un CRC16

cestmat Messages postés 1 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 1 février 2007 - 1 févr. 2007 à 18:27
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 - 11 févr. 2007 à 11:17
Bonjour,

Je dois calculer un CRC avec le polynome utilisé dans HDLC (X^16 + X^12 + X^5 + 1).

J'ai à peu prés compris le principe des CRC mais à chaque fois que je tombe sur un algo, j'ai un peu de mal à le comprendre ...

J'ai trouvé ça comme algo :

unsigned short CalcCRC( unsigned char * message, int l )
{
    unsigned short crc = 0xFFFF;

    for ( ; l--; )
    {
        crc ^= * ( message++ );
        for ( SHORT j = 8; j--; )
        {
            if ( crc & 1 )
            crc = ( crc >> 1 ) ^ 0xA001;
            else
            crc >>= 1;
        }
    }
    return( crc );
}

Bon, le polynome utilisé n'est pas le même mais bon.
Y quelqu'un qui peut m'expliquer un peu ça ?

1 réponse

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
11 févr. 2007 à 11:17
0
Rejoignez-nous