Wednesday, 1 April 2015

Hamming_code

HAMMING CODE

 #include<stdio.h>  
 #include<conio.h>  
 #include<math.h>  
 void main()  
 {  
      int a[20],b[20],c[20],d[20],i,k,m,f,n,j,r,p,x,y,z,ch,key,q,v;  
      clrscr();  
      system("clear");  
      printf("\nEnter Length of Data word : ");  
      scanf("%d",&k);  
      printf("\nEnter The Data word : ");  
      for(i=1; i<=k; i++)  
      {  
           scanf("%d",&a[i]);  
      }  
      m=1;  
      while((k+m+1)>=pow(2,m))  
      {  
           m++;  
      }  
      printf("\nValue of M is : %d",m);  
      n=k+m;  
      j=1;  
      r=0;  
      for(i=1 ; i<=n;i++)  
      {  
           p = pow(2,r);  
           if(i==p)  
           {  
                b[i]=0;  
                r++;  
           }  
           else  
           {  
                b[i]=a[j];  
                j++;  
           }  
      }  
      printf("\nIntermediate Code Word is : \n");  
      for(i=1; i<=n; i++)  
           printf("%d",b[i]);  
      p=0;  
      for(i=1; i<=m; i++)  
      {  
           x=pow(2,p);  
           r=1;  
           for(j=x; j<=n; j=j+(x*2))  
           {  
                for(y=j; y<(j+x); y++)  
                {  
                     c[r] = b[y];  
                     r++;  
                }  
           }  
           z=0;  
           for(y=1; y<=(r-1); y++)  
           {  
                if(c[y]==1) z++;  
           }  
           if(z%2==0)  
                b[x]=0;  
           else  
                b[x]=1;  
           for(y=1; y<=20; y++)  
                c[y]=0;  
           p++;  
      }  
      printf("\n\nThe Hamming Code : ");  
      for(i=1; i<=n; i++)  
           printf("%d",b[i]);  
      getch();  
 }  


No comments:

Post a Comment