de caractères terminant par le caractère "/x00" est décrit ci-dessous. L'aplet JAVA du site
Internet «
http://www.zorc.breitbandkatze.de/crc.html
de control. Auparavant, il faut remplir correctement les champs avant d'effectuer le calcul de
CRC et vérifier pour la chaîne de caractère "123456789", que le mot de control est égal à
0xE5CC.
/*=======================================================================*/
/* Function that calculates CRC-CCITT 16 bits
/* INPUT:
/*
unsigned char *inbuffer : 8 bits input vector over which CRC checksum is calculated
/*
/* OUTPUT:
/*
unsigned int: 16 bits return of crc_ccitt checksum
/*=======================================================================*/
/* OVERVIEW:
/*
Width = 16 bits
/*
Truncated polynomial = 0x1021
/*
Initial value = 0xFFFF
/*
No XOR is performed on the output CRC
/* DESCRIPTION:
/*
Computing a POLY number from the crc equation.
/*
Crc s are usually expressed as an polynomial expression such as:
/*
/*
x^16 + x^12 + x^5 + 1
/* CHECK
/*
0xE5CC This is the checksum for the ascii string "123456789"
/* EXAMPLE
/* http://www.zorc.breitbandkatze.de/crc.html
*=======================================================================*/
#define crc_poly 0x1021
unsigned int crc_ccitt16 (unsigned char *inbuffer) {
unsigned int crc_checksum = 0xffff;
unsigned char ch;
char i,xor_flag;
while ( *inbuffer!=0)
{
ch = *inbuffer++;
for(i=0; i<8; i++)
{
xor_flag=(crc_checksum & 0x8000)? 1:0;
crc_checksum = crc_checksum << 1;
if (ch & 0x80) crc_checksum++;
if (xor_flag) crc_checksum = crc_checksum ^ crc_poly;
ch = ch << 1;
must termined by 0x00
// Polynome du CRC-CCITT-16Bits
16
», vous permet aussi de calculer le mot
Page 15