import java.io.*;
import java.util.*;
class Crc
{
public char find(char c,char d)
{
if(c=='0'&&d=='0')
return '0';
else if(c=='0'&&d=='1')
return '1';
else if(c=='1'&&d=='0')
return '1';
else
return '0';
}
public static void main(String[] args)throws IOException
{
String s1;
Scanner p=new Scanner(System.in);
System.out.println("enter the original data bits");
s1=p.next();
int l1=s1.length();
System.out.println("menu\n1.crc-12\n2.crc-16");
System.out.println("enter the choice");
int ch=p.nextInt();
String s2="";
if(ch==1)
{
s2="000000000000";
}
else if(ch==2)
{
s2="0000000000000000000";
}
int l2=s2.length();
System.out.println("enter the polynomial coefficient");
String s3=p.next();
int l3=s3.length();
String s4="";
s4=s1+s2;
int l4=s4.length();
int i,j,m;
char a[]=new char[l4];
for(i=0;i<l4;i++)
{
a[i]=s4.charAt(i);
}
char b[]=new char[l3];
Crc cr=new Crc();
char temp[]=new char[100];
for(i=0;i<l3;i++)
{
temp[i]=cr.find(a[i],b[i]);
}
for(i=0;i<l4-l3;i++)
{
for(j=0;j<l3-1;j++)
{
temp[i]=temp[j+1];
}
temp[j]=a[l3+1];
if(temp[0]=='0')
{
for(m=0;m<l3;m++)
{
temp[m]=cr.find(temp[m],'0');
}
}
else
{
for(m=0;m<l3;m++)
{
temp[m]=cr.find(temp[m],b[m]);
}
}
}
System.out.println("transmitted frame:");
for(i=1,j=1;i<l4;i++)
{
a[i]=temp[j];
j++;
}
for(i=0;i<l4;i++)
{
System.out.print(+a[i]);
}
for(i=0;i<l4-l3;i++)
{
for(j=0;j<l3-1;j++)
{
temp[i]=cr.find(a[i],b[i]);
}
temp[j]=a[l3+1];
if(temp[0]=='0')
{
for(m=0;m<l3;m++)
{
temp[m]=cr.find(temp[m],'0');
}
}
else
{
for(m=0;m<l3;m++)
{
temp[m]=cr.find(temp[m],b[m]);
}
}
}
int count=0;
for(i=0;i<l3;i++)
if(temp[i]=='0')
count++;
if(count==l3)
System.out.println("\ntransmitted code is error free");
else
System.out.println("\n it is an error");
}
}
import java.util.*;
class Crc
{
public char find(char c,char d)
{
if(c=='0'&&d=='0')
return '0';
else if(c=='0'&&d=='1')
return '1';
else if(c=='1'&&d=='0')
return '1';
else
return '0';
}
public static void main(String[] args)throws IOException
{
String s1;
Scanner p=new Scanner(System.in);
System.out.println("enter the original data bits");
s1=p.next();
int l1=s1.length();
System.out.println("menu\n1.crc-12\n2.crc-16");
System.out.println("enter the choice");
int ch=p.nextInt();
String s2="";
if(ch==1)
{
s2="000000000000";
}
else if(ch==2)
{
s2="0000000000000000000";
}
int l2=s2.length();
System.out.println("enter the polynomial coefficient");
String s3=p.next();
int l3=s3.length();
String s4="";
s4=s1+s2;
int l4=s4.length();
int i,j,m;
char a[]=new char[l4];
for(i=0;i<l4;i++)
{
a[i]=s4.charAt(i);
}
char b[]=new char[l3];
Crc cr=new Crc();
char temp[]=new char[100];
for(i=0;i<l3;i++)
{
temp[i]=cr.find(a[i],b[i]);
}
for(i=0;i<l4-l3;i++)
{
for(j=0;j<l3-1;j++)
{
temp[i]=temp[j+1];
}
temp[j]=a[l3+1];
if(temp[0]=='0')
{
for(m=0;m<l3;m++)
{
temp[m]=cr.find(temp[m],'0');
}
}
else
{
for(m=0;m<l3;m++)
{
temp[m]=cr.find(temp[m],b[m]);
}
}
}
System.out.println("transmitted frame:");
for(i=1,j=1;i<l4;i++)
{
a[i]=temp[j];
j++;
}
for(i=0;i<l4;i++)
{
System.out.print(+a[i]);
}
for(i=0;i<l4-l3;i++)
{
for(j=0;j<l3-1;j++)
{
temp[i]=cr.find(a[i],b[i]);
}
temp[j]=a[l3+1];
if(temp[0]=='0')
{
for(m=0;m<l3;m++)
{
temp[m]=cr.find(temp[m],'0');
}
}
else
{
for(m=0;m<l3;m++)
{
temp[m]=cr.find(temp[m],b[m]);
}
}
}
int count=0;
for(i=0;i<l3;i++)
if(temp[i]=='0')
count++;
if(count==l3)
System.out.println("\ntransmitted code is error free");
else
System.out.println("\n it is an error");
}
}