हस्ताक्षरित संख्या प्रतिनिधित्व
This article needs additional citations for verification. (April 2013) (Learn how and when to remove this template message) |
कम्प्यूटिंग में, बाइनरी संख्या प्रणाली में नकारात्मक संख्याओं को एनकोड करने के लिए हस्ताक्षरित संख्या प्रतिनिधित्व की आवश्यकता होती है।
गणित में, किसी भी आधार में ऋणात्मक संख्याओं को एक ऋण चिह्न (−) के साथ उपसर्ग करके दर्शाया जाता है। हालाँकि, RAM या CPU प्रोसेसर रजिस्टर में, संख्याओं को अतिरिक्त प्रतीकों के बिना केवल अंश ्स के अनुक्रम के रूप में दर्शाया जाता है। हस्ताक्षरित संख्याओं का प्रतिनिधित्व करने के लिए बाइनरी अंक प्रणाली को विस्तारित करने के चार सबसे प्रसिद्ध तरीके हैं: #साइन-परिमाण|साइन-परिमाण, #एक का पूरक|एक का पूरक, #दो का पूरक|दो का पूरक, और #अतिरिक्त-के। कुछ वैकल्पिक विधियाँ #Base −2|base −2 का उपयोग करके स्पष्ट संकेतों के बजाय निहित का उपयोग करती हैं, जैसे नकारात्मक बाइनरी। इस तरह के विषयों पर सकारात्मक, नकारात्मक, भिन्नात्मक, या अन्य विस्तार चाहे, स्थितिगत संकेतन के लिए अनुरूप तरीके तैयार किए जा सकते हैं।
कोई निश्चित मानदंड नहीं है जिसके द्वारा कोई प्रतिनिधित्व सार्वभौमिक रूप से श्रेष्ठ है। पूर्णांकों के लिए, अधिकांश वर्तमान कंप्यूटिंग उपकरणों में उपयोग किया जाने वाला प्रतिनिधित्व दो का पूरक है, हालांकि UNIVAC 1100/2200 श्रृंखला मेनफ्रेम एक के पूरक का उपयोग करते हैं।
इतिहास
डिजिटल कंप्यूटिंग के शुरुआती दिनों में हार्डवेयर प्रौद्योगिकी और गणित प्रौद्योगिकी (नंबरिंग सिस्टम) दोनों के बारे में प्रतिस्पर्धात्मक विचार थे। महान बहसों में से एक नकारात्मक संख्याओं का प्रारूप था, जिसमें युग के कुछ शीर्ष विशेषज्ञ बहुत मजबूत और भिन्न राय व्यक्त कर रहे थे।[citation needed] एक शिविर ने दो के पूरक का समर्थन किया, वह प्रणाली जो आज प्रभावी है। एक अन्य शिविर ने लोगों के पूरक का समर्थन किया, जहां सभी बिट्स को उसके सकारात्मक समतुल्य में उलट कर एक नकारात्मक मान बनाया जाता है। एक तीसरे समूह ने संकेत-परिमाण का समर्थन किया, जहां शब्द के उच्चतम-क्रम बिट को टॉगल करके एक मान को धनात्मक से ऋणात्मक में बदल दिया जाता है।
प्रत्येक प्रणाली के लिए और उसके खिलाफ तर्क थे। मेमोरी डंप (1960 के दशक में एक सामान्य प्रक्रिया) के आसान अनुरेखण के लिए साइन-परिमाण की अनुमति है क्योंकि छोटे संख्यात्मक मान कम 1 बिट्स का उपयोग करते हैं। इन प्रणालियों ने गणित को आंतरिक रूप से पूरक किया था, इसलिए संख्याओं को किसी के पूरक मूल्यों में परिवर्तित करना होगा जब वे एक रजिस्टर से गणित इकाई में प्रेषित किए गए थे और जब परिणाम वापस रजिस्टर में प्रेषित किया गया था, तब साइन-परिमाण में परिवर्तित हो गया था।. इलेक्ट्रॉनिक्स को अन्य प्रणालियों की तुलना में अधिक फाटकों की आवश्यकता थी – एक प्रमुख चिंता का विषय था जब असतत ट्रांजिस्टर की लागत और पैकेजिंग महत्वपूर्ण थी। आईबीएम साइन-परिमाण के शुरुआती समर्थकों में से एक था, उनके आईबीएम 704, आईबीएम 709 और आईबीएम 7090 श्रृंखला के कंप्यूटर शायद इसका उपयोग करने के लिए सबसे प्रसिद्ध सिस्टम थे।
कुछ हद तक सरल हार्डवेयर डिजाइनों के लिए लोगों के पूरक की अनुमति है, क्योंकि गणित इकाई से पास होने पर मूल्यों को परिवर्तित करने की कोई आवश्यकता नहीं थी। लेकिन इसने साइन-परिमाण के साथ एक अवांछनीय विशेषता भी साझा की: नकारात्मक शून्य (−0) का प्रतिनिधित्व करने की क्षमता। नकारात्मक शून्य बिल्कुल सकारात्मक शून्य की तरह व्यवहार करता है: जब किसी गणना में ऑपरेंड के रूप में उपयोग किया जाता है, तो परिणाम वही होगा चाहे एक ऑपरेंड सकारात्मक या नकारात्मक शून्य हो। नुकसान यह है कि शून्य के साथ समानता की जाँच करते समय समान मूल्य के दो रूपों के अस्तित्व के लिए दो तुलनाओं की आवश्यकता होती है। किसी के पूरक घटाव का परिणाम अंत-आसपास के उधार (नीचे वर्णित) में भी हो सकता है। यह तर्क दिया जा सकता है कि यह जोड़ और घटाव के तर्क को और अधिक जटिल बना देता है या यह इसे सरल बना देता है, क्योंकि एक घटाव के लिए दूसरे ऑपरेंड के बिट्स को उलटने की आवश्यकता होती है क्योंकि यह योजक को पास किया जाता है। PDP-1, CDC 160 श्रृंखला, CDC 3000 श्रृंखला, CDC 6000 श्रृंखला, UNIVAC 1100 श्रृंखला, और LINC कंप्यूटर लोगों के पूरक प्रतिनिधित्व का उपयोग करते हैं।
दो का पूरक हार्डवेयर में लागू करना सबसे आसान है, जो इसकी व्यापक लोकप्रियता का अंतिम कारण हो सकता है।[1] शुरुआती मेनफ्रेम पर प्रोसेसर में अक्सर हजारों ट्रांजिस्टर होते थे, इसलिए बड़ी संख्या में ट्रांजिस्टर को खत्म करना एक महत्वपूर्ण लागत बचत थी। मेनफ्रेम जैसे आईबीएम सिस्टम/360, जीई-600 श्रृंखला,[2] और PDP-6 और PDP-10 दो के पूरक का उपयोग करते हैं, जैसा कि PDP-5 और PDP-8 और PDP-11 और VAX मशीनों जैसे मिनीकंप्यूटर करते हैं। शुरुआती एकीकृत-सर्किट-आधारित सीपीयू (इंटेल 8080, आदि) के आर्किटेक्ट्स ने भी दो पूरक गणित का उपयोग करना चुना। जैसा कि आईसी प्रौद्योगिकी उन्नत है, दो की पूरक प्रौद्योगिकी को x86 सहित लगभग सभी प्रोसेसरों में अपनाया गया था।[3] m68k, पावर आईएसए,[4] एमआईपीएस आर्किटेक्चर, स्पार्क, एआरएम वास्तुकला, इटेनियम, पीए-जोखिम, और डीईसी अल्फा।
साइन-परिमाण
Binary value | Sign–magnitude interpretation | Unsigned interpretation |
---|---|---|
00000000 | 0 | 0 |
00000001 | 1 | 1 |
⋮ | ⋮ | ⋮ |
01111101 | 125 | 125 |
01111110 | 126 | 126 |
01111111 | 127 | 127 |
10000000 | −0 | 128 |
10000001 | −1 | 129 |
10000010 | −2 | 130 |
⋮ | ⋮ | ⋮ |
11111101 | −125 | 253 |
11111110 | −126 | 254 |
11111111 | −127 | 255 |
साइन-परिमाण प्रतिनिधित्व में, जिसे साइन-एंड-परिमाण या हस्ताक्षरित परिमाण भी कहा जाता है, साइन बिट के लिए संख्या के संकेत के अनुरूप बिट पैटर्न द्वारा एक हस्ताक्षरित संख्या का प्रतिनिधित्व किया जाता है (अक्सर सबसे महत्वपूर्ण बिट, एक के लिए 0 पर सेट) धनात्मक संख्या और ऋणात्मक संख्या के लिए 1), और शेष बिट्स के लिए संख्या (या निरपेक्ष मान) का परिमाण। उदाहरण के लिए, आठ-बिट बाइट में, केवल सात बिट परिमाण का प्रतिनिधित्व करते हैं, जो 0000000 (0) से 1111111 (127) तक हो सकता है। इस प्रकार -127 से लेकर संख्याएँ10 +127 तक10 साइन बिट (आठवां बिट) जोड़ने के बाद प्रदर्शित किया जा सकता है। उदाहरण के लिए, -4310 आठ-बिट बाइट में एन्कोडेड 10101011 है जबकि 4310 00101011 है। साइन-परिमाण प्रतिनिधित्व का उपयोग करने के कई परिणाम हैं जो उन्हें लागू करने के लिए और अधिक जटिल बनाते हैं:[5]
- शून्य, 00000000 (0) और 10000000 (-0) का प्रतिनिधित्व करने के दो तरीके हैं।
- जोड़ और घटाव के लिए साइन बिट के आधार पर अलग-अलग व्यवहार की आवश्यकता होती है, जबकि एक का पूरक साइन बिट को अनदेखा कर सकता है और बस एक एंड-अराउंड कैरी कर सकता है, और दो का पूरक साइन बिट को अनदेखा कर सकता है और अतिप्रवाह व्यवहार पर निर्भर करता है।
- तुलना के लिए साइन बिट का निरीक्षण करने की भी आवश्यकता होती है, जबकि दो के पूरक में, दो संख्याओं को आसानी से घटाया जा सकता है, और जांच की जा सकती है कि परिणाम सकारात्मक है या नकारात्मक।
- दो के पूरक के मामले में -128 के बजाय न्यूनतम ऋणात्मक संख्या -127 है।
यह दृष्टिकोण एक संकेत दिखाने के सामान्य तरीके से सीधे तुलना करने योग्य है (संख्या के परिमाण के आगे एक + या - रखकर)। कुछ शुरुआती बाइनरी कंप्यूटर (उदाहरण के लिए, आईबीएम 7090) इस प्रतिनिधित्व का उपयोग करते हैं, शायद इसका सामान्य उपयोग के प्राकृतिक संबंध के कारण। साइन-परिमाण फ़्लोटिंग-पॉइंट अंकगणित | फ़्लोटिंग-पॉइंट मानों में महत्व का प्रतिनिधित्व करने का सबसे आम तरीका है।
लोगों का पूरक
Binary value | Ones' complement interpretation | Unsigned interpretation |
---|---|---|
00000000 | 0 | 0 |
00000001 | 1 | 1 |
⋮ | ⋮ | ⋮ |
01111101 | 125 | 125 |
01111110 | 126 | 126 |
01111111 | 127 | 127 |
10000000 | −127 | 128 |
10000001 | −126 | 129 |
10000010 | −125 | 130 |
⋮ | ⋮ | ⋮ |
11111101 | −2 | 253 |
11111110 | −1 | 254 |
11111111 | −0 | 255 |
लोगों के पूरक प्रतिनिधित्व में,[6] सकारात्मक संख्या के बिटवाइज़ नहीं (अर्थात पूरक) के अनुरूप बिट पैटर्न द्वारा एक ऋणात्मक संख्या का प्रतिनिधित्व किया जाता है। साइन-परिमाण प्रतिनिधित्व की तरह, लोगों के पूरक में 0: 00000000 (+0) और 11111111 (-0) के दो प्रतिनिधित्व होते हैं।[7] एक उदाहरण के रूप में, 00101011 का पूरक रूप (4310) 11010100 (-4310). किसी के पूरक का उपयोग करके हस्ताक्षरित संख्याओं की श्रेणी को निम्न द्वारा दर्शाया गया है −(2N−1 − 1) को (2N−1 − 1) और ± 0। एक पारंपरिक आठ-बिट बाइट -127 है10 +127 तक10 शून्य के साथ या तो 00000000 (+0) या 11111111 (−0) है।
इस प्रणाली में दर्शाए गए दो नंबरों को जोड़ने के लिए, एक पारंपरिक बाइनरी जोड़ करता है, लेकिन इसके बाद एंड-अराउंड कैरी करना आवश्यक होता है: यानी, किसी भी परिणामी झंडा ले जाना को परिणामी योग में वापस जोड़ें।[8] यह देखने के लिए कि यह क्यों आवश्यक है, −1 (11111110) को +2 (00000010) में जोड़ने के मामले को दर्शाने वाले निम्नलिखित उदाहरण पर विचार करें:
<पूर्व>
द्विआधारी दशमलव 11111110 -1
+ 00000010 +2 ─────────── ──
1 00000000 0 ← सही उत्तर नहीं है 1 +1 ← कैरी जोड़ें
─────────── ──
00000001 1 ← सही उत्तर
</पूर्व>
पिछले उदाहरण में, पहला बाइनरी जोड़ 00000000 देता है, जो गलत है। सही परिणाम (00000001) तभी दिखाई देता है जब कैरी को वापस जोड़ा जाता है।
शब्दावली पर एक टिप्पणी: सिस्टम को लोगों के पूरक के रूप में संदर्भित किया जाता है क्योंकि सकारात्मक मान x की नकारात्मक # प्रोग्रामिंग (x के बिटवाइज़ नहीं के रूप में दर्शाया गया) भी हो सकता है शून्य के पूरक प्रतिनिधित्व से x को घटाकर बनाया गया है जो कि लोगों का एक लंबा क्रम है (−0)। दूसरी ओर, दो का पूरक अंकगणित, दो की एक बड़ी शक्ति से x घटाकर x का निषेध बनाता है, जो कि +0 के लिए सर्वांगसमता संबंध है।[9] इसलिए, एक के पूरक और दो के एक ही नकारात्मक मूल्य के पूरक प्रतिनिधित्व एक से भिन्न होंगे।
ध्यान दें कि एक ऋणात्मक संख्या के पूरक प्रतिनिधित्व को संकेत-परिमाण प्रतिनिधित्व से प्राप्त किया जा सकता है, केवल बिटवाइज़ द्वारा परिमाण को पूरक किया जा सकता है (पहले के बाद सभी बिट्स को उलट कर)। उदाहरण के लिए, दशमलव संख्या -125 इसके साइन-परिमाण प्रतिनिधित्व 11111101 के साथ 10000010 के रूप में पूरक रूप में प्रदर्शित किया जा सकता है।
दो का पूरक
Binary value | Two's complement interpretation | Unsigned interpretation |
---|---|---|
00000000 | 0 | 0 |
00000001 | 1 | 1 |
⋮ | ⋮ | ⋮ |
01111110 | 126 | 126 |
01111111 | 127 | 127 |
10000000 | −128 | 128 |
10000001 | −127 | 129 |
10000010 | −126 | 130 |
⋮ | ⋮ | ⋮ |
11111110 | −2 | 254 |
11111111 | −1 | 255 |
दो के पूरक प्रतिनिधित्व में, एक नकारात्मक संख्या को सकारात्मक संख्या प्लस वन के बिटवाइज़ नॉट (यानी पूरक) के अनुरूप बिट पैटर्न द्वारा दर्शाया जाता है, यानी लोगों के पूरक प्लस वन के लिए। यह 0 के कई प्रतिनिधित्वों की समस्याओं को रोकता है और लोगों के पूरक प्रतिनिधित्व के अंत-आस-पास ले जाने की आवश्यकता है। इसे अहस्ताक्षरित पूर्णांक में इसके मान के व्युत्क्रम का प्रतिनिधित्व करने वाला सबसे महत्वपूर्ण बिट भी माना जा सकता है; 8-बिट अहस्ताक्षरित बाइट में, सबसे महत्वपूर्ण बिट 128 वें स्थान का प्रतिनिधित्व करता है, जहां दो के पूरक में वह बिट -128 का प्रतिनिधित्व करेगा।
दो के पूरक में, केवल एक शून्य है, जिसे 00000000 के रूप में दर्शाया गया है। एक संख्या (चाहे ऋणात्मक या धनात्मक) को नकारना सभी बिट्स को उल्टा करके और फिर उस परिणाम में एक जोड़कर किया जाता है।[10] यह वास्तव में दो | 2 की मॉड्यूलर अंकगणितीय शक्ति के सभी पूर्णांकों पर रिंग (गणित) संरचना को दर्शाता हैएन: . दो-पूरक पूर्णांकों की एक जोड़ी का जोड़ हस्ताक्षर की एक जोड़ी के अतिरिक्त के समान है (पूर्णांक अतिप्रवाह का पता लगाने के अलावा, यदि ऐसा किया जाता है); घटाव के लिए भी यही सच है और यहां तक कि किसी उत्पाद के सबसे कम महत्वपूर्ण बिट्स (गुणन का मूल्य) के लिए भी। उदाहरण के लिए, 127 और -128 का दो-पूरक जोड़ 127 और 128 के अहस्ताक्षरित जोड़ के समान बाइनरी बिट पैटर्न देता है, जैसा कि 8-बिट दो की पूरक तालिका से देखा जा सकता है।
दो के पूरक में किसी संख्या का निषेध प्राप्त करने का एक आसान तरीका इस प्रकार है:
Example 1 | Example 2 | |
---|---|---|
1. Starting from the right, find the first "1" | 00101001 | 00101100 |
2. Invert all of the bits to the left of that "1" | 11010111 | 11010100 |
विधि दो:
- संख्या के माध्यम से सभी बिट्स को उल्टा करें
- एक जोड़ें
उदाहरण: +2 के लिए, जो बाइनरी में 00000010 है (~ वर्ण सी (प्रोग्रामिंग भाषा) बिटवाइज़ नॉट ऑपरेटर है, इसलिए ~X का अर्थ X में सभी बिट्स को उल्टा करना है):
- ~ 00000010 → 11111101
- 11111101 + 1 → 11111110 (दो के पूरक में -2)
{{anchor|Excess-128|Excess-K}ऑफसेट बाइनरी
Binary value | Excess-128 interpretation | Unsigned interpretation |
---|---|---|
00000000 | −128 | 0 |
00000001 | −127 | 1 |
⋮ | ⋮ | ⋮ |
01111111 | −1 | 127 |
10000000 | 0 | 128 |
10000001 | 1 | 129 |
⋮ | ⋮ | ⋮ |
11111111 | 127 | 255 |
ऑफसेट बाइनरी प्रतिनिधित्व में, जिसे अतिरिक्त-K या पक्षपाती भी कहा जाता है, एक हस्ताक्षरित संख्या को अहस्ताक्षरित संख्या प्लस K के अनुरूप बिट पैटर्न द्वारा दर्शाया जाता है, K के साथ पूर्वाग्रह मूल्य या ऑफ़सेट होना। इस प्रकार 0 को K द्वारा दर्शाया जाता है, और -K को एक पूर्ण-शून्य बिट पैटर्न द्वारा दर्शाया जाता है। इसे पूर्वोक्त दो-पूरक के एक मामूली संशोधन और सामान्यीकरण के रूप में देखा जा सकता है, जो वस्तुतः है excess-(2N−1) अस्वीकृत सबसे महत्वपूर्ण बिट के साथ प्रतिनिधित्व।
बायस्ड अभ्यावेदन अब मुख्य रूप से तैरनेवाला स्थल नंबरों के प्रतिपादक के लिए उपयोग किए जाते हैं। IEEE 754|IEEE 754 फ़्लोटिंग-पॉइंट मानक एकल-सटीक (32-बिट) संख्या के प्रतिपादक फ़ील्ड को 8-बिट अतिरिक्त-127 फ़ील्ड के रूप में परिभाषित करता है। डबल-परिशुद्धता (64-बिट) एक्सपोनेंट फ़ील्ड 11-बिट अतिरिक्त-1023 फ़ील्ड है; प्रतिपादक पूर्वाग्रह देखें। इसमें बाइनरी-कोडेड दशमलव संख्याओं के लिए अतिरिक्त -3 के रूप में भी उपयोग किया गया था।
आधार -2
Binary value | Base −2 interpretation | Unsigned interpretation |
---|---|---|
00000000 | 0 | 0 |
00000001 | 1 | 1 |
⋮ | ⋮ | ⋮ |
01111111 | 43 | 127 |
10000000 | −128 | 128 |
10000001 | −127 | 129 |
⋮ | ⋮ | ⋮ |
11111111 | −85 | 255 |
आधार -2 प्रतिनिधित्व में, एक हस्ताक्षरित संख्या को आधार -2 के साथ एक संख्या प्रणाली का उपयोग करके दर्शाया जाता है। पारंपरिक बाइनरी नंबर सिस्टम में, बेस या मूलांक 2 होता है; इस प्रकार सबसे दाहिना बिट 2 का प्रतिनिधित्व करता है0, अगला बिट 2 का प्रतिनिधित्व करता है1, अगला बिट 22, और इसी तरह। हालांकि, आधार −2 के साथ एक बाइनरी संख्या प्रणाली भी संभव है। सबसे दाहिना बिट प्रतिनिधित्व करता है (−2)0 = +1, अगला बिट दर्शाता है (−2)1 = −2, अगला बिट (−2)2 = +4 और इसी तरह, वैकल्पिक संकेत के साथ। चार बिट्स के साथ प्रदर्शित की जा सकने वाली संख्याएँ नीचे दी गई तुलना तालिका में दिखाई गई हैं।
प्रदर्शित की जा सकने वाली संख्याओं की श्रेणी असममित है। यदि शब्द में बिट्स की संख्या सम है, तो प्रदर्शित की जा सकने वाली सबसे बड़ी ऋणात्मक संख्या का परिमाण प्रतिनिधित्व की जा सकने वाली सबसे बड़ी धनात्मक संख्या से दोगुना बड़ा होता है, और इसके विपरीत यदि शब्द में बिट्स की विषम संख्या है।
तुलना तालिका
निम्न तालिका सकारात्मक और नकारात्मक पूर्णांक दिखाती है जिसे चार बिट्स का उपयोग करके प्रदर्शित किया जा सकता है।
Decimal | Unsigned | Sign–magnitude | Ones' complement | Two's complement | Excess-8 (biased) | Base −2 |
---|---|---|---|---|---|---|
16 | — | — | — | — | — | — |
15 | 1111 | — | — | — | — | — |
14 | 1110 | — | — | — | — | — |
13 | 1101 | — | — | — | — | — |
12 | 1100 | — | — | — | — | — |
11 | 1011 | — | — | — | — | — |
10 | 1010 | — | — | — | — | — |
9 | 1001 | — | — | — | — | — |
8 | 1000 | — | — | — | — | — |
7 | 0111 | 0111 | 0111 | 0111 | 1111 | — |
6 | 0110 | 0110 | 0110 | 0110 | 1110 | — |
5 | 0101 | 0101 | 0101 | 0101 | 1101 | 0101 |
4 | 0100 | 0100 | 0100 | 0100 | 1100 | 0100 |
3 | 0011 | 0011 | 0011 | 0011 | 1011 | 0111 |
2 | 0010 | 0010 | 0010 | 0010 | 1010 | 0110 |
1 | 0001 | 0001 | 0001 | 0001 | 1001 | 0001 |
0 | 0000 | 0000 | 0000 | 0000 | 1000 | 0000 |
−0 | 1000 | 1111 | ||||
−1 | — | 1001 | 1110 | 1111 | 0111 | 0011 |
−2 | — | 1010 | 1101 | 1110 | 0110 | 0010 |
−3 | — | 1011 | 1100 | 1101 | 0101 | 1101 |
−4 | — | 1100 | 1011 | 1100 | 0100 | 1100 |
−5 | — | 1101 | 1010 | 1011 | 0011 | 1111 |
−6 | — | 1110 | 1001 | 1010 | 0010 | 1110 |
−7 | — | 1111 | 1000 | 1001 | 0001 | 1001 |
−8 | — | — | — | 1000 | 0000 | 1000 |
−9 | — | — | — | — | — | 1011 |
−10 | — | — | — | — | — | 1010 |
−11 | — | — | — | — | — | — |
समान तालिका, जैसा कि इन बाइनरी बिट्स से देखा गया है, प्रतिनिधित्व प्रणाली द्वारा व्याख्या की गई संख्या क्या है:
Binary | Unsigned | Sign–magnitude | Ones' complement | Two's complement | Excess-8 | Base −2 |
---|---|---|---|---|---|---|
0000 | 0 | 0 | 0 | 0 | −8 | 0 |
0001 | 1 | 1 | 1 | 1 | −7 | 1 |
0010 | 2 | 2 | 2 | 2 | −6 | −2 |
0011 | 3 | 3 | 3 | 3 | −5 | −1 |
0100 | 4 | 4 | 4 | 4 | −4 | 4 |
0101 | 5 | 5 | 5 | 5 | −3 | 5 |
0110 | 6 | 6 | 6 | 6 | −2 | 2 |
0111 | 7 | 7 | 7 | 7 | −1 | 3 |
1000 | 8 | −0 | −7 | −8 | 0 | −8 |
1001 | 9 | −1 | −6 | −7 | 1 | −7 |
1010 | 10 | −2 | −5 | −6 | 2 | −10 |
1011 | 11 | −3 | −4 | −5 | 3 | −9 |
1100 | 12 | −4 | −3 | −4 | 4 | −4 |
1101 | 13 | −5 | −2 | −3 | 5 | −3 |
1110 | 14 | −6 | −1 | −2 | 6 | −6 |
1111 | 15 | −7 | −0 | −1 | 7 | −5 |
अन्य सिस्टम
Google का प्रोटोकॉल बफ़र्स ज़िग-ज़ैग एन्कोडिंग साइन-परिमाण के समान एक प्रणाली है, लेकिन साइन का प्रतिनिधित्व करने के लिए कम से कम महत्वपूर्ण बिट का उपयोग करता है और शून्य का एकल प्रतिनिधित्व करता है। यह गैर-ऋणात्मक (अहस्ताक्षरित) पूर्णांकों के लिए इच्छित चर-लंबाई मात्रा एन्कोडिंग को हस्ताक्षरित पूर्णांकों के लिए कुशलतापूर्वक उपयोग करने की अनुमति देता है।[11] उन्नत वीडियो कोडिंग में इसी तरह की विधि का उपयोग किया जाता है। उन्नत वीडियो कोडिंग/H.264 और उच्च दक्षता वीडियो कोडिंग|उच्च दक्षता वीडियो कोडिंग/H.265 वीडियो संपीड़न मानकों के लिए घातीय-गोलोम्ब कोडिंग#नकारात्मक संख्याओं का विस्तार|एक्सटेंशन-गोलोम्ब नकारात्मक संख्याओं के लिए कोडिंग। उस विस्तार में, सबसे कम महत्वपूर्ण बिट लगभग एक साइन बिट है; शून्य में सभी ऋणात्मक संख्याओं के समान न्यूनतम महत्वपूर्ण बिट (0) होता है। इस विकल्प के परिणामस्वरूप दो पूरक या प्रोटोकॉल बफ़र्स ज़िग-ज़ैग एन्कोडिंग के विपरीत, सबसे बड़ी परिमाण नकारात्मक संख्या की तुलना में सबसे बड़ी परिमाण प्रतिनिधित्व योग्य सकारात्मक संख्या होती है।
एक अन्य दृष्टिकोण प्रत्येक संख्यात्मक अंक को एक संकेत देना है, जो हस्ताक्षरित अंकों का प्रतिनिधित्व करता है। उदाहरण के लिए, 1726 में, जॉन कोलसन ने अभिव्यक्ति को छोटी संख्या, अंक 1, 2, 3, 4, और 5 में कम करने की वकालत की। 1840 में, ऑगस्टिन कॉची ने भी गणना में त्रुटियों को कम करने के लिए ऐसे संशोधित दशमलव संख्याओं के लिए वरीयता व्यक्त की।
यह भी देखें
- संतुलित टर्नरी
- बाइनरी-कोडित दशमलव
- कंप्यूटर संख्या प्रारूप
- पूरक विधि
- हस्ताक्षर
संदर्भ
- ↑ Choo, Hunsoo; Muhammad, K.; Roy, K. (February 2003). "दो का पूरक कम्प्यूटेशन शेयरिंग मल्टीप्लायर और इसके अनुप्रयोग उच्च प्रदर्शन DFE के लिए". IEEE Transactions on Signal Processing. 51 (2): 458–469. doi:10.1109/TSP.2002.806984.
- ↑ GE-625 / 635 Programming Reference Manual. General Electric. January 1966. Retrieved August 15, 2013.
- ↑ Intel 64 and IA-32 Architectures Software Developer's Manual (PDF). Intel. Section 4.2.1. Retrieved August 6, 2013.
- ↑ Power ISA Version 2.07. Power.org. Section 1.4. Retrieved August 6, 2013.,
- ↑ Bacon, Jason W. (2010–2011). "Computer Science 315 Lecture Notes". Retrieved 21 February 2020.
- ↑ US 4484301, "ऐरे मल्टीप्लायर एक के पूरक प्रारूप में काम कर रहा है", issued 1981-03-10
- ↑ US 6760440, "एक का पूरक क्रिप्टोग्राफ़िक कॉम्बिनर", issued 1999-12-11
- ↑ Shedletsky, John J. (1977). "एंड-अराउंड-कैरी एडर के अनुक्रमिक और अनिश्चित व्यवहार पर टिप्पणी करें". IEEE Transactions on Computers. 26 (3): 271–272. doi:10.1109/TC.1977.1674817.
- ↑ Donald Knuth: The Art of Computer Programming, Volume 2: Seminumerical Algorithms, chapter 4.1
- ↑ Thomas Finley (April 2000). "दो का अनुपूरण". Cornell University. Retrieved 15 September 2015.
- ↑ Protocol Buffers: Signed Integers
- Ivan Flores, The Logic of Computer Arithmetic, Prentice-Hall (1963)
- Israel Koren, Computer Arithmetic Algorithms, A.K. Peters (2002), ISBN 1-56881-160-8