#include<stdio.h>
int main()
{
int
a[10],d[10],k[10],z[10],i,n,q,x=1,s,m,j;
printf("Enter
Total Data Bits");
scanf("%d",&n);
printf("Enter
Total Divisor Bits");
scanf("%d",&q);
for(i=0;i<n;i++)
{
printf("Enter Data");
scanf("%d",&a[i]);
}
for(i=0;i<q;i++)
{
printf("Enter divisor");
scanf("%d",&d[i]);
}
for(i=0;i<q;i++)
{
printf("Enter 0's for zero
detection");
scanf("%d",&z[i]);
}
printf("\nData
Before Entering temp 0's\n");
for(i=0;i<n;i++)
{
printf("%d",a[i]);
}
s=n+(q-1);
printf("\n");
for(i=n;i<s;i++)
{
printf("Enter 0's ");
scanf("%d",&a[i]);
}
printf("\nData
After Entering temp 0's\n");
for(i=0;i<s;i++)
{
printf("%d",a[i]);
}
i=0;
if(a[i]==1)
{
for(i=0;i<q;i++)
{
if(a[i]==d[i])
{
k[i]=0;
}
else
{
k[i]=1;
}
}
k[i]=a[q];
for(j=0;j<q;j++)
{
k[j]=k[j+1];
}
}
else
{
for(i=0;i<q;i++)
{
if(a[i]==z[i])
{
k[i]=0;
}
else
{
k[i]=1;
}
}
k[i]=a[q];
for(j=0;j<q;j++)
{
k[j]=k[j+1];
}
}
printf("\nK:");
for(i=0;i<q;i++)
{
printf("%d",k[i]);
}
m=q;
do
{
x=x+1;
i=0;
if(k[i]==1)
{
for(i=0;i<q;i++)
{
if(k[i]==d[i])
{
k[i]=0;
}
else
{
k[i]=1;
}
}
m++;
k[i]=a[m];
for(j=0;j<q;j++)
{
k[j]=k[j+1];
}
}
else
{
for(i=0;i<q;i++)
{
if(k[i]==z[i])
{
k[i]=0;
}
else
{
k[i]=1;
}
}
m++;
k[i]=a[m];
for(j=0;j<q;j++)
{
k[j]=k[j+1];
}
}
printf("\nK:");
for(i=0;i<q;i++)
{
printf("%d",k[i]);
}
}
while(x<n);
printf("\nCRC
= ");
if(x==n)
{
for(i=0;i<q-1;i++)
{
printf("%d",k[i]);
}
}
}
}