Checksum program in c
On-campus and online computer science courses to Learn the basic concepts of Computer Science.This tutorial will cover c ,c++, java, data structure and algorithm,computer graphics,microprocessor,analysis of algorithms,Digital Logic Design and Analysis,computer architecture,computer networks,operating system.
code in C:#include<stdio.h>
char a[100];
int bin[160],sum[100],index,no,i,count,temp[16],k,carry=0,len;
void binary();
void add(int j);
int main()
{
printf("Enter Data length:");
scanf("%d",&len);
printf("Enter Data\n");
scanf("%s",a);
binary( );
for(k=0;k<16.;k++)
temp[k]=bin[k];
for(k=16;k<len*4;k=k+16)
add(k);
printf("\n\n Checksum \n");
for(i=0;i<16;i++)
{
temp[i]= temp[i]==0 ?1:0;
printf("%d",temp[i]);
}
return 0;
}
void binary( )
{
index=3;
for(i=0;i<len;i++)
{
if(a[i]>='0'&&a[i]<='9')
no=a[i]-'0';
if(a[i]>='A'&&a[i]<='F')
no=a[i]-55;
count=0;
k=index;
while(count<4)
{
bin[k--]= no % 2;
no=no/2;
count++;
}
index=index+4;
}
}
void add( int j)
{
for(i=j+15;i>=j;i--)
{
sum[i-j] =(bin[i] + temp[i-j] + carry) % 2;
carry =(bin[i] + temp[i-j] + carry) / 2;
}
if(carry==1)
{ i=j+15;
while(carry!=0)
{
sum[i-j] =(bin[i] + temp[i-j] + carry) % 2;
carry =(bin[i] + temp[i-j] + carry) / 2;
i--;
}
}
for(i=0;i<16;i++)
temp[i]=sum[i];
}
output:-Enter Data length:20 Enter Data 45120731297186301946 Checksum 1110101011010100 --------------------------------

0 comments: