Cyclic redundancy Check
Note : This is for only 4 bit !!!
Example : dataword : 1 0 0 1
divisor : 1 0 1 1
crc : 1 1 0
now if you add 1 1 0 in below example instead of array of zero's then the final ans should be 0 0 0 it means no error otherwise there is error!
CODE:
#include<stdio.h>
int main()
{
int i,j,a[15],b[10],c[10],k,z,zero[4];
zero[0]=0;
zero[1]=0;
zero[2]=0;
printf("\nEnter dataword");
for(i=0;i<4;i++)
{
scanf("%d",&a[i]);
}
printf("\nEnter divisor");
for(j=0;j<4;j++)
{
scanf("%d",&b[j]);
}
if(a[0] == 1)
{
for(k=0;k<4;k++)
{
if(a[k]==b[k])
{
c[k]=0;
}
else
{
c[k]=1;
}
}
c[k]=0;
for(z=0;z<4;z++)
{
c[z]=c[z+1];
}
}else
{
for(k=0;k<4;k++)
{
if(a[k] == zero[k])
{
c[k]=0;
}
else
{
c[k]=1;
}
}
c[k]=0;
for(z=0;z<4;z++)
{
c[z]=c[z+1];
}
}
if(c[0]==1)
{
for(k=0;k<4;k++)
{
if(c[k]==b[k])
{
c[k]=0;
}
else
{
c[k]=1;
}
}
c[k]=0;
for(z=0;z<4;z++)
{
c[z]=c[z+1];
}
}else{
for(k=0;k<4;k++)
{
if(c[k] == zero[k])
{
c[k]=0;
}
else
{
c[k]=1;
}
}
c[k]=0;
for(z=0;z<4;z++)
{
c[z]=c[z+1];
}
}
if(c[0]==1)
{
for(k=0;k<4;k++)
{
if(c[k]==b[k])
{
c[k]=0;
}
else
{
c[k]=1;
}
}
c[k]=0;
for(z=0;z<4;z++)
{
c[z]=c[z+1];
}
}else{
for(k=0;k<4;k++)
{
if(c[k] == zero[k])
{
c[k]=0;
}
else
{
c[k]=1;
}
}
c[k]=0;
for(z=0;z<4;z++)
{
c[z]=c[z+1];
}
}
for(z=0;z<4;z++)
{
c[z]=c[z+1];
}
for(z=0;z<3;z++)
{
printf("%d",c[z]);
}
return 0;
}
enter dataword:
1 0 0 1
enter divisor :
1 0 1 1
crc is : 1 1 0
No comments:
Post a Comment