Java code for CRC 16 calculation -


below hex string

string str="01312d0102d6010162000600000918000000000000000000000000007fff00150010004b0100003a200207000004040055516200050e9e000200000000005852324531533156304330000001614b00541e0c07110507320000000000000000000000000500000000000000000406000030313030313033300000000000000000000046300a1d1655000186a0ffff9eaa00000043000000000200000c000c000c000c000d000c000d000c000d000c000d000d000c000c000c000c000d000c000d000d000c000d000d000c000d000d000c000d000d000d000c000d000d000d000e000d000c000d000d000d000d000c000d000d000d000e000d000d000d000c000d000d029e029f02f102ea05300544085a07c1060f040a036404e0072f064804aa040404070510066b067205c304b302c6000d000d000d000e000d000d000e000d000e000d000d000e000d000d000e000d000e000d000e000d000e000d000d0065006300810081025102e001990082001f000e000d000e000d000e000e000d000e000d000e000e001500560062003300480068009000af00ae00ae0214048404670560007e000e000e000e000e000e000f000e000e000e000e000e005501290168000e000e000d000e000e000e000d000e000e000e000d000e000e000d000e000e000d000e000e000d000e000e000d000e000d000e000e000e000d000e000e000d000e000e000d000e000e000d000e000e000e000d000e000e000d000e000e000d000e000e000e000d000e000e000e000d000e000e000e000d000e000e000d000e000e000e000d000e000e000e000d000e000e000e000d000e000e000e000d000e000e000e000d000e000e000d000e000e000d000e000e000e000d000e000d000e000d000e000d000e000d000e000e000d000e000d000d000d000d000d000c000d000d000e000d000d000d000d000d000d000d000e000d000d000e000d000d000e000d000d000d000d000d00e200df00df000f000e000d007300df"; 

and crc : a228 appended above string. want output a228

polynomial used 0xa001

can provide me code calculate crc16

below java code

string str="01312d0102d6010162000600000918000000000000000000000000007fff00150010004b0100003a200207000004040055516200050e9e000200000000005852324531533156304330000001614b00541e0c07110507320000000000000000000000000500000000000000000406000030313030313033300000000000000000000046300a1d1655000186a0ffff9eaa00000043000000000200000c000c000c000c000d000c000d000c000d000c000d000d000c000c000c000c000d000c000d000d000c000d000d000c000d000d000c000d000d000d000c000d000d000d000e000d000c000d000d000d000d000c000d000d000d000e000d000d000d000c000d000d029e029f02f102ea05300544085a07c1060f040a036404e0072f064804aa040404070510066b067205c304b302c6000d000d000d000e000d000d000e000d000e000d000d000e000d000d000e000d000e000d000e000d000e000d000d0065006300810081025102e001990082001f000e000d000e000d000e000e000d000e000d000e000e001500560062003300480068009000af00ae00ae0214048404670560007e000e000e000e000e000e000f000e000e000e000e000e005501290168000e000e000d000e000e000e000d000e000e000e000d000e000e000d000e000e000d000e000e000d000e000e000d000e000d000e000e000e000d000e000e000d000e000e000d000e000e000d000e000e000e000d000e000e000d000e000e000d000e000e000e000d000e000e000e000d000e000e000e000d000e000e000d000e000e000e000d000e000e000e000d000e000e000e000d000e000e000e000d000e000e000e000d000e000e000d000e000e000d000e000e000e000d000e000d000e000d000e000d000e000d000e000e000d000e000d000d000d000d000d000c000d000d000e000d000d000d000d000d000d000d000e000d000d000e000d000d000e000d000d000d000d000d00e200df00df000f000e000d007300df";//a228";      byte arr[] = tobytearray(str);           long polynomial = 0xa001;         long crc = 0xffff;          (byte b : arr)         {             crc ^= b;             (int = 8; != 0; i--)             {                 if ((crc & 0x0001) != 0)                 {                     crc = (crc >> 1) ^ polynomial;                 }                 else                 {                     crc >>= 1;                 }             }         }            system.out.println(crc); 

}

i getting output -56289

your code fine , produce 0xa228 message (with modification below), except have feed right data , display resulting crc correctly.

to feed right data, first need convert string of hexadecimal characters half many binary bytes. give that crc routine.

second, display result in hexadecimal, not decimal.

third, byte signed, crc ^= b & 0xff; avoid sign extension.


Comments

Popular posts from this blog

neo4j - finding mutual friends in a cypher statement starting with three or more persons -

php - How to remove letter in front of the word laravel -

minify - Minimizing css files -