標(biāo)題: CRC-16源碼 C語言 [打印本頁]

作者: oiglvy    時(shí)間: 2017-3-7 10:26
標(biāo)題: 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 );   //傳字符串,字節(jié)數(shù),
  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. }
復(fù)制代碼

作者: jinhua1916    時(shí)間: 2020-4-7 14:45
非常好,和計(jì)算器計(jì)算的一樣。代碼好!
作者: jinhua1916    時(shí)間: 2020-4-7 14:46
非常好,我在找A001的,終于找到了。8005的計(jì)算結(jié)果不一樣。

作者: huangjilin    時(shí)間: 2024-5-19 21:58
謝謝分享




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1