forked from LupusNobilis/java-org.hwo
34 lines
603 B
Java
34 lines
603 B
Java
package org.hwo;
|
|
|
|
import java.nio.ByteBuffer;
|
|
import java.nio.ByteOrder;
|
|
|
|
public class ChkSum {
|
|
|
|
public static short chksum(byte[] buffer)
|
|
{
|
|
return chksum(buffer, 0, buffer.length);
|
|
}
|
|
|
|
public static short chksum(byte[] buffer,int offset,int len)
|
|
{
|
|
int sum = 0,
|
|
xor = 0;
|
|
|
|
for (int n = offset; n < (offset + len); n++)
|
|
{
|
|
sum += buffer[n];
|
|
xor ^= buffer[n];
|
|
}
|
|
|
|
byte[] t = new byte[12];
|
|
ByteBuffer bb = ByteBuffer.wrap(t).order(ByteOrder.LITTLE_ENDIAN);
|
|
bb.putInt(0, sum);
|
|
bb.putInt(4, xor);
|
|
bb.put(8,bb.get(0));
|
|
bb.put(9,bb.get(4));
|
|
|
|
return bb.getShort(8);
|
|
}
|
|
}
|