public class 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());
// }
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。