class crc
{
public static int get_CRC(byte[] buf)
{
int crc = 0;
int i;
for (int index = 0; index != buf.length; ++index) {
for (i = 0x80; i != 0; i >>>= 1) {
if ((crc & 0x8000) != 0) {
crc <<= 1;
crc ^= 0x1021;
} else {
crc <<= 1;
}
if ((buf[index] & i) != 0) {
crc ^= 0x1021;
}
}
}
return crc;
}
public static void main
(String[] args
) {
byte[] buf = {0x31, 0x14, 0x15, (byte)0x92, 0x66};
System.
out.
println(get_CRC
(buf
)); }
}
Y2xhc3MgY3JjCnsKcHVibGljIHN0YXRpYyBpbnQgZ2V0X0NSQyhieXRlW10gYnVmKQp7CglpbnQgY3JjID0gMDsKCWludCBpOwoJZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCAhPSBidWYubGVuZ3RoOyArK2luZGV4KSB7CgkJZm9yIChpID0gMHg4MDsgaSAhPSAwOyBpID4+Pj0gMSkgewoJCQlpZiAoKGNyYyAmIDB4ODAwMCkgIT0gMCkgewoJCQkJY3JjIDw8PSAxOwoJCQkJY3JjIF49IDB4MTAyMTsKCQkJfSBlbHNlIHsKCQkJCWNyYyA8PD0gMTsKCQkJfSAKCQkJaWYgKChidWZbaW5kZXhdICYgaSkgIT0gMCkgewoJCQkJY3JjIF49IDB4MTAyMTsKCQkJfQoJCX0KCX0KCXJldHVybiBjcmM7Cn0KcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKewoJYnl0ZVtdIGJ1ZiA9IHsweDMxLCAweDE0LCAweDE1LCAoYnl0ZSkweDkyLCAweDY2fTsKCVN5c3RlbS5vdXQucHJpbnRsbihnZXRfQ1JDKGJ1ZikpOwp9Cn0=