数据32位CRC计算程序
来源:互联网 发布:视频爬虫 python 编辑:程序博客网 时间:2024/06/06 04:57
如下:
文件的CRC计算值与Winrar的结果完全一样。
点我下载源码
#ifndef __CRC_H__#define __CRC_H__#include <windows.h>#define CRC32_TABLE_NUM(256)#define CRC32_MAGIC(0x04c11db7L)#define CRC32_INVALID_VALUE(-1)class CCRC{public:CCRC();~CCRC();// 计算缓冲区CRCDWORD GetBufCrc32(LPBYTE lpBuf, DWORD dwSize);// 计算区块CRC, 三个函数依次调用void StartBlock();// 初始化区块BOOL AppendBlock(LPBYTE lpBuf, DWORD dwSize);// 增加区块DWORD GetBlockCrc32();// 返回当前CRC// 计算文件的CRCDWORD GetFileCrc32(LPCTSTR szFile);protected:void InitCrc32();DWORD Reflect(DWORD dwRef, BYTE ch);private:DWORD m_dwCrc32Table[CRC32_TABLE_NUM];DWORD m_dwCrc32Block;};extern CCRC crc32;#endif // !__CRC_H__
测试例子:
#include "StdAfx.h"#include "Crc.h"#include <stdio.h>#include <stdlib.h>int main(){char szBuf[] = "123";printf("%08X\n\n", crc32.GetBufCrc32((LPBYTE)szBuf, strlen(szBuf)));crc32.StartBlock();crc32.AppendBlock((LPBYTE)szBuf, 1);crc32.AppendBlock((LPBYTE)szBuf+1, 1);crc32.AppendBlock((LPBYTE)szBuf+2, 1);printf("%08X\n\n", crc32.GetBlockCrc32());printf("%08X\n\n", crc32.GetFileCrc32("32.opt"));return 0;}
- 数据32位CRC计算程序
- CRC计算程序
- 8位CRC 数据校验
- 计算CRC程序(CRC16)
- 计算CRC程序(CRC16)
- 计算CDT规约的8位CRC
- 查表法计算crc的python演示程序
- Modbus的Crc校验有几种 常用的有16位CRC和32位CRC
- 计算CRC
- crc计算
- CRC校验码生成与数据校验源码程序 (包括CRC-4,5,6,7,8,16,32)
- 32位CRC校验代码及其应用
- CRC校验码的上位机计算程序和例子
- 计算CRC的逆(当数据长度等于CRC长度时)
- 16位CRC
- CRC 16位校验
- [C++] 32位C++程序,计算sizeof的值
- 查表法计算CRC
- CMake编译OGRE source code时Boost的一些问题解决方法
- Android调用WebService
- IE smartdraw 等软件打开时Visual Studio 实时调试器的关闭方法
- 伤别
- 彻底抵制日货也许你可以做到
- 数据32位CRC计算程序
- Linux内核学习之一:内核编译及安装(Ubuntu10.04)
- 连接测试
- servfox和spcaview移植
- 风柔月清,吾爱在浅秋
- 6410触摸屏驱动分析(s3c-ts.c)(Linux)(分析)
- Java 正则表达式详解
- POJ 1328 Radar Installation
- SHELL编程