| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 888 人关注过本帖
标题:[求助]还是关于CRC校验程序的问题
只看楼主 加入收藏
xiaxia421
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2005-10-15
收藏
 问题点数:0 回复次数:4 
[求助]还是关于CRC校验程序的问题

现在把我把整个程序都连接上
目的是读一个文件 然后把这个文件用CRC算法进行计算,最后求出CRC码,不出错,但是结果不正确
请指教!谢谢
#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;
}
unsigned int cal_crc(unsigned char *ptr, unsigned char len)
{
unsigned int crc;
unsigned char da;
crc=0;
while(len--!=0) {
da=(unsigned char) (crc/256); /* 以8位二进制数的形式暂存CRC的高8位 */
crc<<=8; /* 左移8位,相当于CRC的低8位乘以 */
crc^=crc32_table[da^*ptr]; /* 高8位和当前字节相加后再查表求CRC ,再加上以前的CRC */
ptr++;
}
return(crc);
}

main()
{
unsigned char *str;
unsigned char len;
unsigned int crc32;
FILE *fp;
fp=fopen("crc32.txt","rb");
if(fp==NULL)
{
printf("Error!");
exit(-1);
}
fgets(str,strlen(str)+1,fp);
len= (unsigned char)(*str);
crc32=cal_crc(str,len);
printf("%xd",crc32);
getch();
}

搜索更多相关主题的帖子: CRC 校验 
2006-05-12 21:36
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
明天再看吧,今天累了啊

淘宝杜琨
2006-05-12 22:07
xiaxia421
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2005-10-15
收藏
得分:0 
恩 先谢了哈 我今天晚上再看看!

[fts=3][M][ftc=#F16C4D]ぃ~~è前方是绝路,希望在转角è~~ぃ[/ft][/M][/ft]
2006-05-12 23:02
xiaxia421
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2005-10-15
收藏
得分:0 
神vLinux飘飘 来帮我看看嘛!

[fts=3][M][ftc=#F16C4D]ぃ~~è前方是绝路,希望在转角è~~ぃ[/ft][/M][/ft]
2006-05-13 15:09
xiaxia421
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2005-10-15
收藏
得分:0 
神vLinux飘飘 来帮我看看啊
我现在实在是没做出来!

[fts=3][M][ftc=#F16C4D]ぃ~~è前方是绝路,希望在转角è~~ぃ[/ft][/M][/ft]
2006-05-14 19:35
快速回复:[求助]还是关于CRC校验程序的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017670 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved