标题: CRC-16源码 C语言 [打印本页]

作者: oiglvy    时间: 2017-3-7 10:26
标题: CRC-16源码 C语言
  1. #include "stdafx.h"
  2. #include "iostream"

  3. typedef unsigned short ushort;
  4. typedef unsigned char uchar;
  5. using namespace std;
  6. ushort checksum(uchar* ,uchar );   //传字符串,字节数,
  7. int main()
  8. {
  9.         uchar array[3]={0x01,0x02,0x03};
  10.         uchar len=sizeof(array);
  11.         ushort CRC=checksum(array ,len );
  12.     cout<<hex<<CRC<<endl;
  13.         return 0;
  14. }
  15. ushort checksum(uchar* array,uchar len)
  16. {
  17.    ushort CRC=0xFFFF;
  18.    for(uchar i=0;i<len;++i)
  19.    {
  20.            CRC=CRC^(ushort)array[i];
  21.            for(uchar j=0;j<8;++j)
  22.            {
  23.                   
  24.                    if((CRC & 0x0001)==0x0001)
  25.                    {
  26.                            CRC=(CRC>>=1)^0xA001;
  27.                             ;
  28.                    }
  29.                    else
  30.                CRC>>=1;
  31.            }
  32.    }
  33.    return CRC;
  34. }
复制代码

作者: jinhua1916    时间: 2020-4-7 14:45
非常好,和计算器计算的一样。代码好!
作者: jinhua1916    时间: 2020-4-7 14:46
非常好,我在找A001的,终于找到了。8005的计算结果不一样。

作者: huangjilin    时间: 2024-5-19 21:58
谢谢分享




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1