−17−
Example1 )C programming
/***** CRC‑16 PROGRAM *****/
#include <stdio.h>
#include <conio.h>
void main(void)
{
unsigned int
iLoopCnt;
unsigned short usData;
unsigned short usCrcData;
unsigned short usErrChkData;
int
iDummy;
usCrcData = 0xffff;
printf("Hex DATA ([q] = END) >¥n");
while( scanf("%x",&usData) != 0 ){
usCrcData = usData ^ usCrcData;
for( iLoopCnt = 0 ; iLoopCnt < 8 ; i+ ){
if( usCrcData & 0x0001 ){
usCrcData = usCrcData >> 1;
usCrcData = usCrcData ^ 0xa001;
}else
usCrcData = usCrcData >> 1;
}
}
}
printf( "CRC‑16 DATA = %xH ¥n", usCrcData );
usErrChkData = ( usCrcData >> 8) │ ( usCrcData << 8 );
printf( "CRC‑16 ENDIAN DATA = %xH", usErrChkData );
iDummy = getch();
}