> ग्रे | रिफ्लेक्टेड | बाइनरी <
// ग्रे कोड – ऐसा बाइनरी नंबर सिस्टम जिसमें लगातार मानों के बीच केवल 1 बिट बदलता है
यूनिट डिस्टेंस
लगातार दो मानों के बीच केवल 1 बिट बदलता है।
त्रुटि में कमी
एनालॉग-टू-डिजिटल कन्वर्ज़न में त्रुटियों को कम करता है।
सायक्लिक गुण
पहला और आखिरी मान भी केवल 1 बिट से भिन्न होते हैं।
>> तकनीकी जानकारी
ग्रे कोड कैसे काम करता है:
ग्रे कोड (रिफ्लेक्टेड बाइनरी कोड) एक बाइनरी नंबर सिस्टम है जिसमें दो लगातार मान केवल एक बिट से भिन्न होते हैं। इसे बनाने के लिए प्रत्येक बिट को उसके पिछले बिट के साथ XOR किया जाता है। यह गुण रोटरी एनकोडर और डिजिटल सिस्टम में त्रुटि कम करने के लिए बहुत उपयोगी है।
ग्रे कोड के उदाहरण:
दशमलव | बाइनरी | ग्रे कोड 0 | 0000 | 0000 1 | 0001 | 0001 2 | 0010 | 0011 3 | 0011 | 0010 4 | 0100 | 0110 5 | 0101 | 0111 6 | 0110 | 0101 7 | 0111 | 0100 नोट: लगातार ग्रे कोड के बीच केवल 1 बिट बदलता है
ग्रे कोड क्यों उपयोग करें:
- ▸रोटरी एनकोडर
- ▸कार्नॉ मैप (Karnaugh maps)
- ▸त्रुटि सुधार
- ▸डिजिटल संचार
- ▸पोज़िशन सेंसर
>> अक्सर पूछे जाने वाले प्रश्न
ग्रे कोड क्या है?
ग्रे कोड, जिसे रिफ्लेक्टेड बाइनरी कोड भी कहा जाता है, ऐसा बाइनरी नंबर सिस्टम है जिसमें दो लगातार मान केवल एक बिट से अलग होते हैं। यह ट्रांज़िशन के दौरान गलत रीडिंग से बचने के लिए डिजिटल सिस्टम में व्यापक रूप से उपयोग किया जाता है।
बाइनरी से ग्रे कोड में कनवर्ट कैसे करें?
बाइनरी से ग्रे में कनवर्ट करने के लिए: 1) MSB (सबसे महत्वपूर्ण बिट) को जैसा है वैसा रखें, 2) हर बिट को उसके पिछले बिट के साथ XOR करें। सूत्र: G[i] = B[i] XOR B[i-1]. उदाहरण के लिए, बाइनरी 1011 ग्रे कोड 1110 बन जाता है।
एनकोडर के लिए ग्रे कोड बेहतर क्यों है?
साधारण बाइनरी में, जैसे ही आप 7 (0111) से 8 (1000) पर जाते हैं, कई बिट एक साथ बदलते हैं, जिससे बीच की गलत अवस्थाएँ पढ़ी जा सकती हैं। ग्रे कोड यह सुनिश्चित करता है कि हर कदम पर केवल एक बिट बदलता है, इसलिए रोटरी एनकोडर में रीडिंग अधिक भरोसेमंद होती है।
ग्रे कोड कहाँ उपयोग होता है?
ग्रे कोड रोटरी एनकोडर, कार्नॉ मैप सरलीकरण, डिजिटल संचार में त्रुटि सुधार, जेनेटिक एल्गोरिद्म और एनालॉग-टू-डिजिटल कनवर्टर जैसे सिस्टम में उपयोग किया जाता है।
// त्वरित संदर्भ
| Dec | Binary | Gray |
|---|---|---|
| 0 | 000 | 000 |
| 1 | 001 | 001 |
| 2 | 010 | 011 |
| 3 | 011 | 010 |
| 4 | 100 | 110 |
| 5 | 101 | 111 |
| 6 | 110 | 101 |
| 7 | 111 | 100 |
// कोड उदाहरण
Binary -> Gray g = b ^ (b >> 1)
Gray -> Binary b = g; for (m = g >> 1; m; m >>= 1) b ^= m;
Python def to_gray(n): return n ^ (n >> 1)
def from_gray(g):
n = 0
while g: n ^= g; g >>= 1
return n
n bits 2^n codes, successive codes differ by exactly 1 bit (also 2^n - 1 -> 0)
>> और प्रश्न
प्र: ग्रे कोड क्या है?
उ: ग्रे कोड (परावर्तित बाइनरी कोड) ऐसा निरूपण है जिसमें क्रमागत मान केवल एक बिट में भिन्न होते हैं। इसे बेल लैब्स में फ्रैंक ग्रे ने पेटेंट कराया; यह चक्रीय है: अंतिम मान भी पहले से सिर्फ एक बिट अलग होता है।
प्र: रोटरी एन्कोडर में इसका उपयोग क्यों होता है?
उ: सामान्य बाइनरी में 011 से 100 जैसे परिवर्तन में कई बिट एक साथ बदलते हैं। सेंसर पूरी तरह सिंक में न बदलें तो क्षण भर गलत मान आते हैं। ग्रे कोड में एक ही बिट बदलता है, इसलिए त्रुटि अधिकतम एक स्थान की होती है।
प्र: ग्रे कोड को बाइनरी में कैसे बदलें?
उ: सबसे ऊँचा बिट वही रहता है; आगे का हर बाइनरी बिट = पिछला बाइनरी बिट XOR वर्तमान ग्रे बिट। सूत्र: b = g ^ (g >> 1) ^ (g >> 2) ^ …। बाइनरी से ग्रे: g = b ^ (b >> 1)।