Я пытаюсь найти алгоритм вычисления CRC32, который выводит данные в положительном 8-значном HEX (например, CRC winrar).
Все найденные алгоритмы возвращают положительное / отрицательное целое число, с которым я не знаю, как обращаться ...
Я пытаюсь найти алгоритм вычисления CRC32, который выводит данные в положительном 8-значном HEX (например, CRC winrar).
Все найденные алгоритмы возвращают положительное / отрицательное целое число, с которым я не знаю, как обращаться ...
Готов поспорить, что все найденные вами алгоритмы CRC32 возвращают 32-битное целое число (например, int
или uint
). Когда вы его просматриваете, вы, вероятно, рассматриваете его как десятичное число. Под просмотром я подразумеваю форматирование целого числа в виде строки без передачи каких-либо параметров формата в _3 _ или String.Format
.
Если бы вы поместили Visual Studio в шестнадцатеричное представление, вы бы получили «ожидаемый» результат. В этом случае все алгоритмы верны, однако ваше ожидание неверно!
Вместо этого используйте числовой формат, который дает желаемое строковое представление:
uint crc32 = Crc32Class.GetMeAValue(data);
// For example, we'll write base-10 and base-16 the output to the console
Console.WriteLine("dec: {0}", crc32);
Console.WriteLine("hex: {0:X8}", crc32);
(32 / 4) == 8
.
- person user7116; 27.06.2012