Реализация CRC32 в .NET Micro - PullRequest
       27

Реализация CRC32 в .NET Micro

0 голосов
/ 18 октября 2011

Я искал реализацию CRC32, которую можно было бы использовать в среде .Net Micro. Я нашел эту реализацию , но микро-фреймворк еще не реализовал HashAlgorithm. Каков наилучший способ заставить это работать?

Ответы [ 3 ]

2 голосов
/ 13 декабря 2011

.net Микрофрейм имеет метод Utility.ComputeCRC, хотя я не уверен, какой алгоритм на самом деле использует.Это конечно не использует один из OP. Utility.ComputeCRC

1 голос
/ 18 октября 2011

Вы можете использовать код, на который вы ссылаетесь. HashAlgorithm просто используется в качестве интерфейса, и вы можете отбросить его, не нанося ущерба функциональности самой реализации CRC.

Изменить "защищенное переопределение void HashCore (буфер byte [], int start, int length)" в "public void CalcCrc32 (буфер byte [], int start, int length)".

public uint CrcValue должен вернуть crcValue без изменений.

Отбросьте все остальные методы и свойства.

1 голос
/ 18 октября 2011

Попробуйте реализацию CRC от http://vbcity.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.47.04.55/CRC_5F00_Lib.zip.Эта реализация обсуждается на http://vbcity.com/forums/t/111345.aspx.

. Вы можете проверить правильность своих вычислений CRC на http://www.lammertbies.nl/comm/info/crc-calculation.html.

. Вышеупомянутая ссылка из обсуждения vbcity фактически реализует преобразование библиотеки c ++, заданнойhttp://www.lammertbies.nl/comm/info/crc-calculation.html.

Я обнаружил, что это работает правильно для моей реализации CRC 16.

Короткий фрагмент кода

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