public static byte crc8
(String stringData
) {
int len = stringData.length();
int i = 0;
byte crc = 0x00;
while (len-- > 0) {
byte extract = (byte) stringData.charAt(i++);
for (byte tempI = 8; tempI != 0; tempI--) {
byte sum = (byte) ((crc & 0xFF) ^ (extract & 0xFF));
sum = (byte) ((sum & 0xFF) & 0x01);
crc = (byte) ((crc & 0xFF) >>> 1);
if (sum != 0) {
crc = (byte)((crc & 0xFF) ^ 0x8C);
}
extract = (byte) ((extract & 0xFF) >>> 1);
}
}
return crc;
}
public static void main
(String args
[]) {
byte crc8result = crc8(msg);
System.
out.
println(s1
); // 10000001 String mesgWithCRC
= msg
+ s1
; System.
out.
println(mesgWithCRC
);
byte newCrc8Result = crc8(mesgWithCRC);
String s2
= String.
format("%8s",
Integer.
toBinaryString(newCrc8Result
& 0xFF
)).
replace(' ',
'0'); System.
out.
println(s2
); // 10000001
}
ICAgIHB1YmxpYyBzdGF0aWMgYnl0ZSBjcmM4IChTdHJpbmcgc3RyaW5nRGF0YSkKICAgIHsKICAgICAgICBpbnQgbGVuID0gc3RyaW5nRGF0YS5sZW5ndGgoKTsKICAgICAgICBpbnQgaSA9IDA7CiAgICAgICAgYnl0ZSBjcmMgPSAweDAwOwogICAgICAgIHdoaWxlIChsZW4tLSA+IDApIHsKICAgICAgICAgICAgYnl0ZSBleHRyYWN0ID0gKGJ5dGUpIHN0cmluZ0RhdGEuY2hhckF0KGkrKyk7CiAgICAgICAgICAgIGZvciAoYnl0ZSB0ZW1wSSA9IDg7IHRlbXBJICE9IDA7IHRlbXBJLS0pIHsKICAgICAgICAgICAgICAgIGJ5dGUgc3VtID0gKGJ5dGUpICgoY3JjICYgMHhGRikgXiAoZXh0cmFjdCAmIDB4RkYpKTsKICAgICAgICAgICAgICAgIHN1bSA9IChieXRlKSAoKHN1bSAmIDB4RkYpICYgMHgwMSk7CiAgICAgICAgICAgICAgICBjcmMgPSAoYnl0ZSkgKChjcmMgJiAweEZGKSA+Pj4gMSk7CiAgICAgICAgICAgICAgICBpZiAoc3VtICE9IDApIHsKICAgICAgICAgICAgICAgICAgICBjcmMgPSAoYnl0ZSkoKGNyYyAmIDB4RkYpIF4gMHg4Qyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBleHRyYWN0ID0gKGJ5dGUpICgoZXh0cmFjdCAmIDB4RkYpID4+PiAxKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gY3JjOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmcgYXJnc1tdKQogICAgewogICAgICAgIFN0cmluZyBtc2cgPSAiMTAxMDExMDAxIjsKICAgICAgICBieXRlIGNyYzhyZXN1bHQgPSBjcmM4KG1zZyk7CgogICAgICAgIFN0cmluZyBzMSA9IFN0cmluZy5mb3JtYXQoIiU4cyIsIEludGVnZXIudG9CaW5hcnlTdHJpbmcoY3JjOHJlc3VsdCAmIDB4RkYpKS5yZXBsYWNlKCcgJywgJzAnKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oczEpOyAvLyAxMDAwMDAwMQogICAgICAgIFN0cmluZyBtZXNnV2l0aENSQyA9IG1zZyArIHMxOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihtZXNnV2l0aENSQyk7CgogICAgICAgIGJ5dGUgbmV3Q3JjOFJlc3VsdCA9IGNyYzgobWVzZ1dpdGhDUkMpOwogICAgICAgIFN0cmluZyBzMiA9IFN0cmluZy5mb3JtYXQoIiU4cyIsIEludGVnZXIudG9CaW5hcnlTdHJpbmcobmV3Q3JjOFJlc3VsdCAmIDB4RkYpKS5yZXBsYWNlKCcgJywgJzAnKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oczIpOyAvLyAxMDAwMDAwMQoKICAgIH0K
Main.java:1: error: class, interface, or enum expected
public static byte crc8 (String stringData)
^
Main.java:4: error: class, interface, or enum expected
int i = 0;
^
Main.java:5: error: class, interface, or enum expected
byte crc = 0x00;
^
Main.java:6: error: class, interface, or enum expected
while (len-- > 0) {
^
Main.java:8: error: class, interface, or enum expected
for (byte tempI = 8; tempI != 0; tempI--) {
^
Main.java:8: error: class, interface, or enum expected
for (byte tempI = 8; tempI != 0; tempI--) {
^
Main.java:8: error: class, interface, or enum expected
for (byte tempI = 8; tempI != 0; tempI--) {
^
Main.java:10: error: class, interface, or enum expected
sum = (byte) ((sum & 0xFF) & 0x01);
^
Main.java:11: error: class, interface, or enum expected
crc = (byte) ((crc & 0xFF) >>> 1);
^
Main.java:12: error: class, interface, or enum expected
if (sum != 0) {
^
Main.java:14: error: class, interface, or enum expected
}
^
Main.java:16: error: class, interface, or enum expected
}
^
Main.java:19: error: class, interface, or enum expected
}
^
Main.java:21: error: class, interface, or enum expected
public static void main (String args[])
^
Main.java:24: error: class, interface, or enum expected
byte crc8result = crc8(msg);
^
Main.java:26: error: class, interface, or enum expected
String s1 = String.format("%8s", Integer.toBinaryString(crc8result & 0xFF)).replace(' ', '0');
^
Main.java:27: error: class, interface, or enum expected
System.out.println(s1); // 10000001
^
Main.java:28: error: class, interface, or enum expected
String mesgWithCRC = msg + s1;
^
Main.java:29: error: class, interface, or enum expected
System.out.println(mesgWithCRC);
^
Main.java:31: error: class, interface, or enum expected
byte newCrc8Result = crc8(mesgWithCRC);
^
Main.java:32: error: class, interface, or enum expected
String s2 = String.format("%8s", Integer.toBinaryString(newCrc8Result & 0xFF)).replace(' ', '0');
^
Main.java:33: error: class, interface, or enum expected
System.out.println(s2); // 10000001
^
Main.java:35: error: class, interface, or enum expected
}
^
23 errors