#include #include 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; }