找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1651|回复: 3
打印 上一主题 下一主题
收起左侧

CRC-16源码 C语言

[复制链接]
跳转到指定楼层
楼主
ID:168748 发表于 2017-3-7 10:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  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. }
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏7 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:285686 发表于 2020-4-7 14:45 | 只看该作者
非常好,和计算器计算的一样。代码好!
回复

使用道具 举报

板凳
ID:285686 发表于 2020-4-7 14:46 | 只看该作者
非常好,我在找A001的,终于找到了。8005的计算结果不一样。
回复

使用道具 举报

地板
ID:64931 发表于 2024-5-19 21:58 | 只看该作者
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表