ऑफसेट बाइनरी: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Short description|Method for signed number representation}}
'''ऑफसेट बाइनरी''',<ref name="Patrice_2006"/> जिसे अतिरिक्त-K,<ref name="Patrice_2006"/>'''अतिरिक्त-''N'', अतिरिक्त-e''',<ref name="Dokter_1973"/><ref name="Dokter_1975"/>'''अतिरिक्त कोड या अभिनत प्रतिरूपण,''' के रूप में भी जाना जाता है, वह [[हस्ताक्षरित संख्या प्रतिनिधित्व|हस्ताक्षरित संख्या प्रतिरूपण]] के लिए एक विधि है जहां एक हस्ताक्षरित संख्या <var>n</var> को अहस्ताक्षरित संख्या <var>n</var>+<var>K के अनुरूप द्वयंक प्रतिरूप द्वारा दर्शाया जाता है, जहाँ <var>K</var> ''पूर्वाग्रह मान'' या ''ऑफ़सेट'' होता है। ऑफसेट बाइनरी के लिए कोई मानक नहीं है, लेकिन प्रायः ''एन''-बिट बाइनरी शब्द के लिए ''K,'' ''K''=2<sup>n−1</sup>होता है (उदाहरण के लिए, चार अंकों वाली बाइनरी संख्या के लिए ऑफसेट 2<sup>3</sup>=8 होगा)। इसका परिणाम यह होता है कि न्यूनतम ऋणात्मक मान को सभी-शून्य द्वारा दर्शाया जाता है, तथा शून्य मान को सबसे महत्वपूर्ण बिट में 1 और अन्य सभी बिट्स में शून्य द्वारा दर्शाया जाता है, और [[पूर्णांक अतिप्रवाह|अधिकतम धनात्मक]] मान को सभी-बिट द्वारा दर्शाया जाता है (सुविधाजनक रूप से, यह यह [[दो के पूरक]] का उपयोग करने के समान है लेकिन सबसे महत्वपूर्ण बिट व्युत्क्रमित है)। इसका परिणाम यह भी होता है कि एक तार्किक तुलना संचालन में, एक वास्तविक स्वरूपी संख्यात्मक तुलना संचालन के समान परिणाम मिलता है, जबकि दो का पूरक संकेतन में एक तार्किक तुलना केवल तभी सहमत होगी जब केवल तुलना की जा रही संख्याएँ एक ही चिह्न वाली हों। अन्यथा तुलना का अर्थ व्युत्क्रमित हो जाएगा, जिससे सभी ऋणात्मक मूल्यों को सभी धनात्मक मूल्यों से बड़ा मान लिया जाएगा।
{{About|सामान्य तौर पर पक्षपातपूर्ण प्रतिनिधित्व|अतिरिक्त-3 प्रतिनिधित्व|स्थानांतरित बाइनरी (कोड)|द्विआधारी स्थानांतरण|Bit shifting}}


'''ऑफसेट द्विआधारी''',<ref name="Patrice_2006"/> जिसे अतिरिक्त-K,<ref name="Patrice_2006"/>'''अतिरिक्त-''N'', अतिरिक्त-e''',<ref name="Dokter_1973"/><ref name="Dokter_1975"/>'''अतिरिक्त कोड या अभिनत प्रतिरूपण,''' के रूप में भी जाना जाता है, वह [[हस्ताक्षरित संख्या प्रतिनिधित्व|हस्ताक्षरित संख्या प्रतिरूपण]] के लिए एक विधि है जहां एक हस्ताक्षरित संख्या <var>n</var> को अहस्ताक्षरित संख्या <var>n</var>+<var>K के अनुरूप द्वयंक प्रतिरूप द्वारा दर्शाया जाता है, जहाँ <var>K</var> ''पूर्वाग्रह मान'' या ''ऑफ़सेट'' होता है। ऑफसेट द्विआधारी के लिए कोई मानक नहीं है, लेकिन प्रायः ''एन''-बिट द्विआधारी शब्द के लिए ''K,'' ''K''=2<sup>n−1</sup>होता है (उदाहरण के लिए, चार अंकों वाली द्विआधारी संख्या के लिए ऑफसेट 2<sup>3</sup>=8 होगा)। इसका परिणाम यह होता है कि न्यूनतम ऋणात्मक मान को सभी-शून्य द्वारा दर्शाया जाता है, तथा शून्य मान को सबसे महत्वपूर्ण बिट में 1 और अन्य सभी बिट्स में शून्य द्वारा दर्शाया जाता है, और [[पूर्णांक अतिप्रवाह|अधिकतम धनात्मक]] मान को सभी-बिट द्वारा दर्शाया जाता है (सुविधाजनक रूप से, यह यह [[दो के पूरक]] का उपयोग करने के समान है लेकिन सबसे महत्वपूर्ण बिट व्युत्क्रमित है)। इसका परिणाम यह भी होता है कि एक तार्किक तुलना संचालन में, एक वास्तविक स्वरूपी संख्यात्मक तुलना संचालन के समान परिणाम मिलता है, जबकि दो का पूरक संकेतन में एक तार्किक तुलना केवल तभी सहमत होगी जब केवल तुलना की जा रही संख्याएँ एक ही चिह्न वाली हों। अन्यथा तुलना का अर्थ व्युत्क्रमित हो जाएगा, जिससे सभी ऋणात्मक मूल्यों को सभी धनात्मक मूल्यों से बड़ा मान लिया जाएगा।
प्रारंभिक तुल्यकालिक बहुसंकेतन टेलीग्राफ में उपयोग किए जाने वाले 5-बिट [[बॉडॉट कोड]] को ऑफसेट-1 (अतिरिक्त-1) [[प्रतिबिंबित द्विआधारी (ग्रे) कोड|प्रतिबिंबित बाइनरी (ग्रे) कोड]] के रूप में देखा जा सकता है।


