Welcome to my blog, enjoy reading.

Saturday, May 1, 2010

Bit stuffing of data using C

#include< stdio.h>
#include< conio.h>
#include< string.h>
void main()
{
    int i,j,a=0;
    char sdata[17],stuff[40],rdata[17];
    clrscr();
    printf("Enter the data in the form of 16 bits     : ");
    gets(sdata);
    printf("\nSender frame                              : ");
    puts(sdata);
    for(i=0,j=0;j <16;j++)
    {
        if(sdata[j]=='1')
        {
            a=a+1;
            if((a==5)&&(sdata[j+1]=='0'))
            {
                stuff[i]=sdata[j];
                i++;
                stuff[i]='0';
                a=0;
                i++;
            }
            else if(a==6)
            {
                stuff[i]='0';
                a=0;
                i++;
                j--;
            }
            else
            {
                stuff[i]=sdata[j];
                i++;
            }
        }
        else
        {
            stuff[i]=sdata[j];
            i++;
            a=0;
        }
    }
    stuff[i]='\0';
    printf("\nSender frame with bit stuffed             : ");
    puts(stuff);
    a=0;
    i=0;
    for(j=0;stuff[j]!='\0';j++)
    {
        if(stuff[j]=='1')
        {
            a=a+1;
            if(a==5)
            {
                a=0;
                rdata[i]=stuff[j];
                j++;
                i++;
            }
            else
            {
                rdata[i]=stuff[j];
                i++;
            }
        }
        else
        {
            a=0;
            rdata[i]=stuff[j];
            i++;
        }
    }
    rdata[i]='\0';
    printf("\nThe reciever data  without stuffed bit is : ");
    puts(rdata);
    if(strcmp(sdata,rdata)==0)
    printf("\nTransmission successful");
    else
    printf("\nTransmission error");
    getch();
}

0 comments:

Post a Comment