Ich möchte eine 32-Bit-Nummer aus einer ASCII-Zeichenfolge erstellen. CRC32-Algorithmus ist genau das, was ich suche, aber ich kann es nicht verwenden, weil die Tabelle, die es benötigt, viel zu groß ist (es ist für ein eingebettetes System, wo Ressourcen sehr selten sind).Schneller CRC-Algorithmus?
Also: irgendwelche Vorschläge für einen schnellen und schlanken CRC-Algorithmus? Es spielt keine Rolle, wenn Kollisionen etwas wahrscheinlicher sind als mit der ursprünglichen CRC32.
Danke!
CRC32 kann ohne Lookup-Tabelle oder mit einer 1k-Byte-Lookup-Tabelle implementiert werden, wenn Sie dies tun müssen, ohne einen größeren Geschwindigkeitsverlust im Vergleich zur 256k-Lookup-Tabellenvariante. Beispiel unter http://wiki.osdev.org/CRC32. Wenn Sie wirklich Bytes speichern müssen, verwenden Sie adler32. – dascandy
Was Sie mit 'Ressourcen sind sehr selten 'meinen? Weniger als 64 MB, weniger als 8 KB oder weniger als 512 Byte? – jeb
jeb: SEHR selten bedeutet, dass ich momentan nicht genug Platz habe, um die Tabelle hinzuzufügen, wie in http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/bsd/libkern/crc32.c gezeigt – Elmi