प्रारंभिक तुल्यकालिक बहुसंकेतन टेलीग्राफ में उपयोग किए जाने वाले 5-बिट [[बॉडॉट कोड]] को ऑफसेट-1 (अतिरिक्त-1) [[प्रतिबिंबित द्विआधारी (ग्रे) कोड]] के रूप में देखा जा सकता है।
ऑफसेट-64 (अतिरिक्त-64) संकेतन का एक ऐतिहासिक रूप से प्रमुख उदाहरण आईबीएम प्रणाली/360 और प्रणाली/370 पीढ़ी के कंप्यूटरों में [[ तैरनेवाला स्थल |चल बिन्दु]] (चरघातांकी) संकेतन में था। विशेषता (चर घातांक) ने सात-बिट अतिरिक्त-64 संख्या का रूप ले लिया (उसी बाइट के उच्च-क्रम बिट में [[महत्व]] का चिह्न सम्मिलित था)।<ref name="IBM_360"/>


ऑफसेट-64 (अतिरिक्त-64) संकेतन का एक ऐतिहासिक रूप से प्रमुख उदाहरण आईबीएम प्रणाली/360 और प्रणाली/370 पीढ़ी के कंप्यूटरों में [[ तैरनेवाला स्थल |चल बिन्दु]] (चरघातांकी) संकेतन में था। विशेषता (प्रतिपादक) ने सात-बिट अतिरिक्त-64 संख्या का रूप ले लिया (उसी बाइट के उच्च-क्रम बिट में [[महत्व]] का चिह्न शामिल था)।<ref name="IBM_360"/>
[[माइक्रोसॉफ्ट बाइनरी फॉर्मेट|माइक्रोसॉफ्ट बाइनरी प्रारूप]] में 8-बिट चर घातांक, 1970 और 1980 के दशक में विभिन्न प्रोग्रामिंग भाषाओं (विशेष रूप से [[ बुनियादी |आधारभूत]]) में उपयोग किया जाने वाले एक चल बिन्दु प्रारूप के रूप में, ऑफसेट-129 संकेतन (अतिरिक्त-129) का उपयोग करके कूटबद्‍ध किया गया था।


{{anchor|Excess-129}}[[माइक्रोसॉफ्ट बाइनरी फॉर्मेट|माइक्रोसॉफ्ट द्विआधारी फॉर्मेट]] में 8-बिट एक्सपोनेंट, 1970 और 1980 के दशक में विभिन्न प्रोग्रामिंग भाषाओं (विशेष रूप से [[ बुनियादी ]]) में उपयोग किया जाने वाला एक फ्लोटिंग पॉइंट फॉर्मेट, ऑफसेट-129 संकेतन (अतिरिक्त-129) का उपयोग करके एन्कोड किया गया था।
[[चल बिन्दु अंकगणित के लिए IEEE मानक (IEEE 754)]] [[परिशुद्धता के अपने विभिन्न प्रारूपों]] में से प्रत्येक में घातांक भाग के लिए ऑफसेट संकेतन का उपयोग करता है। हालाँकि, असामान्य रूप से, अतिरिक्त 2<sup>n−1</sup> का उपयोग करने के बजाय यह अतिरिक्त 2 <sup>n−1</sup> − 1 (अर्थात अतिरिक्त-15, अतिरिक्त-127, अतिरिक्त-1023, अतिरिक्त-16383) का उपयोग करता है जिसका अर्थ है कि घातांक के अग्रणी (उच्च-क्रम) बिट को उलटने से घातांक दो के पूरक संकेतन को सही करने में परिवर्तित नहीं होगा।


