A voir également:
- Crc16 python
- Citizen code python - Guide
- Ce programme est écrit en python ✓ - Forum Python
- Lancer script python linux - Forum Ubuntu
- Compris entre python ✓ - Forum Python
4 réponses
KX
Messages postés
16736
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mai 2024
3 015
16 juil. 2009 à 19:41
16 juil. 2009 à 19:41
Je ne connais pas le python mais pour t'expliquer le CRC j'en n'ai pas besoin
Tout d'abord il faut mettre tes valeurs en binaires pour 1821 ce sera 1100000100001
Ensuite tu as un polynôme il faut lui aussi l'écrire en binaire, en fait on ne garde que les coefficients, ici c'est 10011110101100101
Le principe du CRC c'est d'obtenir une "clé" de vérification, cette clé sera de taille 16 car ton polynôme est de degré 16, on va poser une division entre ton message (1821) suivi de 16 zéros et du polynôme
11000001000010000000000000000 / 10011110101100101
Ici on ne s'intéresse qu'au reste donc on ne va pas faire véritablement une division comme on l'entend d'habitude on va juste applique un XOR (ou exclusif) entre les nombres, le mieux est de les mettre l'un sous l'autre :
11000001000010000000000000000
10011110101100101
----------------------------------------------------
01011111101110101000000000000
On va réitérer l'opération autant de fois qu'il restera des nombres à gauche (ce qui n'est pas en gras).
Au final le CRC sera la valeur en gras.
Pour vérifier un CRC, au lieu de mettre 16 zéros (en gras) on met le CRC et en faisant le même calcul tu dois obtenir 16 zéros au final
Tout d'abord il faut mettre tes valeurs en binaires pour 1821 ce sera 1100000100001
Ensuite tu as un polynôme il faut lui aussi l'écrire en binaire, en fait on ne garde que les coefficients, ici c'est 10011110101100101
Le principe du CRC c'est d'obtenir une "clé" de vérification, cette clé sera de taille 16 car ton polynôme est de degré 16, on va poser une division entre ton message (1821) suivi de 16 zéros et du polynôme
11000001000010000000000000000 / 10011110101100101
Ici on ne s'intéresse qu'au reste donc on ne va pas faire véritablement une division comme on l'entend d'habitude on va juste applique un XOR (ou exclusif) entre les nombres, le mieux est de les mettre l'un sous l'autre :
11000001000010000000000000000
10011110101100101
----------------------------------------------------
01011111101110101000000000000
On va réitérer l'opération autant de fois qu'il restera des nombres à gauche (ce qui n'est pas en gras).
Au final le CRC sera la valeur en gras.
Pour vérifier un CRC, au lieu de mettre 16 zéros (en gras) on met le CRC et en faisant le même calcul tu dois obtenir 16 zéros au final
KX
Messages postés
16736
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mai 2024
3 015
16 juil. 2009 à 19:45
16 juil. 2009 à 19:45
Voir aussi : Le contrôle des erreurs