Skip to content
This repository was archived by the owner on Oct 3, 2022. It is now read-only.

Commit

Permalink
Refactored the repo
Browse files Browse the repository at this point in the history
  • Loading branch information
stutimongia2024 committed Oct 2, 2021
1 parent cedf712 commit 55b837e
Show file tree
Hide file tree
Showing 53 changed files with 1,398 additions and 1,398 deletions.
334 changes: 167 additions & 167 deletions Checksum.c → c/Checksum.c
Original file line number Diff line number Diff line change
@@ -1,167 +1,167 @@
#include<stdio.h>
#include<string.h>

int l,k,n;

void bsum(char a[],char b[])
{
int i,j,length=k;
char sum[length];
char carry='0';

for(i=length-1;i>=0;i--)
{
if(a[i]=='0' && b[i]=='0' && carry=='0')
{
b[i]='0';
carry='0';
}
else if(a[i]=='0' && b[i]=='0' && carry=='1')
{
b[i]='1';
carry='0';

}
else if(a[i]=='0' && b[i]=='1' && carry=='0')
{
b[i]='1';
carry='0';

}
else if(a[i]=='0' && b[i]=='1' && carry=='1')
{
b[i]='0';
carry='1';

}
else if(a[i]=='1' && b[i]=='0' && carry=='0')
{
b[i]='1';
carry='0';

}
else if(a[i]=='1' && b[i]=='0' && carry=='1')
{
b[i]='0';
carry='1';

}
else if(a[i]=='1' && b[i]=='1' && carry=='0')
{
b[i]='0';
carry='1';

}
else if(a[i]=='1' && b[i]=='1' && carry=='1')
{
b[i]='1';
carry='1';

}
else
break;
}
if(carry=='1'){
char temp[length];
for(j=0;j<length-1;j++)
temp[j] = '0';
temp[j] = '1';
bsum(temp,b);
}
return;

}

int main()
{

int i,j,x=0;
printf("Enter the length of the data: ");
scanf("%d",&l);
char data[l],rdata[l];
printf("\nEnter the data to be transmitted: ");
scanf("%s",&data);
printf("\nEnter the length of one segment: ");
scanf("%d",&k);
n = l/k;
char segment[n][k];

//Dividing the data into segments
for(i=0;i<n;i++)
for(j=0;j<k;j++)
segment[i][j] = data[x++];

//Adding the segments one by one
char a[k],b[k],c[k],d[k];

for(i=0;i<n-1;i++){
for(j=0;j<k;j++){
a[j] = segment[i][j];
b[j] = segment[i+1][j];
}
bsum(a,b);
for(j=0;j<k;j++)
segment[i+1][j] = b[j];
}

//Taking the complement of the sum
for(j=0;j<k;j++)
{
if(b[j]=='0')
b[j] = '1';
else
b[j] = '0';
}
printf("\n||>> Checksum : %s <<||",b);

printf("\n\n\nEnter the received data: ");
scanf("%s",&rdata);

//Dividing the data into segments
x=0;
for(i=0;i<n;i++)
for(j=0;j<k;j++)
segment[i][j] = rdata[x++];


for(i=0;i<n-1;i++){
for(j=0;j<k;j++){
c[j] = segment[i][j];
d[j] = segment[i+1][j];
}
bsum(c,d);
for(j=0;j<k;j++)
segment[i+1][j] = d[j];
}
bsum(b,d);
for(i=0;i<k;i++)
{
if(d[i]=='0')
d[i] = '1';
else
d[i] = '0';
}
int checker=0;
printf("Checksum: ");
for(i=0;i<k;i++){
printf("%c",d[i]);
if(d[i]=='1')
checker=1;
}

if(checker)
printf("\n||>> Error in data transmission! <<||\n");
else
printf("\n||>> Data transmission sussessful! <<||\n");
}










#include<stdio.h>
#include<string.h>

int l,k,n;

void bsum(char a[],char b[])
{
int i,j,length=k;
char sum[length];
char carry='0';

for(i=length-1;i>=0;i--)
{
if(a[i]=='0' && b[i]=='0' && carry=='0')
{
b[i]='0';
carry='0';
}
else if(a[i]=='0' && b[i]=='0' && carry=='1')
{
b[i]='1';
carry='0';

}
else if(a[i]=='0' && b[i]=='1' && carry=='0')
{
b[i]='1';
carry='0';

}
else if(a[i]=='0' && b[i]=='1' && carry=='1')
{
b[i]='0';
carry='1';

}
else if(a[i]=='1' && b[i]=='0' && carry=='0')
{
b[i]='1';
carry='0';

}
else if(a[i]=='1' && b[i]=='0' && carry=='1')
{
b[i]='0';
carry='1';

}
else if(a[i]=='1' && b[i]=='1' && carry=='0')
{
b[i]='0';
carry='1';

}
else if(a[i]=='1' && b[i]=='1' && carry=='1')
{
b[i]='1';
carry='1';

}
else
break;
}
if(carry=='1'){
char temp[length];
for(j=0;j<length-1;j++)
temp[j] = '0';
temp[j] = '1';
bsum(temp,b);
}
return;

}

int main()
{

int i,j,x=0;
printf("Enter the length of the data: ");
scanf("%d",&l);
char data[l],rdata[l];
printf("\nEnter the data to be transmitted: ");
scanf("%s",&data);
printf("\nEnter the length of one segment: ");
scanf("%d",&k);
n = l/k;
char segment[n][k];

//Dividing the data into segments
for(i=0;i<n;i++)
for(j=0;j<k;j++)
segment[i][j] = data[x++];

//Adding the segments one by one
char a[k],b[k],c[k],d[k];

for(i=0;i<n-1;i++){
for(j=0;j<k;j++){
a[j] = segment[i][j];
b[j] = segment[i+1][j];
}
bsum(a,b);
for(j=0;j<k;j++)
segment[i+1][j] = b[j];
}

//Taking the complement of the sum
for(j=0;j<k;j++)
{
if(b[j]=='0')
b[j] = '1';
else
b[j] = '0';
}
printf("\n||>> Checksum : %s <<||",b);

printf("\n\n\nEnter the received data: ");
scanf("%s",&rdata);

//Dividing the data into segments
x=0;
for(i=0;i<n;i++)
for(j=0;j<k;j++)
segment[i][j] = rdata[x++];


for(i=0;i<n-1;i++){
for(j=0;j<k;j++){
c[j] = segment[i][j];
d[j] = segment[i+1][j];
}
bsum(c,d);
for(j=0;j<k;j++)
segment[i+1][j] = d[j];
}
bsum(b,d);
for(i=0;i<k;i++)
{
if(d[i]=='0')
d[i] = '1';
else
d[i] = '0';
}
int checker=0;
printf("Checksum: ");
for(i=0;i<k;i++){
printf("%c",d[i]);
if(d[i]=='1')
checker=1;
}

if(checker)
printf("\n||>> Error in data transmission! <<||\n");
else
printf("\n||>> Data transmission sussessful! <<||\n");
}











Loading

0 comments on commit 55b837e

Please sign in to comment.