Schnelle CRC-Algorithmus?

Ich möchte erstellen Sie eine 32-bit Zahl aus einem ASCII-string. CRC32 Algorithmus ist genau das, was ich Suche, aber ich kann es nicht verwenden, da die Tabelle es erfordert, ist viel zu groß (es ist für ein embedded-Systemen, wo Ressourcen sind SEHR selten).

Also: irgendwelche Vorschläge für ein schnelles und schlankes CRC-Algorithmus? Es spielt keine Rolle, wenn Sie Stößen ein bisschen wahrscheinlicher als mit der original-CRC32.

Dank!

CRC32 implementiert werden können, ohne lookup-Tabelle, oder mit einem 1k-byte lookup-Tabelle wenn Sie muss, ohne einen großen Geschwindigkeitsnachteil im Vergleich zu den 256k-lookup-Tabelle Variante. Beispiel bei wiki.osdev.org/CRC32. Wenn Sie wirklich müssen sparen bytes verwenden, adler32.
Was meinst du mit ressources are VERY rare? Weniger als 64 MB, weniger als 8 KB oder kleiner als 512byte?
Irrationale Person: Nein, ich bin zu Fragen, für source code/algorithmen! Es gibt keine Aussage in meiner Frage nach einem link gefragt, oder so...
Vielleicht auch nur fix, dass code und setzen Sie die Tabelle in flash. Die meisten linkers setzen Konstante Variablen in flash, und dieser Tage sogar die low-end-CPU-s kommt mit Abstieg Menge an OTP. Nur definieren Tabelle const.
Wenn Sie keine besonderen Anforderungen an die Qualität des hash/Prüfsumme/was auch immer, etwas sehr einfaches, wie boost::hash_combine oder sogar nur mit XOR, könnte das gut genug sein.

InformationsquelleAutor Elmi | 2015-01-14

Schreibe einen Kommentar