资源简介
crc32源代码32位crc校验码生成程序源代码vc++测试通过
http://hi.baidu.com/yanzi52351
代码片段和文件信息
// crc1.cpp : Defines the entry point for the console application.
//http://hi.baidu.com/yanzi52351
//yanzi52351@126.com
#include “stdafx.h“
#include
#include
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 crctemp;
unsigned long int t1t2;
unsigned long int flag;
int ij;
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 long GenerateCRC32(char* DataBufunsigned long len) //crc32生成函数
{
unsigned long oldcrc32;
unsigned long crc32;
unsigned long oldcrc;
unsigned int charcnt;
char ct;
oldcrc32=0x00000000; //初值为0
charcnt=0;
while(len--)
{
t= (oldcrc32>>24)&0xFF; //要移出的字节的值
oldcrc=crc32_table[t]; //根据移出的字节的值查表
c=DataBuf[charcnt]; //新移进来的字节值
oldcrc32=(oldcrc32<<8)|c; //将新移进来的字节值添在寄存器末字节中
oldcrc32=oldcrc32^oldcrc; //将寄存器与查出的值进行xor运算
charcnt++;
}
crc32=oldcrc32;
return crc32;
}
int main(int argc char* argv[])
{
char test[6]={‘b‘‘c‘‘d‘‘d‘‘d‘‘r‘};
init_crc32_table(); //先生成
GenerateCRC32(testsizeof(test));
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1863 2010-05-20 15:35 crc1\crc1.cpp
文件 4512 2010-05-19 20:44 crc1\crc1.dsp
文件 516 2010-05-19 20:44 crc1\crc1.dsw
文件 50176 2010-05-20 15:35 crc1\crc1.ncb
文件 48640 2010-05-20 15:35 crc1\crc1.opt
文件 1390 2010-05-20 15:34 crc1\crc1.plg
文件 202 2010-05-20 15:35 crc1\crc1.positions
文件 172120 2010-05-20 15:34 crc1\Debug\crc1.exe
文件 1196 2010-05-19 20:44 crc1\ReadMe.txt
文件 291 2010-05-19 20:44 crc1\StdAfx.cpp
文件 769 2010-05-19 20:44 crc1\StdAfx.h
目录 0 2010-05-20 15:37 crc1\Debug
目录 0 2010-05-20 15:35 crc1
文件 119 2010-05-20 15:07 我的空间.url
文件 125 2010-05-20 15:08 说明.url
----------- --------- ---------- ----- ----
281919 15
相关资源
- C++ 直接硬盘访问读取 程序和源代码
- 获取验证码c++的程序 含源代码
- 水库优化调度程序源代码
- 多目标车辆路径优化源代码
- vc++6.0 mfc 关于播放.AVI格式的文件源代
- 数据挖掘中的Apriori算法(C语言版)源
- C语言小精灵游戏源代码包含画图库
- 宿舍管理系统C语言源代码与可执行文
- 生产者消费者问题源代码(Producer-c
- 《c语言代码大全》源代码
- C++写的餐厅管理系统(含源代码和运
- 数据结构 哈夫曼树C语言源代码
- 用C语言写程序设计大作业_模拟小火车
- 挂机锁原理与实现vc++源代码
- 赫夫曼树的构建及赫夫曼编码C语言源
- 六种排序算法C语言实现源代码
- 复数矩阵 解方程组 C++源代码
- 模拟退火算法含有C语言源代码
- MFC绘图小程序源代码
- C++实现数据结构源代码
- BCH3121编码译码解码程序源代码——
- 通讯录管理系统 源代码.rar
- 算法精解 的源代码
- 三菱PLC上位机编程软件VC6.0完整源代码
- PBIL算法源代码C++
- ICP算法源代码拿走不谢
- linux系统下C语言实现带有图形界面的
- 线程安全双向链表源代码
- C++全方位学习》范磊高清pdf书+源代码
- 一步一步教你用VC和VB调用C++ DLL 的源
评论
共有 条评论