Algo de calcul d'un CRC16

Signaler
Messages postés
1
Date d'inscription
dimanche 6 février 2005
Statut
Membre
Dernière intervention
1 février 2007
-
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
-
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

Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
20