You are on page 1of 4

Aim: To write a program in C++ to implement checksum method

#include<iostream.h>
void main()
{
int cy=0,i;
int data1[8];
int data2[8];
int checksum[9];
int final[9];
cout<<"Enter the first data word"<<endl;
for(i=0;i<8;i++)
cin>>data1[i];
cout<<"enter the 2nd data word"<<endl;
for(i=0;i<8;i++)
cin>>data2[i];
for(i=7;i>=0;i--)
{
if(data1[i]==0&&data2[i]==0)
{
if(cy==0)
checksum[i]=0;
else
checksum[i]=1;
cy=0;
}
else if((data1[i]==0&&data2[i]==1)||(data1[i]==1&&data2[i]==0))
{
if(cy==0)
{
checksum[i]=1;
cy=0;
}
else
{
checksum[i]=0;
cy=1;
}
}
else
{
if(cy==0)

checksum[i]=0;
else
checksum[i]=1;
cy=1;
}
}
for(i=7;i>=0;i--)
{
if(checksum[i]==0)
checksum[i]=1;
else
checksum[i]=0;
}
int t=7;
if(cy==1)
{
while(cy!=0)
{
if(checksum[t]==1)
{
checksum[t--]=0;
cy=1;
}
else
{
checksum[t--]=1;
cy=0;
}
}
}
cout<<"AT SENDER SITE"<<endl<<endl;
cout<<"DATA WORD 1="<<"\t";
for(i=0;i<8;i++)
cout<<data1[i]<<"\t";
cout<<endl;
cout<<"DATA WORD 2="<<"\t";
for(i=0;i<8;i++)
cout<<data2[i]<<"\t";
cout<<endl;
cout<<"CHECKSUM="<<"\t";
for(i=0;i<8;i++)
cout<<checksum[i]<<"\t";
cout<<endl;
cy=0;

for(i=7;i>=0;i--)
{
if(data1[i]==0&&data2[i]==0&&checksum[i]==0)
{
if(cy==0)
final[i]=0;
else
final[i]=1;
cy=0;
}
else
if((data1[i]==0&&data2[i]==1&&checksum[i]==0)||(data1[i]==1&&data2[i]==0&&checksu
m[i]==0)||(data1[i]==0&&data2[i]==0&&checksum[i]==1))
{
if(cy==0)
{
final[i]=1;
cy=0;
}
else
{
final[i]=0;
cy=1;
}
}
else
if((data1[i]==0&&data2[i]==1&&checksum[i]==1)||(data1[i]==1&&data2[i]==0&&checksu
m[i]==1)||(data1[i]==1&&data2[i]==1&&checksum[i]==0))
{
if(cy==0)
{
final[i]=0;
cy=1;
}
else
{
final[i]=1;
cy=1;
}
}
else
{
if(cy==0)
{

final[i]=1;
cy=1;
}
else
{
final[i]=0;
cy=1;
}
}
}
for(i=7;i>=0;i--)
{
if(final[i]==0)
final[i]=1;
else
final[i]=0;
}
for(i=7;i>=0;i--)
{
if(final[i]==1)
break;
}
cout<<endl<<"AT RECEIVER SITE"<<endl<<endl;
for(i=0;i<8;i++)
cout<<final[i]<<"\t";
cout<<endl;
if(i==8)
cout<<"The received data is error free";
else
cout<<"The received data is not correct!";
}

Output:
Enter the first data word
10101001
Enter the 2nd data word
00111001
AT SENDER SITE
DATA WORD 1= 1 0 1 0 1 0 0 1
DATA WORD 2= 0 0 1 0 1 0 0 1
CHECKSUM =
0 0 0 1 1 1 0 1
AT RECEIVER SITE
0 0 0 0 0 0 0 0
The received data is correct.

You might also like