rendered paste body#include<stdio.h>
#include<string.h>
short int poly = 0x1021;
short int calc(short int aug_msg,short int rem);
int main()
{
char str[20];
int len;
short int rem=0,i=0;
printf("Enter the message : ");
scanf("%s",str);
len = strlen(str);
str[len] = 0;
str[len+1] = 0;
str[len+2] = '\0';
while(i< (len+2))
{
rem = calc(str[i],rem);
i++;
}
printf("CRC calculated : %x\n",rem);
return 0;
}
short int calc(short int aug_msg,short int rem)
{
int xor_flag = 0,i=0;
aug_msg = aug_msg << 8;
while(i<8)
{
if( rem & 0x8000)
{
xor_flag = 1;
}
else
{
xor_flag= 0;
}
rem = rem << 1;
if( aug_msg & 0x8000)
{
rem++;
}
aug_msg = aug_msg << 1;
if(xor_flag)
rem = rem ^ poly;
i++;
}
return rem;
}