物联网 服务器需要检验设备传输的数据,设备c语言写的,CRC8 校验多项式为 x8+x2+x+1,找了百度,必应。也没有找到java CRC8 多项式 x8+x2+x+1的实现,能找到的都是x8+x5+x4+1的,后转google,费了些功夫不过还好找到了。不说了,上代码。
package com.smartsocket.utils;
/**
*
*
* @author zs
*/
public class CRC8Util {
/**
* CRC8 校验 多项式 x8+x2+x+1
* @param b
* @param off
* @param len
* @return
*/
public static byte CRC8Check(final byte[] b, final int off, final int len){
byte result=0x00;
for (int i = 0; i < len; i++) {
result = CHECKSUM_TABLE[(result ^ (b[i + off] & 0xFF) ) & 0xFF];
}
return (byte) (result & 0xFFL);
}
private final static byte[] CHECKSUM_TABLE = { (byte) 0x00, (byte) 0x07, (byte) 0x0e, (byte) 0x09, (byte) 0x1c, (byte) 0x1b,
(byte) 0x12, (byte) 0x15, (byte) 0x38, (byte) 0x3f, (byte)

该博客分享了如何在Java中实现CRC8校验,特别是针对多项式x8+x2+x+1的校验方法。博主在搜索中未找到直接适用的实现,最终在Google上找到解决方案并提供了完整的CRC8校验代码。
最低0.47元/天 解锁文章
2万+

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



