5

 import java.util.Scanner;

import java.io.*;

public class jCRC4 {


    public static void main(String args[]) {


    Scanner sc = new Scanner(System.in);


    //Input Data Stream

    System.out.print("Enter message bits: ");

    String message = sc.nextLine();

    System.out.print("Enter generator: ");

    String generator = sc.nextLine();

int data[] = new int[message.length() + generator.length() - 1];

int divisor[] = new int[generator.length()];

for(int i=0;i<message.length();i++)

data[i] = Integer.parseInt(message.charAt(i)+"");

for(int i=0;i<generator.length();i++)

divisor[i] = Integer.parseInt(generator.charAt(i)+"");


//Calculation of CRC

for(int i=0;i<message.length();i++)

{

if(data[i]==1) 

for(int j=0;j<divisor.length;j++)

data[i+j] ^= divisor[j]; //a=a^b

}


//Display CRC

System.out.print("The checksum code is: ");

for(int i=0;i<message.length();i++)

data[i] = Integer.parseInt(message.charAt(i)+"");

for(int i=0;i<data.length;i++) 

    System.out.print(data[i]);

System.out.println();


//Check for input CRC code at Receiver side

System.out.print("Enter checksum code: ");

message = sc.nextLine();

System.out.print("Enter generator: ");

generator = sc.nextLine();

data = new int[message.length() + generator.length() - 1];

divisor = new int[generator.length()];

for(int i=0;i<message.length();i++)

data[i] = Integer.parseInt(message.charAt(i)+"");

for(int i=0;i<generator.length();i++)

divisor[i] = Integer.parseInt(generator.charAt(i)+"");


//Calculation of remainder

for(int i=0;i<message.length();i++) {

if(data[i]==1)

for(int j=0;j<divisor.length;j++)

data[i+j] ^= divisor[j];

}


//Display validity of data

boolean valid = true;

for(int i=0;i<data.length;i++)

if(data[i]==1){

valid = false;

break;

}


if(valid==true) 

System.out.println("Data stream is valid");

else 

System.out.println("Data stream is invalid. CRC error occurred.");

}

}


//Execution steps in Terminal

//javac jCRC4.java

//java jCRC4

//Enter message bits: 1101011011

//Enter generator: 10011

//--The checksum code is: 11010110111110

//Enter checksum code: 11010110111110

//Enter generator: 10011

//--Data stream is valid



//java jCRC4

//Enter message bits: 1101011011

//Enter generator: 10011

//--The checksum code is: 11010110111110

//Enter checksum code: 11010110111111

//Enter generator: 10011

//--Data stream is invalid. CRC occured


//check message bits - 100100 and generator bits - 1101

Comments

Popular posts from this blog

6

4

1