{{anchor|Excess-15|Excess-127|Excess-1023|Excess-16383}}[[आईईईई 754-2008]]|फ़्लोटिंग-पॉइंट अंकगणित के लिए आईईईई मानक (आईईईई 754) अपने प्रत्येक IEEE_754#Basic_and_interchange_formats में घातांक भाग के लिए ऑफ़सेट संकेतन का उपयोग करता है। हालाँकि, असामान्य रूप से, अतिरिक्त 2 का उपयोग करने के बजाय<sup>n−1</sup> यह अतिरिक्त 2 का उपयोग करता है<sup>n−1</sup> − 1 (अर्थात अतिरिक्त-15, अधिकता-127, अधिकता-1023, अधिकता-16383) जिसका अर्थ है कि घातांक के अग्रणी (उच्च-क्रम) बिट को उलटने से घातांक दो को सही करने में परिवर्तित नहीं होगा पूरक संकेतन.
ऑफसेट बाइनरी का उपयोग प्रायः [[ अंकीय संकेत प्रक्रिया |अंकीय संकेत प्रक्रमण]] (डीएसपी) में किया जाता है। अधिकांश [[एनॉलॉग से डिजिटल परिवर्तित करने वाला उपकरण|अनुरूप से अंकीय]] (A/D) और [[डिज़िटल से एनालॉग कन्वर्टर|अंक से अनुरूप रूपांतरित्र]] (D/A) चिप्स एकध्रुवीय होते हैं, जिसका अर्थ है कि वे [[द्विध्रुवी संकेत|द्विध्रुवी संकेतों]] (धनात्मक और ऋणात्मक दोनों मूल्यों वाले संकेत) को संभाल नहीं सकते हैं। इसका एक सरल समाधान ए/डी और डी/ए परिवर्तक की सीमा के आधे के बराबर डीसी ऑफसेट के साथ अनुरूप संकेत को पूर्वाग्रहित करना है। परिणामी डिजिटल डेटा अंततः ऑफसेट बाइनरी प्रारूप में समाप्त हो जाता है।<ref name="Chen_1988"/>


ऑफसेट द्विआधारी का उपयोग प्रायः [[ अंकीय संकेत प्रक्रिया ]] (डीएसपी) में किया जाता है। अधिकांश [[एनॉलॉग से डिजिटल परिवर्तित करने वाला उपकरण]] (ए/डी) और [[डिज़िटल से एनालॉग कन्वर्टर]] (डी/ए) चिप्स एकध्रुवीय हैं, जिसका अर्थ है कि वे [[द्विध्रुवी संकेत]]ों (धनात्मक और ऋणात्मक दोनों मूल्यों वाले सिग्नल) को संभाल नहीं सकते हैं। इसका एक सरल समाधान ए/डी और डी/ए कनवर्टर की सीमा के आधे के बराबर डीसी ऑफसेट के साथ एनालॉग सिग्नल को पूर्वाग्रहित करना है। परिणामी डिजिटल डेटा फिर ऑफसेट द्विआधारी प्रारूप में समाप्त हो जाता है।<ref name="Chen_1988"/>
अधिकांश मानक कंप्यूटर सीपीयू चिप्स ऑफसेट बाइनरी प्रारूप को सीधे संभाल नहीं सकते हैं। सीपीयू चिप्स सामान्य तौर पर केवल हस्ताक्षरित और अहस्ताक्षरित पूर्णांक, और चल बिन्दु मान प्रारूपों को संभाल सकते हैं। इन सीपीयू चिप्स द्वारा ऑफसेट बाइनरी मानों को कई तरीकों से नियंत्रित किया जा सकता है। डेटा को केवल अहस्ताक्षरित पूर्णांक के रूप में माना जा सकता है, जिससे प्रोग्रामर को सॉफ़्टवेयर में शून्य ऑफसेट का सामना करने की आवश्यकता होती है। डेटा को केवल शून्य ऑफसेट घटाकर हस्ताक्षरित पूर्णांक प्रारूप (जिसे सीपीयू मूल रूप से संभाल सकता है) में परिवर्तित किया जा सकता है। एक n-बिट शब्द के लिए सबसे सामान्य ऑफसेट 2<sup>n−1</sup> होने के परिणामस्वरूप, जिसका अर्थ है कि पहला बिट दो के पूरक के सापेक्ष व्युत्क्रमित है, तथा एक अलग घटाव चरण की कोई आवश्यकता नहीं है, लेकिन कोई व्यक्ति पहले बिट को व्युत्क्रमित कर सकता है। यह कभी-कभी हार्डवेयर में उपयोगी सरलीकरण होता है, और सॉफ्टवेयर में भी सुविधाजनक हो सकता है।


