0

我正在尝试找到一个 CRC32 计算算法,它以正 8 字符 HEX 输出数据(例如 winrar CRC)。

找到的所有算法都返回一个我不知道如何处理的正/负整数......

4

1 回答 1

6

我敢打赌,您找到的所有 CRC32 算法都会返回一个 32 位整数(例如intor uint)。当您查看它时,您可能会将其视为以 10 为底的数字。通过查看,我的意思是将整数格式化为字符串,而不将任何格式选项传递给Int32.ToStringor 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);
于 2012-06-27T13:27:36.543 回答