单片机教程网
电脑版
提示:
原网页
已由神马搜索转码, 内容由
www.51hei.com
提供.
51单片机
24小时必答区
单片机教程
单片机DIY制作
STM32
更多导航↓
Cortex M3
模数电子
电子DIY制作
音响/功放
拆机乐园
Arduino
嵌入式OS
程序设计
论坛
电子技术分类讨论区
资料共享
CRC-16源码 C语言
返回列表
查看:
1896
|
回复:
3
CRC-16源码 C语言
[复制链接]
电梯直达
楼主
ID:168748
发表于 2017-3-7 10:26
|
只看该作者
#include "stdafx.h"
#include "iostream"
typedef unsigned short ushort;
typedef unsigned char uchar;
using namespace std;
ushort checksum(uchar* ,uchar ); //传字符串,字节数,
int main()
{
uchar array[3]={0x01,0x02,0x03};
uchar len=sizeof(array);
ushort CRC=checksum(array ,len );
cout<<hex<<CRC<<endl;
return 0;
}
ushort checksum(uchar* array,uchar len)
{
ushort CRC=0xFFFF;
for(uchar i=0;i<len;++i)
{
CRC=CRC^(ushort)array[i];
for(uchar j=0;j<8;++j)
{
if((CRC& 0x0001)==0x0001)
{
CRC=(CRC>>=1)^0xA001;
;
}
else
CRC>>=1;
}
}
return CRC;
}
复制代码
收藏
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黑电子论坛
|
管理员QQ:125739409;技术交流QQ群281945664
Powered by
单片机教程网