अधिकांश मानक कंप्यूटर सीपीयू चिप्स ऑफसेट द्विआधारी प्रारूप को सीधे संभाल नहीं सकते हैं{{citation needed|reason=This claim is not cited not supported in the paragraph|date=January 2022}}. सीपीयू चिप्स आम तौर पर केवल हस्ताक्षरित और अहस्ताक्षरित पूर्णांक, और फ़्लोटिंग पॉइंट मान प्रारूपों को संभाल सकते हैं। इन सीपीयू चिप्स द्वारा ऑफसेट द्विआधारी मानों को कई तरीकों से नियंत्रित किया जा सकता है। डेटा को केवल अहस्ताक्षरित पूर्णांक के रूप में माना जा सकता है, जिससे प्रोग्रामर को सॉफ़्टवेयर में शून्य ऑफसेट से निपटने की आवश्यकता होती है। डेटा को केवल शून्य ऑफसेट घटाकर हस्ताक्षरित पूर्णांक प्रारूप (जिसे सीपीयू मूल रूप से संभाल सकता है) में परिवर्तित किया जा सकता है। एन-बिट शब्द के लिए सबसे आम ऑफसेट 2 होने के परिणामस्वरूप<sup>n−1</sup>, जिसका अर्थ है कि पहला बिट दो के पूरक के सापेक्ष उलटा है, एक अलग घटाव चरण की कोई आवश्यकता नहीं है, लेकिन कोई केवल पहले बिट को उलटा कर सकता है। यह कभी-कभी हार्डवेयर में उपयोगी सरलीकरण है, और सॉफ्टवेयर में भी सुविधाजनक हो सकता है।
तुलना के लिए [[दो के पूरक]] के साथ, चार बिट्स के लिए ऑफसेट बाइनरी की तालिका,<ref name="Intersil_1997"/>
 
तुलना के लिए दो के पूरक के साथ, चार बिट्स के लिए ऑफसेट द्विआधारी की तालिका:<ref name="Intersil_1997"/>
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Decimal
! दशमलव
! Offset binary, <br/>''K'' = 8
! ऑफसेट बाइनरी, <br/>''K'' = 8
! Two's <br/>complement
! दो के
पूरक
|-
|-
| 7
| 7
Line 87: Line 85:
| 1000
| 1000
|}
|}
ऑफसेट द्विआधारी को सबसे महत्वपूर्ण बिट को व्युत्क्रमित करके दो के पूरक में परिवर्तित किया जा सकता है। उदाहरण के लिए, 8-बिट मानों के साथ, ऑफसेट द्विआधारी मान को दो के पूरक में परिवर्तित करने के लिए 0x80 के साथ XORed किया जा सकता है। विशिष्ट हार्डवेयर में बिट को उसके मूल रूप में स्वीकार करना आसान हो सकता है, लेकिन इसके मूल्य को उल्टे महत्व में लागू करना आसान हो सकता है।
ऑफसेट बाइनरी को सबसे महत्वपूर्ण बिट को व्युत्क्रमित करके दो के पूरक में परिवर्तित किया जा सकता है। उदाहरण के लिए, 8-बिट मानों के साथ, ऑफसेट बाइनरी मान को दो के पूरक में परिवर्तित करने के लिए 0x80 के साथ XORed किया जा सकता है। विशिष्ट हार्डवेयर में बिट को उसके मूल रूप में स्वीकार करना आसान हो सकता है, साथ ही इसके मूल्य को व्युत्क्रमित महत्व में लागू करना भी आसान हो सकता है।


=={{anchor|Nuding|Diamond}}संबंधित कोड==
==संबंधित कोड==
{{Missing information|section|these tables|date=January 2022}}
:<math>z = \frac{1}{q}\left[\left(\sum_{i=1}^n p_i \times b_i\right) - k\right]</math><ref name="Dokter_1973"/><ref name="Dokter_1975"/><ref name="Morgenstern_1997"/>
:<math>z = \frac{1}{q}\left[\left(\sum_{i=1}^n p_i \times b_i\right) - k\right]</math><ref name="Dokter_1973"/><ref name="Dokter_1975"/><ref name="Morgenstern_1997"/>


