Crc16

jeremy9871 Messages postés 30 Statut Membre -  
jeremy9871 Messages postés 30 Statut Membre -
Bonjour,

je dois faire un crc16,

exemple je tape "02062329000D"

mais je n'arrive pas à séparer le premier octet.

j'ai trouvé des algo sur internet mais je ne comprends pas tous.

Si quelqu'un pouvais m'aider, merci

1 réponse

jeremy9871 Messages postés 30 Statut Membre 1
 
j'ai fais ce programme mais il ne fonctionne pas, je me suis aidé de l'algo https://sitelec.org/cours/abati/flash/crc16.swf

void main()
{
char chaine[7];

chaine[0]='02';
chaine[1]='06';
chaine[2]='23';
chaine[3]='29';
chaine[4]='00';
chaine[5]='0D';

unsigned int crc = 0xFFFF;
unsigned int poly=0xA001;
int nbr_octets_traité=0;
unsigned char parite=0;
int cpt=0;

for (int i=0;i<6;i++)
{
crc=crc^chaine[i];
}

while (nbr_octets_traité!=8)
{
parite=crc;

if ( parite%2 == true ){ crc = (crc/2) ^ poly;}//si impaire
else { crc = crc/2 ;}
nbr_octets_traité++;

}

printf("%x\n",crc);//je dois trouver 92 70 et je trouve a3 3e

system("pause");
0