0% found this document useful (0 votes)
33 views2 pages

Java CRC Error Detection Program

Uploaded by

Saniya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views2 pages

Java CRC Error Detection Program

Uploaded by

Saniya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

package crcdect;

import [Link].*;
public class crcdec {

public static void main(String[] args) throws IOException {


BufferedReader br = new BufferedReader(new
InputStreamReader([Link]));

[Link]("Enter number of data bits: ");


int data_bits = [Link]([Link]());
int[] data = new int[data_bits];

[Link]("Enter data bits separated by spaces (0 or 1):");


String[] bits = [Link]().trim().split("\\s+");
for (int i = 0; i < data_bits; i++) {
data[i] = [Link](bits[i]);
}

int divisor_bits = 17;


int[] divisor = new int[]{1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1};

int tot_length = data_bits + divisor_bits - 1;


int[] div = new int[tot_length];
int[] rem = new int[tot_length];
int[] crc = new int[tot_length];

for (int i = 0; i < [Link]; i++)


div[i] = data[i];

[Link]("Dividend after appending 0's: ");


for (int i = 0; i < [Link]; i++)
[Link](div[i]);
[Link]();

for (int j = 0; j < [Link]; j++)


rem[j] = div[j];

rem = divide(divisor, rem);


for (int i = 0; i < [Link]; i++)
crc[i] = div[i] ^ rem[i];

[Link]("CRC code: ");


for (int i = 0; i < [Link]; i++)
[Link](crc[i]);
[Link]();

[Link]("Enter received CRC code separated by spaces:");


String[] receivedBits = [Link]().trim().split("\\s+");
for (int i = 0; i < [Link]; i++)
crc[i] = [Link](receivedBits[i]);

for (int j = 0; j < [Link]; j++)


rem[j] = crc[j];

rem = divide(divisor, rem);

boolean error = false;


for (int i = 0; i < [Link]; i++) {
if (rem[i] != 0) {
error = true;
break;
}
}

if (error)
[Link]("Error detected in received message!");
else
[Link]("No error in received message.");

[Link]("THANK YOU...");
}

static int[] divide(int[] divisor, int[] rem) {


int cur = 0;
while (true) {
for (int i = 0; i < [Link]; i++)
rem[cur + i] = rem[cur + i] ^ divisor[i];

while (cur < [Link] && rem[cur] == 0)


cur++;

if (([Link] - cur) < [Link])


break;
}
return rem;
}
}

You might also like