Wednesday, September 29, 2010

Checksum

#include<stdio.h>
#include<conio.h>
#include<math.h>
int i,a[8],b[8];
int ans,num[5],j,k,tot,carry;
void binary(int);
int check1sum();
void main()
{
int sender, receiver;
clrscr();
printf("\n Enter five 4-digit number: ");
for(i=0,tot=0;i<5;i++)
{
scanf("%d",&num[i]);
tot=tot+num[i];
}
printf("\nTotal= %d",tot);
binary(tot);
sender=check1sum();
printf("\n SENDER=%d",sender);

printf("\n Data Sent is \n");
for(i=0,tot=0;i<5;i++)
printf("\t%d",num[i]);
printf("\t%d",ans);

printf("\n At receiver side\n");
for(i=0,tot=0;i<5;i++)
{
tot=tot+num[i];
}
ans=tot+ans;
printf("\n Answer=%d",ans);
binary(ans);
sender=check1sum();
printf("\n RECEIVER=%d",sender);
getch();
}

void binary(int n)
{
i=0;
while(n!=0)
{
a[i]=n%2;
n=n/2;
i++;
}
}

int check1sum()
{
for(i=0,j=3,carry=0;i<4,j>=0;i++,j--)
{
ans=carry+a[i]+a[i+4];
if(ans==3)
{
carry=1;
b[j]=1;
}
if(ans==2)
{
carry=1;
b[j]=0;
}
if(ans==1)
{
carry=0;
b[j]=1;
}
if(ans==0)
{
carry=0;
b[j]=0;
}
}
printf("\n\n\n\n CHECKSUM\n\n\n");
for(i=0;i<4;i++)
printf("\t%d",b[i]);

for(i=0;i<4;i++)
{
if(b[i]==0)
b[i]=1;
else
b[i]=0;
}

for(i=0,ans=0;i<4;i++)
ans=ans+pow(2,3-i)*b[i];
return(ans);
}

No comments:

Post a Comment