CRC / XOR / Modulo-2 लॉन्ग डिवीज़न कैलकुलेटर
CRC / XOR / Modulo-2 लॉन्ग डिवीज़न कैलकुलेटर
Output: CRC remainder after XOR long division.
CRC / XOR / Modulo-2 लॉन्ग डिवीज़न कैलकुलेटर बिना carry या borrow के बाइनरी भाग करता है, हर चरण पर bitwise XOR का उपयोग करके। यह cyclic redundancy checks (CRC) के पीछे की अंकगणित है: संदेश में शून्य बिट जोड़े जाते हैं और generator polynomial से भाग किया जाता है, और शेषफल CRC checksum बन जाता है। Modulo-2 जोड़ और घटाव दोनों XOR हैं, इसलिए हर चरण एक सरल बिट तुलना है। डेटा word और generator (भाजक) दर्ज करें, हर alignment, हर XOR, और CRC के रूप में अंतिम शेषफल देखें।
CRC / XOR / Modulo-2 लॉन्ग डिवीज़न कैलकुलेटर का उपयोग कैसे करें
Modulo-2 division से CRC की गणना के लिए, इन 4 चरणों का पालन करें:
- पहले क्षेत्र में बाइनरी संदेश (डेटा बिट) दर्ज करें।
- दूसरे क्षेत्र में generator polynomial को बाइनरी बिट के रूप में दर्ज करें।
- कैलकुलेटर (n − 1) शून्य बिट जोड़ता है, जहाँ n generator की लंबाई है।
- संदेश पर XOR करने और शेष को CRC के रूप में पढ़ने के लिए गणना करें पर क्लिक करें।
CRC कार्य में भागफल आमतौर पर छोड़ दिया जाता है — शेषफल वह checksum है जो प्रसारण से पहले संदेश में जोड़ा जाता है।
CRC और modulo-2 अंकगणित
Cyclic redundancy check संदेश को बड़े बाइनरी polynomial के रूप में मानकर और सहमत generator polynomial से भाग करके प्रसारण त्रुटियाँ पकड़ता है। भाग modulo-2 (GF(2)) अंकगणित में होता है, जहाँ जोड़ और घटाव समान हैं और XOR के बराबर — कोई carry या borrow नहीं। इस भाग का शेष CRC है। जब receiver संदेश + CRC को उसी generator से भाग करता है, तो शेष 0 का अर्थ है कोई त्रुटि नहीं मिली। यह कैलकुलेटर वही bitwise प्रक्रिया दोहराता है।
भाग एक कुल को बराबर समूहों में बांटता है। लंबी भाग यह अंक-दर-अंक करता है।
भाजक (32) — वह संख्या जिससे आप भाग देते हैं। इसे ब्रैकेट के बाईं ओर रखें।
Modulo-2 CRC division कैसे काम करती है
कैलकुलेटर पाँच आंतरिक क्रियाओं से CRC की गणना करता है:
- संदेश में (n − 1) शून्य बिट जोड़ता है, जहाँ n generator बिटों की संख्या है।
- वर्तमान शेष की सबसे बाईं 1 के नीचे generator संरेखित करता है।
- उन बिट्स में generator XOR करता है (borrow रहित modulo-2 घटाव)।
- अगली अग्रणी 1 पर शिफ्ट करके XOR alignment दोहराता है।
- जब शेष बिट generator से कम हों, रुकता है; वे बिट CRC हैं।
प्रत्येक quotient बिट 1 होता है जहाँ generator XOR होता है, और 0 अन्यथा, लेकिन CRC के लिए केवल अंतिम शेषफल मायने रखता है।
संदेश में (n − 1) शून्य बिट जोड़ता है, जहाँ n generator बिटों की संख्या है।
CRC division का सूत्र
CRC / XOR / Modulo-2 लॉन्ग डिवीज़न कैलकुलेटर GF(2) में CRC = (M(x) · xⁿ⁻¹) mod G(x) की गणना करता है, जहाँ M(x) संदेश है, G(x) n-बिट generator है, और सभी जोड़ XOR हैं। प्रसारित frame M(x)·xⁿ⁻¹ + CRC है, जिसे G(x) ठीक भाग करता है। प्राप्ति पर शून्य शेष अखंडता की पुष्टि करता है।
CRC / XOR उदाहरण समस्याएँ
ये उदाहरण हर चरण पर XOR के साथ modulo-2 division दिखाते हैं।
उदाहरण 1 — संदेश 1101, generator 101
- Generator लंबाई 3, इसलिए 2 शून्य जोड़ें: 1101, 110100 बन जाता है।
- अग्रणी बिट्स में बार-बार 101 XOR करें: 110100 → 011100 → 001000 → 000010।
- अंतिम 2 बिट, 10, CRC शेष हैं।
उदाहरण 2 — घटाव XOR क्यों है
- Modulo-2 में, 1 + 1 = 0 और 1 − 1 = 0, इसलिए जोड़ और घटाव एक ही क्रिया हैं।
- वह क्रिया ठीक bitwise XOR है, बिना carry या borrow।
- हर division चरण वर्तमान बिट्स में generator का एक XOR है।
उदाहरण 3 — Receiver जाँच
- CRC को संदेश में जोड़ें और उसी generator से भाग करें।
- पहले की तरह ठीक XOR करें।
- शेष 0 का अर्थ है कोई त्रुटि नहीं मिली।
Generator लंबाई 3, इसलिए 2 शून्य जोड़ें: 1101, 110100 बन जाता है। अग्रणी बिट्स में बार-बार 101 XOR करें: 110100 → 011100 → 001000 → 000010। अंतिम 2 बिट, 10, CRC शेष हैं।
Modulo-2 में, 1 + 1 = 0 और 1 − 1 = 0, इसलिए जोड़ और घटाव एक ही क्रिया हैं। वह क्रिया ठीक bitwise XOR है, बिना carry या borrow। हर division चरण वर्तमान बिट्स में generator का एक XOR है।
CRC को संदेश में जोड़ें और उसी generator से भाग करें। पहले की तरह ठीक XOR करें। शेष 0 का अर्थ है कोई त्रुटि नहीं मिली।
हल किए गए CRC प्रश्न
10110 का CRC generator 1011 के साथ कैसे निकालें?
3 शून्य जोड़ें (generator लंबाई 4) → 10110000, फिर XOR नीचे। हर अग्रणी 1 के नीचे 1011 संरेखित करें और XOR: 10110000 → 00100000 → क्रमिक XOR के बाद अंतिम 3 बिट CRC शेष बनते हैं। शेष 10110 में जोड़ा जाता है ताकि पूरा frame 1011 से बिना शेष भाग हो।
शून्य शेष का अर्थ डेटा सुरक्षित है?
प्रेषक CRC इस तरह चुनता है कि प्रसारित frame generator का सटीक गुणज हो। G(x) का कोई भी गुणज, G(x) से भाग होने पर शेष 0 देता है। यदि रास्ते में बिट बदलें, frame आमतौर पर गुणज नहीं रहता, इसलिए receiver का division गैर-शून्य शेष देता है और त्रुटि संकेत देता है।
CRC / modulo-2 की सामान्य गलतियाँ
Modulo-2 CRC division में 5 अक्सर दोहराई जाने वाली त्रुटियाँ:
- XOR के बजाय borrow वाला सामान्य बाइनरी घटाव उपयोग करना।
- गलत संख्या में शून्य बिट जोड़ना (generator लंबाई minus one होनी चाहिए)।
- Generator को अग्रणी 1 के बजाय 0 बिट के नीचे संरेखित करना।
- GF(2) में carry मान लेना।
- शेष के बजाय quotient को CRC रिपोर्ट करना।
CRC / XOR / Modulo-2 लॉन्ग डिवीज़न कैलकुलेटर हर चरण XOR करता है, सही शून्य जोड़ता है, और शेष को checksum के रूप में लौटाता है।
अक्सर पूछे जाने वाले प्रश्न
Modulo-2 division क्या है?
Modulo-2 division क्या है?
CRC की गणना कैसे होती है?
सामान्य घटाव के बजाय XOR क्यों?
संदेश में कितने शून्य बिट जोड़ूँ?
Receiver CRC कैसे जाँचता है?
CRC में quotient महत्वपूर्ण है?
Generator polynomial क्या है?
CRC सर्वसमिका
CRC / XOR / Modulo-2 लॉन्ग डिवीज़न कैलकुलेटर GF(2) में CRC = (M(x)·xⁿ⁻¹) mod G(x) उपयोग करता है, इसलिए प्रसारित frame M(x)·xⁿ⁻¹ + CRC, G(x) से ठीक भाग होता है। Generator का गुणज शेष 0 देता है, इसलिए receiver का modulo-2 division अखंड डेटा पर 0 लौटाता है।