分享

CRC循环校验 java代码实现

 宇宙之窗 2014-04-18
private byte[] FormCrc(byte[] CRC_buf) { // 生成CRC-16校验码,返回的是整型形式的数据
//  System.out.println("**********生成CRC-16校验码");
  byte[] CRC = new byte[2];
  int len = CRC_buf.length;
  int CRC_ReturnValue = 0xffff;
  int i = 0, j, temp;
  while (len-- != 0) {
   temp = CRC_buf[i++] & 0xff;
   CRC_ReturnValue ^= temp;
   // CRC_ReturnValue^=CRC_buf[i++];
   j = 8;
   while (j != 0) {
    if ((CRC_ReturnValue & 0x01) != 0) {
     CRC_ReturnValue = (CRC_ReturnValue >> 1) ^ 0xA001;
    } else {
     CRC_ReturnValue = CRC_ReturnValue >> 1;
    }
    j--;
   }
  }
  CRC[0] = (byte) (CRC_ReturnValue & 0xff);
  CRC[1] = (byte) ((CRC_ReturnValue & 0xff00) >> 8);
  return CRC;
 }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多