Tuesday, March 8, 2011

CRC

#include<stdio.h>
#include<conio.h>
#include<math.h>
int div[7],d[4],rec[7],i,n=0,k=0,flag=0,rem;
int main()
{
printf("Enter the 4 bit div:\n");
for(i=0;i<4;i++) 

scanf("%d",&div[i]);
printf("\nEnter the 4 bit data:\n");
for(i=0;i<4;i++) 
scanf("%d",&d[i]);
printf("\nEnter the recieved bit:\n");
for(i=0;i<7;i++) 
scanf("%d",&rec[i]); for(i=6;i>=0;i--)
n=n+div[i]*pow(2,i%6);
for(i=3;i>=0;i--)
k=k+d[i]*pow(2,i%3);
rem=n%k;
i=4;
while(rem!=0)
{
div[i]=rem%2;
rem=rem/2;
i++;
}
printf("\n");
for(i=0;i<7;i++)
printf("%d\t",div[i]);
for(i=0;i<7;i++)
{
if(rec[i]!=div[i])
{
flag=1;
break;
}
}
if(flag==0)
printf("\nThe obtained bit is correct!");
else
printf("\nThe obtained bit is incorrect!");
getch();
}