如何把以下CRC32的代码改成CRC16,CRC12,CRC4 ?急~~
以下是运行正确的CRC32代码,如何改成CRC16,CRC12,CRC4 的?望各位帮忙了,感激不尽~~~
using System;
using System.IO;
namespace MyCRC
{
public class CRC32
{
private UInt32[] crc32Table;
private const int BUFFER_SIZE = 1024;
public UInt32 GetCrc32(System.IO.Stream stream)
{
unchecked
{
UInt32 crc32Result;
crc32Result = 0xFFFFFFFF;
byte[] buffer = new byte[BUFFER_SIZE];
int readSize = BUFFER_SIZE;
int count = stream.Read(buffer, 0, readSize);
while (count > 0)
{
for (int i = 0; i < count; i++)
{
crc32Result = ((crc32Result) >> 8) ^ crc32Table[(buffer[i]) ^ ((crc32Result) & 0x000000FF)];
}
count = stream.Read(buffer, 0, readSize);
}
return ~crc32Result;
}
}
public CRC32()
{
unchecked
{
UInt32 dwPolynomial = 0xEDB88320;
UInt32 i, j;
crc32Table = new UInt32[256];
UInt32 dwCrc;
for(i = 0; i < 256; i++)
{
dwCrc = i;
for(j = 8; j > 0; j--)
{
if ((dwCrc & 1)==1)
{
dwCrc = (dwCrc >> 1) ^ dwPolynomial;
}
else
{
dwCrc >>= 1;
}
}
crc32Table[i] = dwCrc;
}
}
}
}
}
using System;
using System.IO;
namespace MyCRC
{
public class CRC32
{
private UInt32[] crc32Table;
private const int BUFFER_SIZE = 1024;
public UInt32 GetCrc32(System.IO.Stream stream)
{
unchecked
{
UInt32 crc32Result;
crc32Result = 0xFFFFFFFF;
byte[] buffer = new byte[BUFFER_SIZE];
int readSize = BUFFER_SIZE;
int count = stream.Read(buffer, 0, readSize);
while (count > 0)
{
for (int i = 0; i < count; i++)
{
crc32Result = ((crc32Result) >> 8) ^ crc32Table[(buffer[i]) ^ ((crc32Result) & 0x000000FF)];
}
count = stream.Read(buffer, 0, readSize);
}
return ~crc32Result;
}
}
public CRC32()
{
unchecked
{
UInt32 dwPolynomial = 0xEDB88320;
UInt32 i, j;
crc32Table = new UInt32[256];
UInt32 dwCrc;
for(i = 0; i < 256; i++)
{
dwCrc = i;
for(j = 8; j > 0; j--)
{
if ((dwCrc & 1)==1)
{
dwCrc = (dwCrc >> 1) ^ dwPolynomial;
}
else
{
dwCrc >>= 1;
}
}
crc32Table[i] = dwCrc;
}
}
}
}
}
...全文
相关推荐
基于springboot大学生就业系统源码数据库文档.zip
基于springboot大学生就业系统源码数据库文档.zip
课设毕设springboot大学生就业需求分析系统-LW+源码可运行.zip
课设毕设基于SpringBoot的系统源码可运行
课设毕设springboot大学生就业招聘系统的设计与实现-LW+源码可运行.zip
课设毕设基于SpringBoot的系统源码可运行
基于springboot大学生就业信息管理系统源码数据库文档.zip
基于springboot大学生就业信息管理系统源码数据库文档.zip
【CRC】CRC推导(六)CRC16的各种实现
CRC16 算法实现与表格推导


