CRC32 - Kurzform

M_Kay

Mitglied
Hi,

ich wollte mal den kleinen Code hier (http://de.wikipedia.org/wiki/Zyklische_Redundanzprüfung#Berechnung_einer_CRC-32-Pr.C3.BCfsumme_in_C) in C# umsetzen.

Doch irgendwie liefert er mir andauernd einen falschen CRC-Wert.
Sieht jemand den Fehler?

Das zu übergebende uint-Array stellt eine Folge von Bits dar.
Code:
    class CRC
    {
        //Dies entspricht dem CRC-32-Generator-Polynom
        uint Poly = 0x04C11DB7;

        public uint CRC32(uint[] message)
        {
            uint crc32 = 0;

            for (int i = 0; i < message.Length; i++ )
            {
                uint hbit = ((crc32 & 0x80000000) == 0x10000000) ? (uint)1 : (uint)0;

                if (hbit != message[i])
                    crc32 = (crc32 << 1) ^ Poly;
                else
                    crc32 = crc32 << 1;
            }
            
            return crc32;
        }
    }

Gruss
M_Kay
 

Neue Beiträge

Zurück