आप उसी मूल कोड बेस का उपयोग कर 16 बिट आईबीएम, सीसीआईटीटी, एक्समोडेम, केर्मिट और सीसीआईटीटी 1 डी 0 एफ को कार्यान्वित कर सकते हैं। http://www.acooke.org/cute/16bitCRCAl0.html देख जहाँ से http://www.barrgroup.com/Embedded-Systems/How-To/CRC-Calculation-C-Code
कोड का उपयोग करता है निम्न तालिका से पता चलता है कि वे कैसे अलग:
name polynomial initial val reverse byte? reverse result? swap result?
CCITT 1021 ffff no no no
XModem 1021 0000 no no no
Kermit 1021 0000 yes yes yes
CCITT 1D0F 1021 1d0f no no no
IBM 8005 0000 yes yes no
जहां 'रिवर्स बाइट' का अर्थ है कि प्रत्येक बाइट बिट उलट प्रसंस्करण से पहले है, 'रिवर्स परिणाम' का अर्थ है कि 16 बिट परिणाम प्रोसेसिंग के बाद थोड़ा-उलट है; 'स्वैप परिणाम' का अर्थ है कि परिणाम में दो बाइट प्रसंस्करण के बाद बदल दिए जाते हैं।
उपरोक्त सभी को http://www.lammertbies.nl/comm/info/crc-calculation.html (यदि यह गलत है, तो हम सभी खो गए हैं) के खिलाफ परीक्षण वैक्टर के साथ मान्य किए गए थे ...)।
तो, अपने विशेष मामले में, आप XModem से Kermit के लिए कोड को प्रत्येक बाइट को बिट-रिवर्स करके, अंतिम परिणाम को रिवर्स करने और परिणामस्वरूप दो बाइट्स को स्वैप करके परिवर्तित कर सकते हैं।
[मुझे विश्वास है, लेकिन विवरणों की जांच या काम नहीं किया है, जो प्रत्येक बाइट को उलट देता है बहुपद (और कुछ अतिरिक्त विवरण) को उलट करने के बराबर है। यही कारण है कि आप मूल रूप से एक ही एल्गोरिदम के लिए अलग-अलग स्थानों में बहुत अलग स्पष्टीकरण देखेंगे।
भी, उपरोक्त दृष्टिकोण कुशल नहीं है, लेकिन परीक्षण के लिए अच्छा है। आप कुशल चाहते हैं तो सबसे अच्छा होगा ऊपर को देखने-टेबल का अनुवाद है।]
संपादित क्या मैं CCITT ऊपर CCITT-गलत के रूप में RevEng catalogue में प्रलेखित है कहा जाता है। अधिक जानकारी के लिए, उपरोक्त लिंक पर मेरे ब्लॉग पोस्ट में अपडेट देखें।
स्रोत
2013-08-04 19:03:51
उत्कृष्ट शोध! – Potatoswatter
आपके लिंक में आप ऊपर दी गई जानकारी के आधार पर लुकअप टेबल जेनरेट करने में सक्षम होने का उल्लेख करते हैं। वह कैसे किया जा सकता है? साथ ही, क्या आप "रिवर्स" वाक्यांश का उपयोग कर रहे हैं और इस लेख का उपयोग करने के तरीके के बीच कोई सहसंबंध है? http://www.danielvik.com/2010/10/calculating-reverse-crc.html सभी को लुकअप टेबल दृष्टिकोण के साथ लागू किया गया है, इसलिए यदि कोई है तो अंतर/समानताएं देखने के लिए मैं संघर्ष कर रहा हूं। धन्यवाद। – NickHalden
@ निकहल्डन नो - वह लेख कुछ अजीब कर रहा है जो आप चाहते हैं कि बहुत ही असंभव है। यह गणना कर रहा है कि पाठ को किसी चीज़ में जोड़ा जाना चाहिए ताकि सीआरसी एक निश्चित मूल्य के साथ बाहर आ जाए। // आप इसे फिर से लिखकर लुकअप टेबल उत्पन्न करने के लिए उपरोक्त कोड का उपयोग करेंगे ताकि एक ही तर्क को 0 से 255 के मानों पर लूप में लागू किया जा सके, और फिर उन मानों को सहेजा और बाद में "आंतरिक लूप" को प्रतिस्थापित करने के लिए उपयोग किया जाता है सीआरसी एल्गोरिदम। –