CRC32直接计算法计算字符串校验值示例(VC++)
来源:互联网 发布:last game 软件 编辑:程序博客网 时间:2024/05/02 00:27
int CCRC32TestDlg::getCRC32(CString data)
{
CString strData = data;
wchar_t* pData = strData.GetBuffer();
wchar_t c;
_int64 POLY = 0x04c11db7;
_int64 regi = 0x0;
//regi包含64位,使用中间的32位(即低第17位到48位)作为运算区域,低16位作为数据缓存区(Unicode字符,每个字符占用16位)
//POLY左移16位,与regi运算区域对齐
POLY <<= 16;
_int64 top_remove = 0x0001000000000000;//用于测试第49位是否为1
int i ;
c = *pData++;
regi |= c;//装载一个字符到缓存区
regi <<= 16;//从缓存区移到运算区低16位
c = *pData++;
if(c != '\0')//c == '\0'意味着整个字符串只有一个字符
{
regi |= c;//装载一个字符到缓存区
regi <<= 16;//运算区现在保存了2个字符
while(true)
{
c = *pData++;
if(c == '\0')
{
break;
}
else
{
regi |= c;//载入字符到缓存区
}
for(i = 0; i < 16; i++)
{
regi <<= 1;
if( (regi & top_remove) == top_remove)//测试刚移出运算区的是否为1
{
regi ^= POLY;
}
}
}
}
for(i=0;i<16;i++)
{
regi <<= 1;
if( (regi & top_remove) == top_remove)
{
regi ^= POLY;
}
}
//处理结果
i = regi>>16;
CString str;
str.Format(_T("%x"),i);//16进制显示
AfxMessageBox(str);
return i;
}
{
CString strData = data;
wchar_t* pData = strData.GetBuffer();
wchar_t c;
_int64 POLY = 0x04c11db7;
_int64 regi = 0x0;
//regi包含64位,使用中间的32位(即低第17位到48位)作为运算区域,低16位作为数据缓存区(Unicode字符,每个字符占用16位)
//POLY左移16位,与regi运算区域对齐
POLY <<= 16;
_int64 top_remove = 0x0001000000000000;//用于测试第49位是否为1
int i ;
c = *pData++;
regi |= c;//装载一个字符到缓存区
regi <<= 16;//从缓存区移到运算区低16位
c = *pData++;
if(c != '\0')//c == '\0'意味着整个字符串只有一个字符
{
regi |= c;//装载一个字符到缓存区
regi <<= 16;//运算区现在保存了2个字符
while(true)
{
c = *pData++;
if(c == '\0')
{
break;
}
else
{
regi |= c;//载入字符到缓存区
}
for(i = 0; i < 16; i++)
{
regi <<= 1;
if( (regi & top_remove) == top_remove)//测试刚移出运算区的是否为1
{
regi ^= POLY;
}
}
}
}
for(i=0;i<16;i++)
{
regi <<= 1;
if( (regi & top_remove) == top_remove)
{
regi ^= POLY;
}
}
//处理结果
i = regi>>16;
CString str;
str.Format(_T("%x"),i);//16进制显示
AfxMessageBox(str);
return i;
}
0 0
- CRC32直接计算法计算字符串校验值示例(VC++)
- Qt:计算CRC校验值(CRC16和CRC32)
- crc32校验算法
- 循环冗余校验算法CRC32
- CRC32校验算法-C实现
- CRC32校验算法-C实现
- CRC32校验算法-C实现
- C语言 CRC32校验算法
- LoadRunner实现:计算字符串Crc32
- POJ2318 TOYS(直接计算法)
- 用 CRC32 算法实现程序自校验
- CRC32、MD5、SHA1算法校验介绍
- CRC32、MD5、SHA1算法校验基本概念
- CRC32、MD5、SHA1算法校验介绍
- Java查表法实现CRC32校验算法
- CRC32校验算法C语言版(查表法)
- C语言 一个crc32校验算法
- CRC32校验
- 【计算机应用基础】 选择题目标准答案
- 修改字段类型
- hbase备份恢复
- 中国汽车品牌口碑榜之:--2013年第3季度广州豪华车综合口碑排名
- 就是想到什么记录什么,等同于随身的小笔记本 最好不要看,评论也不要有
- CRC32直接计算法计算字符串校验值示例(VC++)
- 关于Linux系统中“目录项”的解释
- android UI 开源组件
- SQL Server 2000性能测试分析 sql 表最大记录数
- c# 不用IDE编程
- java字符串全排列的实现方式
- HelloServlet
- source insight 里编辑的时候,每次粘贴后,光标停留在粘贴内容的左面
- Leetcode Binary Tree Zigzag Level Order Traversal