जैसा कि यहां के अधिकांश लोग जानते हैं, 4 बिट्स का उपयोग करके, हम 0 से 15 (हेक्साडेसिमल में 0123456789ABCDEF) की गणना करने में सक्षम हैं। लेकिन अगर हम केवल 9 तक गिनती करते हैं, तो हम अभी भी 4 बिट्स का उपयोग कर रहे हैं, और ए से एफ के माध्यम से अंक बर्बाद हो जाएंगे।
हालाँकि, विकिपीडिया का QR- कोड पृष्ठ बताता है कि 0 से 9 तक केवल संख्यात्मक अंकों का उपयोग करके प्रति वर्ण 3⅓ बिट्स का उपयोग किया जाता है, जो एक सांख्यिकीय दृष्टिकोण से सही है। और फिर भी एक बिट का एक तिहाई भौतिक वस्तु नहीं है, और 0 से 9 तक एक संख्या भेजना मेरे ज्ञान में कम से कम 4 बिट्स का उपयोग करता है।
क्या व्यर्थ के अंशों को प्रभावी ढंग से भेजने के लिए व्यर्थ संयोजनों का उपयोग करने का कोई तरीका है?
ठीक है, मुझे एक उदाहरण देना चाहिए: दो अंक "27" भेजना होगा। सामान्य कोडिंग तकनीकों के साथ, भेजे गए बिट्स 00100111 होंगे। फिर हम एक ऐसी प्रणाली की कल्पना कर सकते हैं जो अंक '2' को 'ई' या 'एफ' द्वारा प्रतिस्थापित करेगा, जो अगले बिट पर निर्भर करता है; इस स्थिति में अगला बिट 0 है, इसलिए '2' को 'E' से बदल दिया जाता है। परिणामी बिट-स्ट्रिंग तब 1101 0 111 होगी। दूसरी ओर यदि अंक "28" को भेजा जाना चाहिए, तो '2' के बाद पहला बिट 1 है, इसलिए इसे इसके बजाय अंक 'F' से बदल दिया जाता है, पैदावार स्ट्रिंग 1111 1 000।
दोनों मामलों में, 1 बिट की अर्थव्यवस्था को प्रभावित किया गया है, क्योंकि दो अलग-अलग पात्रों के लिए एक नीबूं का उपयोग किया गया था। दूसरे शब्द में, प्रत्येक वर्ण पर साढ़े तीन बिट्स का उपयोग किया जाता है।
(10 * first_digit) + second_digit
7 बिट्स में गणना और एनकोड कर सकते हैं , 0 ... 99 का प्रतिनिधित्व करते हुए, कोड 100-127 अन्य चीजों के साथ छोड़ दिया गया है। और 3 बिट्स के साथ और भी अधिक बचत 10 बिट्स में संपीड़ित है।