0

データを正の 8 文字の HEX で出力する CRC32 計算アルゴリズムを見つけようとしています (たとえば、winrar CRC など)。

見つかったすべてのアルゴリズムは、処理方法がわからない正/負の整数を返します...

4

1 に答える 1

6

あなたが見つけたすべての CRC32 アルゴリズムが 32 ビット整数 (たとえばint、またはuint) を返すに違いありません。あなたがそれを見るとき、あなたはおそらくそれを10進数として見ているでしょう。Int32.ToString表示とは、 orに書式オプションを渡さずに整数を文字列として書式設定することを意味しますString.Format

Visual Studio を 16 進表示にすると、「期待される」出力が得られます。この場合、アルゴリズムはすべて正しいですが、間違っているのはあなたの期待です!

代わりに、希望する文字列表現を生成するNumber Formatを使用してください。

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 に答える