java-org.hwo/src/org/hwo/ChkSum.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);
}
}