2011-10-18 52 views

回答

2

.net微框架有Utility.ComputeCRC方法,尽管我不确定算法实际使用什么。它当然不会使用OP中的一个。 Utility.ComputeCRC

1

尝试从http://vbcity.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.47.04.55/CRC_5F00_Lib.zip CRC实施。这是在http://vbcity.com/forums/t/111345.aspx讨论的实现。

您可以在http://www.lammertbies.nl/comm/info/crc-calculation.html上验证CRC计算的正确性。

上面提到的vbcity讨论链接实际上实现了由http://www.lammertbies.nl/comm/info/crc-calculation.html给出的C++库的转换。

我发现这对我的CRC 16实现正常工作。

短的代码段是

 ushort crcno = CRC.CRC16(stryourdata); 
     Byte[] crcbytes = BitConverter.GetBytes(crcno); 
+0

谢谢,看起来很有希望。还发现了另一个更简单的实现。我会比较它们,但我喜欢这个更好的选择。 – pritaeas

+0

只是为了通知其他人,BitConverter.GetBytes在Micro Framework上还没有。 – pritaeas

1

你可以使用你指的是代码。 HashAlgorithm仅用作接口,您可以放弃它,而不会损害CRC实现本身的功能。

将“protected void void HashCore(byte [] buffer,int start,int length)” 更改为“public void CalcCrc32(byte [] buffer,int start,int length)”。

public uint CrcValue应该返回crcValue不变。

删除所有其他方法和属性。

+0

删除了接受的答案,因为ComputeCRC函数是更好的答案(恕我直言)。 – pritaeas