Search This Blog

Monday 29 February 2016

CRC Error Detection (Dynamic)

#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]);
    }
}
}


No comments:

Post a Comment