private static final int POLYNOMIAL = 0x1021; // CRC-16-XMODEM 标准多项式
private static final int INITIAL = 0x0000; // 初始值
/**
* CRC-16-XMODEM校验
* @param bytes 待校验的值
* @return crc校验码
*/
public static int calculateCRC16XMODEM(byte[] bytes) {
int crc = INITIAL;
for (byte b : bytes) {
crc ^= (b & 0xFF) << 8; // XOR with byte value
for (int i = 0; i < 8; i++) {
if ((crc & 0x8000) != 0) {
crc = (crc << 1) ^ POLYNOMIAL;
} else {
crc <<= 1;
}
}
}
return crc & 0xFFFF;
}
java实现CRC-16-XMODEM校验
最新推荐文章于 2023-10-18 16:35:47 发布
本文详细介绍了CRC-16-XMODEM校验算法的Java实现,包括使用标准多项式和初始值,以及对给定字节数组进行CRC校验的步骤。
412

被折叠的 条评论
为什么被折叠?



