Friday, November 9, 2012

84. ERROR DETECTION USING CHECKSUM


//CHECKSUM
import java.util.*;

public class Checksum 
{
static int check[]=new int[4];
static int code[]=new int[12];
public static void exor(int a[], int n)
{
int i,j=0;
for(i=0;i<4;i++)
{
if((a[i]==1 && a[i+4]==1)||(a[i]==0 && a[i+4]==0))
{
check[i]=0;
}
else
{
check[i]=1;
}     
}
for(i=0;i<n;i++)
{
code[i]=a[i];
}
while(j<4)
{
code[i]=check[j];
i++;
j++;
}
}
public static void recexor(int code[],int n)
{
int i,j=0,flag=0;
for(i=0;i<4;i++)
{
if((code[i]==1 && code[i+4]==1)||(code[i]==0 && code[i+4]==0))
{
check[i]=0;
}
else
{
check[i]=1;
}       
}
i=i+4;
while(j<4)
{
if((code[i]==1 && check[j]==0)||(code[i]==0 && check[j]==1))
{
flag=1;
break;
}
i++;
j++;
}
if(flag==1)
{
System.out.println("ERROR PRESENT!");}
else
{
System.out.println("No error!");
}
}

public static void main(String[] args) 
{
int a[]=new int[8];
Scanner sc=new Scanner(System.in);
System.out.println("ENTER THE 8-BIT CODEWORD:");
for(int i=0;i<8;i++)
{
a[i]=sc.nextInt();
}
exor(a,a.length);
System.out.println("CODEWORD SENT:");
for(int i=0;i<12;i++)
{
System.out.print(" "+code[i]);
}
System.out.println("\n\nENTER THE RECEIVED CODEWORD:");
for(int i=0;i<12;i++)
{
code[i]=sc.nextInt();
}
recexor(code,code.length);
}
}