当前位置: 代码迷 >> C语言 >> [求助]一个CRC校验程序 麻烦改改错
  详细解决方案

[求助]一个CRC校验程序 麻烦改改错

热度:115   发布时间:2006-05-12 19:59:00.0
[求助]一个CRC校验程序 麻烦改改错
CRC校验程序 麻烦帮忙解释一下或该该错?
谢谢!

下面这个是计算CRC32参数表的程序在网上找的 没看明白? 还有很多错

#include <stdio.h>
unsigned long int crc32_table[256];
unsigned long int ulPolynomial = 0x04c11db7;
unsigned long int Reflect(unsigned long int ref, char ch)
{
unsigned long int value(0); /*错误:函数定义位置不正确在Reflect函数中*/
/* 交换bit0和bit7,bit1和bit6,类推 */
for(int i = 1; i < (ch + 1); i++) /*错误:表达式语法错在Reflect函数中*/
{
if(ref & 1)
value |= 1 << (ch - i);
ref >>= 1;
}
return value;
}
init_crc32_table()
{
unsigned long int crc,temp;
/*256个值 */
for(int i = 0; i <= 0xFF; i++) /*错误:未定义的符号“i”在init_crc32_table函数中,表达式语法错在init_crc32_table函数中*/
{
temp=Reflect(i, 8);
crc32_table[i]= temp<< 24;
for (int j = 0; j < 8; j++)
{
unsigned long int t1,t2;
unsigned long int flag=crc32_table[i]&0x80000000;
t1=(crc32_table[i] << 1);
if(flag==0)
t2=0;
else
t2=ulPolynomial;
crc32_table[i] =t1^t2 ;
}
crc=crc32_table[i];
crc32_table[i] = Reflect(crc32_table[i], 32);
}
}

搜索更多相关的解决方案: CRC  int  unsigned  long  

----------------解决方案--------------------------------------------------------
正好老师也要我们也一个,~不过先吃饭~哈哈
----------------解决方案--------------------------------------------------------
#include <stdio.h>

unsigned long int crc32_table[256];
unsigned long int ulPolynomial = 0x04c11db7;

unsigned long int Reflect(unsigned long int ref, char ch){
unsigned long int value=0;
int i;
for(i = 1; i < (ch + 1); i++){
if(ref & 1)
value |= 1 << (ch - i);
ref >>= 1;
}
return value;
}


void init_crc32_table(){
unsigned long int crc,temp;
unsigned long int t1,t2;
unsigned long int flag;
int i,j;
for(i = 0; i <= 0xFF; i++){
temp=Reflect(i, 8);
crc32_table[i]= temp<< 24;
for (j = 0; j < 8; j++){

flag=crc32_table[i]&0x80000000;
t1=(crc32_table[i] << 1);
if(flag==0)
t2=0;
else
t2=ulPolynomial;
crc32_table[i] =t1^t2 ;
}
crc=crc32_table[i];
crc32_table[i] = Reflect(crc32_table[i], 32);
}
return;
}

现在看看呢?

----------------解决方案--------------------------------------------------------
现在行了 我在这卡了很久 谢谢!
去做下一步工作了哈
谢谢!!
----------------解决方案--------------------------------------------------------
  相关解决方案