BCD और Gray Code

विशेष बाइनरी एन्कोडिंग

विशेष कोड सीखें

सभी बाइनरी प्रतिनिधित्व शुद्ध base-2 नहीं होते। BCD (Binary-Coded Decimal) और Gray code विशेष एन्कोडिंग हैं जो डिजिटल सिस्टम में विशिष्ट समस्याओं को हल करती हैं—कैलकुलेटर पर नंबर दिखाने से लेकर बिना त्रुटि के रोटरी एन्कोडर पढ़ने तक।

Binary-Coded Decimal (BCD)

BCD क्या है?

BCD प्रत्येक दशमलव अंक को 4-बिट बाइनरी संख्या के रूप में दर्शाता है:

DecimalBCDPure Binary
000000000
501010101
910011001
100001 00001010
420100 0010101010
991001 10011100011

मुख्य अंतर

BCD प्रति दशमलव अंक 4 बिट का उपयोग करता है; शुद्ध बाइनरी अधिक संक्षिप्त है लेकिन प्रदर्शित करना कठिन है।

BCD का उपयोग क्यों करें?

आसान दशमलव प्रदर्शन

  • प्रत्येक 4-बिट समूह → 7-सेगमेंट डिस्प्ले पर एक अंक
  • जटिल बाइनरी-से-दशमलव रूपांतरण की आवश्यकता नहीं
  • कैलकुलेटर और मीटर इसका उपयोग करते हैं

सटीक दशमलव मान

  • वित्तीय गणनाओं में सटीक दशमलव की आवश्यकता होती है
  • 0.10 BCD में सटीक है, बाइनरी floating-point में अनुमानित
  • मुद्रा में गोलाई त्रुटियों से बचाता है

मानव-पठनीय भंडारण

  • टाइमस्टैम्प अक्सर BCD में संग्रहीत होते हैं
  • Hex dump में पढ़ना आसान
  • BIOS real-time clock BCD का उपयोग करते हैं

BCD अंकगणित

जोड़ की चुनौती

BCD जोड़ में समायोजन की आवश्यकता होती है जब परिणाम > 9 हो:

  • 0101 + 0100 = 1001 (5 + 4 = 9) ✓ मान्य BCD
  • 0111 + 0101 = 1100 (7 + 5 = 12) ✗ अमान्य BCD
  • सही करने के लिए 6 (0110) जोड़ना होगा: 1100 + 0110 = 0001 0010 = 12

6 क्यों जोड़ें?

BCD केवल 0000-1001 (0-9) मानों का उपयोग करता है। 1010-1111 (10-15) मान अमान्य हैं। 6 जोड़ने से अगले अंक में कैरी होता है।

BCD के प्रकार

Packed BCD

  • प्रति बाइट दो अंक
  • अधिक कुशल भंडारण
  • उदाहरण: 42 = 0100 0010 एक बाइट में

Unpacked BCD

  • प्रति बाइट एक अंक (ऊपरी 4 बिट अप्रयुक्त/शून्य)
  • आसान प्रसंस्करण
  • उदाहरण: 42 = 00000100 00000010 (दो बाइट)

Excess-3 BCD

  • एन्कोडिंग से पहले प्रत्येक अंक में 3 जोड़ें
  • कुछ अंकगणित सर्किट को सरल बनाता है
  • 0 = 0011, 9 = 1100

Gray Code

Gray Code क्या है?

Gray code एक बाइनरी अनुक्रम है जहां लगातार मानों के बीच केवल एक बिट बदलता है:

DecimalBinaryGray Code
000000000
100010001
200100011
300110010
401000110
501010111
601100101
701110100

Gray Code क्यों महत्वपूर्ण है

Gray Code जो समस्या हल करता है

सामान्य बाइनरी में, 7 (0111) से 8 (1000) पर जाने पर 4 बिट एक साथ बदलते हैं।

  • अगर सेंसर ठीक उसी समय स्विच नहीं करते
  • क्षणिक गलत रीडिंग होती है
  • संक्षेप में 0000, 0001, 0011, 0111, या 1111 पढ़ सकता है

Gray Code समाधान

  • एक समय में केवल एक बिट बदलता है
  • कोई अस्पष्ट मध्यवर्ती अवस्था नहीं
  • पोजिशन एन्कोडर के लिए आवश्यक

Gray Code अनुप्रयोग

रोटरी एन्कोडर

  • मोटर पोजिशन सेंसिंग
  • वॉल्यूम नॉब (डिजिटल)
  • रोबोटिक्स जॉइंट एंगल
  • CNC मशीन पोजिशनिंग

त्रुटि न्यूनीकरण

  • Analog-to-digital रूपांतरण
  • Genetic algorithm (crossover)
  • Karnaugh map (लॉजिक मिनिमाइजेशन)

संचार

  • कुछ error-correcting code
  • कुछ मॉड्यूलेशन स्कीम

बाइनरी को Gray Code में बदलना

विधि

  1. सबसे महत्वपूर्ण बिट (MSB) को वैसा ही रखें
  2. प्रत्येक बिट को उसके बाईं ओर के बिट के साथ XOR करें

उदाहरण: 1011 (बाइनरी) को Gray में बदलें

  • MSB: 1 (रखें)
  • 1 XOR 0 = 1
  • 0 XOR 1 = 1
  • 1 XOR 1 = 0
  • परिणाम: 1110 (Gray)

सूत्र

Gray[i] = Binary[i] XOR Binary[i+1]

Gray[MSB] = Binary[MSB]

Gray Code को बाइनरी में बदलना

विधि

  1. MSB को वैसा ही रखें
  2. प्रत्येक Gray बिट को पिछले Binary बिट के साथ XOR करें

उदाहरण: 1110 (Gray) को Binary में बदलें

  • MSB: 1 (रखें)
  • 1 XOR 1 = 0
  • 0 XOR 1 = 1
  • 1 XOR 0 = 1
  • परिणाम: 1011 (binary)

निष्कर्ष

BCD और Gray code विशेष बाइनरी एन्कोडिंग हैं जो विशिष्ट समस्याओं को हल करती हैं। BCD दशमलव प्रदर्शन को सरल बनाता है और सटीक दशमलव अंकगणित सुनिश्चित करता है—कैलकुलेटर और वित्तीय सिस्टम के लिए महत्वपूर्ण। Gray code सुनिश्चित करता है कि लगातार मानों के बीच केवल एक बिट बदले—पोजिशन एन्कोडर और त्रुटि रोकथाम के लिए आवश्यक। हालांकि दोनों शुद्ध बाइनरी जितने सामान्य नहीं हैं, इन्हें समझने से पता चलता है कि विभिन्न संख्या प्रतिनिधित्व विभिन्न इंजीनियरिंग आवश्यकताओं को कैसे पूरा करते हैं।

संबंधित लेख

BCD और Gray Code: विशेष बाइनरी एन्कोडिंग | YounitConverter