java CRC8
private int crc = 0; public void update(final byte[] input, final int offset, final int len) { for (int i = 0; i < len; i++) { update(input[offset + i]); } } public void update(final byte[] input) { update(input, 0, input.length); } private final void update(final byte b) { crc ^= b; for (int j=0;j<8;j++){ if ((crc & 0x01) != 0) crc = (crc >> 1) ^ 0x8c; else crc = crc >> 1; } } public void update(final int b) { update((byte) b); } public int getValue() { return (crc & 0xFF); } public void reset() { crc = 0; }
// /**
// * Test
// */
// public static void main(String[] args) {
// CRC8 crc = new CRC8();
// crc.reset();
// crc.update("test".getBytes());
// System.out.println("181=" + crc.getValue());
// crc.reset();
// crc.update("hello world".getBytes());
// System.out.println("59=" + crc.getValue());
// }