CRC16 Calculator using JAVA

           CRC codes are numerously used fro error checking purposes. So many times working around Embedded Devices you will find CRC used in different communication protocols. So guys here i have written a piece of code to generate CRC16 using provid
ed packets in JAVA.

CODE:

package crcCalculator;
public class calculateCrc16 {
long hb_CRC;
long lb_CRC;
public long getHCrc()// Returns High byte of CRC
{
return this.hb_CRC;
}
public long getLCrc()// Returns Low byte of CRC
{
return this.lb_CRC;
}
public static void main(String[] args)

{
char[] buf={(char)1,(char)4,(char)4,(char)0,(char)1,(char)46};// Packets for which //CRC is to be calculated
calculateCrc16 c16=new calculateCrc16();
c16.CalculateCRC16(buf);
System.out.println( c16.getHCrc()+" "+c16.getLCrc());
}
public void CalculateCRC16(char[] buf)
{
long crc = 0xFFFF;
for (int pos = 0; pos < buf.length; pos++) {
crc ^= (long)buf[pos];
for (int i = 8; i != 0; i--)
{
if ((crc & 0x0001) != 0)
{
crc >>= 1;
crc ^= 0xA001;
}
else 
            crc >>= 1;                    
}
}
lb_CRC= (crc & 65280)>>8;
hb_CRC= (crc & 255);
}
}
Bikash Panda
Catch Me On

Bikash Panda

Blogger / Embedded System Developer at WeArGenius
A techie, tinkerer and tech lover, who loves to blog and feels everyone can learn tech provided they have the right attitude towards learning and passion. By profession, I am an IOT developer working in Smart Home/ Smart Grid domain.
Bikash Panda
Catch Me On

Bikash Panda

A techie, tinkerer and tech lover, who loves to blog and feels everyone can learn tech provided they have the right attitude towards learning and passion. By profession, I am an IOT developer working in Smart Home/ Smart Grid domain.