हालांकि सीआरसी की तुलना में तेजी से विकल्प हो सकते हैं, यदि आप उनका उपयोग करते हैं तो आपको कुछ हद तक त्रुटि का पता लगाने की क्षमता का त्याग करने की संभावना है। आपकी त्रुटि का पता लगाने की आवश्यकताएं क्या हैं, इसके आधार पर, आपके विकल्प के बजाय सीआरसी कोड का उपयोग करने के लिए एक विकल्प हो सकता है।
अन्य विकल्पों के साथ सीआरसी की तुलना के लिए, मार्टिन थॉम्पसन द्वारा उत्कृष्ट उत्तर
देखें ।
इसके साथ मदद करने का एक विकल्प pycrc है जो एक उपकरण है (अजगर 1 में लिखा है ) जो crc मॉडल और एल्गोरिथ्म के दर्जनों संयोजनों के लिए C स्रोत कोड उत्पन्न कर सकता है । यह आपको विभिन्न संयोजनों का चयन और बेंचमार्किंग करके अपने स्वयं के अनुप्रयोग के लिए गति और आकार का अनुकूलन करने की अनुमति देता है। 1: अजगर 2.6 या बाद के संस्करण की आवश्यकता है।
यह crc-8
मॉडल का समर्थन करता है , लेकिन यह भी समर्थन करता है crc-5
, crc-16
और crc-32
दूसरों के बीच। एल्गोरिदम के रूप में , यह समर्थन करता है bit-by-bit
, bit-by-bit-fast
और table-driven
।
उदाहरण के लिए (संग्रह को डाउनलोड करना):
$ wget --quiet http://sourceforge.net/projects/pycrc/files/pycrc/pycrc-0.8/pycrc-0.8.tar.gz/download
$ tar -xf pycrc-0.8.tar.gz
$ cd pycrc-0.8
$ ./pycrc.py --model=crc-8 --algorithm=bit-by-bit --generate c -o crc8-byb.c
$ ./pycrc.py --model=crc-8 --algorithm=bit-by-bit-fast --generate c -o crc8-bybf.c
$ ./pycrc.py --model=crc-8 --algorithm=table-driven --generate c -o crc8-table.c
$ ./pycrc.py --model=crc-16 --algorithm=table-driven --generate c -o crc16-table.c
$ wc *.c
72 256 1790 crc8-byb.c
54 190 1392 crc8-bybf.c
66 433 2966 crc8-table.c
101 515 4094 crc16-table.c
293 1394 10242 total
आप सिंगल बाइट लुक-अप के बजाय 256 बाइट लुक-अप टेबल के साथ ड्यूल निबल लुकअप (16 बाइट लुक-अप टेबल के साथ) का उपयोग करके निर्दिष्ट कर सकते हैं।
उदाहरण के लिए (गिट रिपॉजिटरी की क्लोनिंग):
$ git clone http://github.com/tpircher/pycrc.git
$ cd pycrc
$ git branch
* master
$ git describe
v0.8-3-g7a041cd
$ ./pycrc.py --model=crc-8 --algorithm=table-driven --table-idx-width=4 --generate c -o crc8-table4.c
$ wc crc8-table4.c
53 211 1562 crc8-table4.c
आपकी स्मृति और गति की बाधाओं को देखते हुए, यह विकल्प गति और कोड आकार के बीच सबसे अच्छा समझौता हो सकता है। हालांकि यह सुनिश्चित करने का एकमात्र तरीका होगा कि इसे बेंचमार्क किया जाए।
Pycrc Git भंडार पर है GitHub के रूप में अपनी है, समस्या ट्रैकर , लेकिन यह भी से डाउनलोड किया जा सकता sourceforge ।