CRC Program in C
CRC Program in C
// Include headers
#include<stdio.h>
#include<string.h>
#define N strlen(gen_poly)
char data[28];
// CRC value
char check_value[28];
// generator polynomial
char gen_poly[10];
// variables
int data_length,i,j;
void XOR(){
void receiver(){
printf("\n-----------------------------\n");
crc();
if(i<N-1)
printf("\nError detected\n\n");
else
void crc(){
// initializing check_value
for(i=0;i<N;i++)
check_value[i]=data[i];
do{
if(check_value[0]=='1')
XOR();
for(j=0;j<N-1;j++)
check_value[j]=check_value[j+1];
check_value[j]=data[i++];
}while(i<=data_length+N-1);
}
int main()
scanf("%s",data);
scanf("%s",gen_poly);
data_length=strlen(data);
for(i=data_length;i<data_length+N-1;i++)
data[i]='0';
printf("\n----------------------------------------");
printf("\n----------------------------------------");
crc();
for(i=data_length;i<data_length+N-1;i++)
data[i]=check_value[i-data_length];
printf("\n----------------------------------------");
printf("\n----------------------------------------\n");
// Calling the receiver function to check errors
receiver();
return 0;
OUTPUT
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
-----------------------------
No error detected