java实现crc校验

 public int checkCrc(byte[] inBuf, int startIdx, int endIdx) {

        try {
            int wCRCin = 0x0000;
            int wCPoly = 0xA001;
            for (int i = startIdx; i < endIdx; i++) {
                wCRCin ^= ((int) inBuf[i] & 0x00ff);
                for (int j = 0; j < 8; j++) {
                    if ((wCRCin & 0x0001) != 0) {
                        wCRCin >>= 1;
                        wCRCin ^= wCPoly;
                    } else {
                        wCRCin >>= 1;
                    }
                }
            }
            wCRCin ^= 0x0000;
            return wCRCin;
        } catch (Exception ex) {
            log.error("数据解析CRC校验错误,ex:{0}", ex);
        }
        return 0;
    }
posted @ 2024-03-27 16:09  qiutian-hao  阅读(119)  评论(0编辑  收藏  举报