{| class="wikitable"
{| class="wikitable"
|+ Code comparison<ref name="Dokter_1973"/><ref name="Dokter_1975"/><ref name="Morgenstern_1997"/>
|+ कोड तुलना<ref name="Dokter_1973"/><ref name="Dokter_1975"/><ref name="Morgenstern_1997"/>
|-
|-
! rowspan=2 | Code
! rowspan=2 | कोड
! rowspan=2 | Type
! rowspan=2 | प्रकार
! colspan=3 | Parameters
! colspan=3 | प्राचल
! rowspan=2 | [[Hamming weight|Weights]]
! rowspan=2 | [[Hamming weight|भार]]
! rowspan=2 | [[Hamming distance|Distance]]
! rowspan=2 | [[Hamming distance|दूरी]]
! rowspan=2 | Checking
! rowspan=2 | जाँच
! rowspan=2 | [[Method of complements|Complement]]
! rowspan=2 | [[Method of complements|पूरक]]
! rowspan=2 | Groups of 5
! rowspan=2 | 5 के समूह
! rowspan=2 | Simple addition
! rowspan=2 | सरल जोड़
|-
|-
! Offset, ''k''
! ऑफसेट, ''k''
! Width, ''n''
! चौड़ाई, ''n''
! Factor, ''q''
! गुणक, ''q''
|-  
|-  
| [[8421&nbsp;code]]
| [[8421&nbsp;code|8421 कोड]]
| ''n''<ref name="Diamond_1955"/>
| ''n''<ref name="Diamond_1955"/>
| 0
| 0
Line 117: Line 114:
| 8 4 2 1
| 8 4 2 1
| 1–4
| 1–4
| No
| नहीं
| No
| नहीं
| No
| नहीं
| No
| नहीं
|-
|-
| [[Nuding&nbsp;code]]<ref name="Diamond_1955"/><ref name="Nuding_1959"/>
| [[Nuding&nbsp;code|न्यूडिंग कोड]]<ref name="Diamond_1955"/><ref name="Nuding_1959"/>
| 3''n'' + 2<ref name="Diamond_1955"/>
| 3''n'' + 2<ref name="Diamond_1955"/>
| 2
| 2
Line 129: Line 126:
| {{n/a}}
| {{n/a}}
| 2–5
| 2–5
| Yes
| हाँ
| 9
| 9
| Yes
| हाँ
| Yes
| हाँ
|-  
|-  
| [[Stibitz&nbsp;code]]<ref name="Stibitz_1941"/>
| [[Stibitz&nbsp;code|स्टिबिट्ज़ कोड]]<ref name="Stibitz_1941"/>
| ''n'' + 3<ref name="Diamond_1955"/>
| ''n'' + 3<ref name="Diamond_1955"/>
| 3
| 3
Line 141: Line 138:
| 8&nbsp;&nbsp;4&nbsp;{{overline|−2}}&nbsp;{{overline|−1}}
| 8&nbsp;&nbsp;4&nbsp;{{overline|−2}}&nbsp;{{overline|−1}}
| 1–4
| 1–4
| No
| नहीं
| 9
| 9
| Yes
| हाँ
| Yes
| हाँ
|-
|-
| [[Diamond code (coding theory)|Diamond&nbsp;code]]<ref name="Diamond_1955"/><ref name="Plotkin_1960"/>
| [[Diamond code (coding theory)|डायमंड&nbsp;कोड]]<ref name="Diamond_1955"/><ref name="Plotkin_1960"/>
| 27''n'' + 6<ref name="Diamond_1955"/><ref name="Brown_1960"/><ref name="Peterson-Weldon_1972"/>
| 27''n'' + 6<ref name="Diamond_1955"/><ref name="Brown_1960"/><ref name="Peterson-Weldon_1972"/>
| 6
| 6
Line 153: Line 150:
| {{n/a}}
| {{n/a}}
| 3–8
| 3–8
| Yes
| हाँ
| 9
| 9
| Yes
| हाँ
| Yes
| हाँ
|-
|-
|  
|  
Line 165: Line 162:
| {{n/a}}
| {{n/a}}
| 3+
| 3+
| Yes
| हाँ
| Yes
| हाँ
| ?
| ?
| Yes
| हाँ
|-
|-
|  
|  
Line 177: Line 174:
| {{n/a}}
| {{n/a}}
| 3+
| 3+
| Yes
| हाँ
| Yes
| हाँ
| ?
| ?
| Yes
| हाँ
|-
|-
|  
|  
Line 189: Line 186:
| {{n/a}}
| {{n/a}}
| 3–8
| 3–8
| Yes
| हाँ
| 9
| 9
| Yes
| हाँ