#include<stdio.h>
#include<ctype.h>
#include<string.h>
int power(int,int);
void hamming();
int a[50],n;
int main()
{
char str[20];
int i,j,as,q,arr[10],k;
printf("Enter any string..");
scanf("%s",str);
n=0;
printf("\n\n String in binary..\n\n");
for(j=0;str[j];j++)
{
i=0;
as=toascii(str[j]);
q=as;
while(q!=1)
{
arr[i++]=q%2;
q/=2;
}
arr[i++]=1;
for(k=i-1;k>=0;k--)
a[n++]=arr[k];
}
printf("\n Before adding checkbits..\n");
hamming();
return 0;
}
void hamming()
{
int h[10][11],i,j;
int len=n/7,no=0,c=0,k;
int index[4][5]={
{3,5,7,9,11}, {3,6,7,10,11}, {5,6,7,0,0}, {9,10,11,0,0}
};
int p[4]={1,2,4,8};
for(i=0;i<len;i++)
{
for(j=1;j<=11;j++)
{
if(j!=1 && j!=2 && j!=4 && j!=8)
h[i][j]=a[no++];
else
h[i][j]=0;
}
}
for(i=0;i<len;i++)
{
printf("\n");
for(j=1;j<=11;j++)
{
if(j!=1 && j!=2 && j!=4 && j!=8)
printf(" %d",h[i][j]);
}
}
for(i=0;i<len;i++)
{
for(k=0;k<4;k++)
{
for(j=0;j<5;j++)
{
if(index[k][j]!=0)
h[i][p[k]]=h[i][p[k]] ^ h[i][index[k][j]];
}
}
}
printf("\n\n CodeWords \n");
for(i=1;i<=11;i++)
printf(" %d",i);
printf("\n ---------------------------------\n");
for(i=0;i<len;i++)
{
printf("\n");
for(j=1;j<=11;j++)
printf(" %d",h[i][j]);
}
printf("\n");
}
int power(int n,int c)
{
int i,p=1;
for(i=1;i<=c;i++)
p=2*p;
return p;
}
0 comments:
Post a Comment