社区
通信技术
帖子详情
CRC效验问题?
zhab
2000-03-18 10:00:00
CRC效验CRC7的算法如下:
G(x)=x^7+x^3+1;
M(x)=(first bit)*x^(n-1)+(second bit)*x^(n-2)+...(last bit)*x^0;
CRC[6...0]=Remainder[(M(x)*x^7)/G(x)];
n=40
请问谁能详细解释一下CRC的算法原理,x的取值范围。 如能给出C源码将不胜感激!!!
...全文
202
5
打赏
收藏
CRC效验问题?
CRC效验CRC7的算法如下: G(x)=x^7+x^3+1; M(x)=(first bit)*x^(n-1)+(second bit)*x^(n-2)+...(last bit)*x^0; CRC[6...0]=Remainder[(M(x)*x^7)/G(x)]; n=40 请问谁能详细解释一下CRC的算法原理,x的取值范围。 如能给出C源码将不胜感激!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
koyl
2000-05-06
打赏
举报
回复
Linda ;
请与我联系 zhkou@263.net
Linda
2000-03-20
打赏
举报
回复
有关BCH编码的书籍上都有CRC编码原理介绍及其算法.可参照其算法给出软件实现.我有RS编码的实现程序,可供参考.如需要,可与我联系.
Yangyang
2000-03-18
打赏
举报
回复
m(x)为信息码多项式--待编码。g(x)是生成多项式。CRC编码是循环码的一种。
循环码的编码方法是:
1.x^(n-k)*m(x)。
2.上式除以g(x)的余数,为监督位,附加在信息码后。
相关的算法原理,可参考《通信原理》。
zhab
2000-03-18
打赏
举报
回复
谢谢Sniper给出的算法,但不是CRC7算法。
可用如下值校验
0x40,0,0,0,0 的CRC7 为0x95
Sniper
2000-03-18
打赏
举报
回复
const unsigned short crc_tab[]={
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,
0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,
0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,
0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,
0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,
0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,
0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,
0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,
0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,
0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,
0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,
0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,
0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,
0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,
0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,
0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,
0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,
0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,
0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,
0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,
0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,
0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,
0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,
0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,
0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,
0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,
0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0
};
unsigned short GetCrcCode(BYTE *pData, int nDataLen)
{
unsigned short CheckSum=0;
/* Exclude the package head char, so n=1*/
for(int nIndex=1;nIndex<nDataLen;nIndex++)
CheckSum=((CheckSum<<8)^crc_tab[(CheckSum>>8)^(pData[nIndex])]);
CheckSum=((CheckSum<<8)+(CheckSum>>8));
return CheckSum;
};
这是CRC的查表算法,比较快,至于是不是CRC7算法,你自己校验一下吧!
CRC
效验
码计算工具
计算
CRC
效验
码的工具软件,可以选择各项参数,得到结果,用来验证自己的
CRC
计算很方便。
CRC
.rar_
crc
_
crc
效验
_
crc
效验
CRC
演算封装库 轻松实现
CRC
的计算和
效验
,并通过修改算法实现自定义的
CRC
效验
游戏逆向
Call的检测分析与实战 内存
效验
的分析与实战
CRC
的处理等等 每周更新4课时 最大特点: 1、循序渐进 从基础开始讲解,帮助大家理解和掌握逆向编程的核心。 2、通俗易懂,编程语言枯燥难懂,然而通形象化的讲解使编程...
CRC
.rar_
crc
效验
_
crc
效验
CRC
效验
算法...希望对大家有用,在visual c++ 6.0下编译通过。
Crc
效验
crc
.RAR_PB C_
crc
_
crc
pb_delphi
crc
_pb
PB中使用
Crc
效验
PB中
Crc
效验
crc
PB中
Crc
效验
crc
PB中
Crc
效验
crc
PB中
Crc
效验
crc
通信技术
4,358
社区成员
28,927
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章