通信人家园
标题:
请教个CRC问题
[查看完整版帖子]
[打印本页]
时间:
2013-5-8 17:39
作者:
meadow163
标题:
请教个CRC问题
本帖最后由 meadow163 于 2013-5-9 18:08 编辑
使用用查表发生成单个字节16bitCRC
void DLCRC::MK_CRC16Table(void)
{
//const unsigned short genploy = GenPloy16;
unsigned short crc_result = 0x0000;
for (unsigned short i = 0;i < 256;i ++)
{
crc_result = i << 8;
for(unsigned char j = 0;j < 8;j ++)//
问题在这里,计算16bitCRC按照理论,应该是将8bit的数据左移动16bit然后用这个值与生成多项式去做异或,但是为什么我看到的所有程序都是只移动8次,就停止了呢?8bit后如果继续补0计算的话,结果和只做8次结果是不一样的啊?我哪里理解的有问题,请帮忙解答下,谢谢
{
if(crc_result & 0x8000)
{
crc_result <<= 1;
crc_result = crc_result ^ GenPloy16;
}
else
crc_result <<= 1;
}
CRCTable_16
= crc_result;
}
}
时间:
2013-5-9 11:38
作者:
meadow163
没人给回复下啊,泪
时间:
2013-6-18 22:50
作者:
番茄鸡蛋
友情路过
通信人家园 (https://www.txrjy.com/)
Powered by C114