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); } }