社区
C语言
帖子详情
求助:谁有CRC16非查表的C语言的源码啊?
NJZD
2005-06-08 02:57:45
CRC16源码
...全文
124
6
打赏
收藏
求助:谁有CRC16非查表的C语言的源码啊?
CRC16源码
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
NJZD
2005-06-09
打赏
举报
回复
为什么查表和非查表的结果高低字节反了,哪一个是正确定的啊!
dophin1003
2005-06-09
打赏
举报
回复
应该算法是一样的吧?
把1021改成8005就行了
NJZD
2005-06-09
打赏
举报
回复
我要的是X16+X15+X2+1
你们给我的好像的是CCITT的
foochow
2005-06-08
打赏
举报
回复
#define CRC16_POLYNOMIAL 0x1021 // CRC_16校验方式的多项式.
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned long ulong;
typedef enum tagBoolean { FALSE, TRUE } bool;
ulong g_ulTable[256];
// CRC_16方式校验的初始化函数, 计算CRC_16余数表.
void _far CRC16Init(void)
{
uint nRemainder;
int n, m;
ulong *pulTable = g_ulTable;
for(n = 0; n < 256; n ++)
{
nRemainder = (uint)n << 8;
for(m = 8; m > 0; m --)
{
if(nRemainder & 0x8000)
{
nRemainder = (nRemainder << 1) ^ CRC16_POLYNOMIAL;
}
else
{
nRemainder = (nRemainder << 1);
}
}
*(pulTable + n) = nRemainder;
}
}
// 以CRC_16方式计算一个数据块的CRC值.
// pucData - 待校验的数据块指针.
// nBytes - 数据块大小, 单位是字节.
// 返回值是无符号的长整型, 其中低16位有效.
ulong _far CRC16Calc(uchar *pucData, int nBytes)
{
uint nRemainder, nRet;
int n;
uchar index;
ulong *pulTable = g_ulTable;
nRemainder = 0x0000;
for(n = 0; n < nBytes; n ++)
{
index = (uchar)CRCBitReflect(*(pucData + n), 8) ^ (nRemainder >> 8);
nRemainder = (uint)*(pulTable + index) ^ (nRemainder << 8);
}
nRet = (uint)CRCBitReflect(nRemainder, 16) ^ 0x0000;
return(nRet);
}
// 反转数据的比特位, 反转后MSB为1.
// 反转前: 1110100011101110 0010100111100000
// 反转后: 1111001010001110 1110001011100000
ulong _far CRCBitReflect(ulong ulData, int nBits)
{
ulong ulResult = 0x00000000L;
int n;
for(n = 0; n < nBits; n ++)
{
if(ulData & 0x00000001L)
{
ulResult |= (ulong)(1L << ((nBits - 1) - n));
}
ulData = (ulData >> 1);
}
return(ulResult);
}
「已注销」
2005-06-08
打赏
举报
回复
http://bbs.chinaunix.net/forum/23/20040108/239630.html
http://www.laogu.com/shownews.aspx?id=436
-------------
「已注销」
2005-06-08
打赏
举报
回复
http://www.dancefires.com/club/printpage.asp?BoardID=25&ID=326
CRC
16
(ModbusRTU)_FPGA_
查表
实现
源码
.rar
FPGA_
查表
实现
源码
,是基于
C语言
的
查表
实现
CRC
16
的版本,我用的定长6Byte数据+2Byte
CRC
的方式,(可以修改参数DATA_LENGTH以修改数据长度)生成的
CRC
,先把数据存在FIFO中一字节一字节读出然后计算
CRC
所以有一定...
最全
CRC
16
计算代码(包含直接计算和
查表
以及表格计算 内含MODBUS/CCITT/CCITT-FALSE/XMODEN等多种校验方式)
收集整理最全的
CRC
16
计算,
C语言
代码,包括
CRC
16
-IBM/
CRC
16
-MAXIM/
CRC
16
-USB/
CRC
16
-MODBUS/
CRC
16
-CCITT/
CRC
16
-CCITT-FALSE/
CRC
16
-X25/
CRC
16
-XMODEN/
CRC
16
-DNP。 每种代码都包含
查表
和计算方式。还可以计算
CRC
表并...
《
C语言
/C++学习指南》加密解密篇(安全相关算法)
本套视频教程介绍加密解密相关...具体包含: (1) 数据转换(HEX和base64) (2) 对称加密 (DES, 3DES, AES) (3) 校验
CRC
, MD5摘要, SHA1摘要 (4) 数字签名(HMAC-SHA1) , 并介绍了crypto++这个算法库的使用方法。
crc
16
-ccitt
C语言
代码
crc
16
-ccitt 通过
查表
法实现,运算速度比较快,初始值为0xffff,并且是基于标准
C语言
的,并且已将
CRC
16
运行程序封装成函数,只需要调用就好了,移植性强。
C语言
实现
CRC
16
校校验
C语言
实现标准
CRC
16
校验 ,文件包含
crc
.h 和
crc
.c,有问题可以 私聊我 q-175-543-7233
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章