हस्ताक्षरित संख्या अभ्यावेदन: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Short description|Encoding of negative numbers in binary number systems}}
{{Short description|Encoding of negative numbers in binary number systems}}
{{distinguish|Signed-digit representation}}
{{distinguish|हस्ताक्षरित-अंकीय प्रतिनिधित्व}}


[[ कम्प्यूटिंग | कम्प्यूटिंग]] में, बाइनरी नंबर सिस्टम में नकारात्मक संख्याओं को एन्कोड करने के लिए [[हस्ताक्षरित संख्या]] प्रतिनिधित्व की आवश्यकता होती है।
[[ कम्प्यूटिंग | कम्प्यूटिंग]] में, बाइनरी नंबर सिस्टम में ऋणात्मक संख्याओं को एन्कोड करने के लिए [[हस्ताक्षरित संख्या]] प्रतिनिधित्व की आवश्यकता होती है।


गणित में, किसी भी आधार में [[ऋणात्मक संख्या]]ओं को उपसर्ग में ऋण चिह्न (-) लगाकर दर्शाया जाता है। हालाँकि, रैम या सीपीयू [[प्रोसेसर रजिस्टर]] में, संख्याओं को अतिरिक्त प्रतीकों के बिना, केवल [[ अंश |अंश]] ्स के अनुक्रम के रूप में दर्शाया जाता है। हस्ताक्षरित संख्याओं को दर्शाने के लिए [[द्विआधारी अंक प्रणाली]] का विस्तार करने की चार सबसे प्रसिद्ध विधियाँ हैं: #चिह्न-परिमाण|चिह्न-परिमाण, # का पूरक| का पूरक, #दो का पूरक|दो का पूरक, और #अतिरिक्त-के। कुछ वैकल्पिक विधियाँ #Base −2|base −2 का उपयोग करते हुए स्पष्ट संकेतों के बजाय अंतर्निहित संकेतों का उपयोग करती हैं, जैसे नकारात्मक बाइनरी। [[स्थितीय संकेतन]] के लिए संगत तरीके तैयार किए जा सकते हैं, चाहे सकारात्मक, नकारात्मक, भिन्नात्मक, या ऐसे विषयों पर अन्य विस्तार।
गणित में, किसी भी आधार में ऋणात्मक संख्याओं को उनके पहले ऋण चिह्न ("-") लगाकर दर्शाया जाता है। चूँकि रैम या सीपीयू रजिस्टरों में, संख्याओं को अतिरिक्त प्रतीकों के बिना, केवल बिट्स के अनुक्रम के रूप में दर्शाया जाता है। हस्ताक्षरित संख्याओं का प्रतिनिधित्व करने के लिए बाइनरी अंक प्रणाली का विस्तार करने की चार सबसे प्रसिद्ध विधियां हैं: संकेत-परिमाण का पूरक, दो का पूरक, और ऑफसेट बाइनरी। कुछ वैकल्पिक विधि स्पष्ट संकेतों के अतिरिक्त अंतर्निहित संकेतों का उपयोग करते हैं, जैसे कि ऋणात्मक बाइनरी, आधार -2 का उपयोग करते हुए। अन्य आधारों के लिए अनुरूप विधि तैयार किए जा सकते हैं, चाहे धनात्मक, ऋणात्मक, भिन्नात्मक, या ऐसे विषयों पर अन्य विस्तार है।


ऐसा कोई निश्चित मानदंड नहीं है जिसके आधार पर कोई भी प्रतिनिधित्व सार्वभौमिक रूप से श्रेष्ठ हो। पूर्णांकों के लिए, अधिकांश वर्तमान कंप्यूटिंग उपकरणों में उपयोग किया जाने वाला प्रतिनिधित्व दो का पूरक है, हालांकि UNIVAC 1100/2200 श्रृंखला मेनफ्रेम के पूरक का उपयोग करते हैं।
ऐसा कोई निश्चित मानदंड नहीं है जिसके आधार पर कोई भी प्रतिनिधित्व सार्वभौमिक रूप से श्रेष्ठ हो। पूर्णांकों के लिए, अधिकांश वर्तमान कंप्यूटिंग उपकरणों में उपयोग किया जाने वाला प्रतिनिधित्व दो का कॉम्प्लीमेंट है, चूँकि UNIVAC 1100/2200 श्रृंखला मेनफ्रेम के कॉम्प्लीमेंट का उपयोग करते हैं।




Line 12: Line 12:
== इतिहास ==
== इतिहास ==


डिजिटल कंप्यूटिंग के शुरुआती दिनों को हार्डवेयर प्रौद्योगिकी और गणित प्रौद्योगिकी (नंबरिंग सिस्टम) दोनों के बारे में प्रतिस्पर्धी विचारों द्वारा चिह्नित किया गया था। बड़ी बहसों में से नकारात्मक संख्याओं का प्रारूप था, जिसमें उस युग के कुछ शीर्ष विशेषज्ञों ने बहुत मजबूत और भिन्न राय व्यक्त की थी। खेमे ने दो के पूरक, उस व्यवस्था का समर्थन किया जो आज प्रबल है। अन्य शिविर ने लोगों के पूरक का समर्थन किया, जहां सभी बिट्स को उसके सकारात्मक समकक्ष में उलटा करके नकारात्मक मान बनाया जाता है। तीसरे समूह ने संकेत-परिमाण का समर्थन किया, जहां शब्द के उच्चतम-क्रम बिट को टॉगल करके मान को सकारात्मक से नकारात्मक में बदल दिया जाता है।
डिजिटल कंप्यूटिंग के प्रारंभ दिनों को हार्डवेयर प्रौद्योगिकी और गणित प्रौद्योगिकी (नंबवलय सिस्टम) दोनों के बारे में प्रतिस्पर्धी विचारों द्वारा चिह्नित किया गया था। बड़ी बहसों में से ऋणात्मक संख्याओं का प्रारूप था, जिसमें उस युग के कुछ शीर्ष विशेषज्ञों ने बहुत शसक्त और भिन्न राय व्यक्त की थी। शिविर ने दो के पूरक, उस व्यवस्था का समर्थन किया जो आज प्रबल है। अन्य शिविर ने लोगों के कॉम्प्लीमेंट का समर्थन किया, जहां सभी बिट्स को उसके धनात्मक समकक्ष में विपरीत करके ऋणात्मक मान बनाया जाता है। तीसरे समूह ने संकेत-परिमाण का समर्थन किया, जहां शब्द के उच्चतम-क्रम बिट को टॉगल करके मान को धनात्मक से ऋणात्मक में बदल दिया जाता है।


प्रत्येक प्रणाली के पक्ष और विपक्ष में तर्क थे। मेमोरी डंप (1960 के दशक में सामान्य प्रक्रिया) का आसान पता लगाने के लिए साइन-मैग्नीट्यूड की अनुमति दी गई है क्योंकि छोटे संख्यात्मक मान कम 1 बिट का उपयोग करते हैं। ये प्रणालियाँ लोगों को आंतरिक रूप से गणित का पूरक बनाती हैं, इसलिए जब संख्याओं को रजिस्टर से गणित इकाई में प्रेषित किया जाता है तो उन्हें लोगों के पूरक मूल्यों में परिवर्तित करना होगा और फिर जब परिणाम वापस रजिस्टर में प्रेषित किया जाता है तो उन्हें वापस संकेत-परिमाण में परिवर्तित करना होगा।. इलेक्ट्रॉनिक्स को अन्य प्रणालियों की तुलना में अधिक गेटों की आवश्यकता होती है{{snd}} प्रमुख चिंता का विषय तब था जब अलग-अलग ट्रांजिस्टर की लागत और पैकेजिंग महत्वपूर्ण थी। आईबीएम साइन-मैग्नीट्यूड के शुरुआती समर्थकों में से था, उनके [[आईबीएम 704]], [[आईबीएम 709]] और [[आईबीएम 7090]] श्रृंखला के कंप्यूटर शायद इसका उपयोग करने के लिए सबसे प्रसिद्ध सिस्टम थे।
प्रत्येक प्रणाली के पक्ष और विपक्ष में लॉजिक थे। मेमोरी डंप (1960 के दशक में सामान्य प्रक्रिया) का सरल पता लगाने के लिए साइन-मैग्नीट्यूड की अनुमति दी गई है क्योंकि छोटे संख्यात्मक मान कम 1 बिट का उपयोग करते हैं। ये प्रणालियाँ लोगों को आंतरिक रूप से गणित का कॉम्प्लीमेंट बनाती हैं, इसलिए जब संख्याओं को रजिस्टर से गणित इकाई में प्रेषित किया जाता है तो उन्हें लोगों के कॉम्प्लीमेंट मानो में परिवर्तित करना होगा और फिर जब परिणाम वापस रजिस्टर में प्रेषित किया जाता है तो उन्हें वापस संकेत-परिमाण में परिवर्तित करना होगा।. इलेक्ट्रॉनिक्स को अन्य प्रणालियों की तुलना में अधिक गेटों की आवश्यकता होती है{{snd}} प्रमुख चिंता का विषय तब था जब अलग-अलग ट्रांजिस्टर की कास्ट और पैकेजिंग महत्वपूर्ण थी। आईबीएम साइन-मैग्नीट्यूड के प्रारंभ समर्थकों में से था, उनके [[आईबीएम 704]], [[आईबीएम 709]] और [[आईबीएम 7090]] श्रृंखला के कंप्यूटर संभवतः इसका उपयोग करने के लिए सबसे प्रसिद्ध सिस्टम थे।


वन्स के पूरक ने कुछ हद तक सरल हार्डवेयर डिज़ाइन की अनुमति दी, क्योंकि गणित इकाई में और उससे पास होने पर मूल्यों को परिवर्तित करने की कोई आवश्यकता नहीं थी। लेकिन इसने संकेत-परिमाण के साथ अवांछनीय विशेषता भी साझा की: [[नकारात्मक शून्य]] (−0) का प्रतिनिधित्व करने की क्षमता। नकारात्मक शून्य बिल्कुल सकारात्मक शून्य की तरह व्यवहार करता है: जब किसी भी गणना में ऑपरेंड के रूप में उपयोग किया जाता है, तो परिणाम वही होगा चाहे ऑपरेंड सकारात्मक या नकारात्मक शून्य हो। नुकसान यह है कि शून्य के साथ समानता की जाँच करते समय समान मूल्य के दो रूपों के अस्तित्व के लिए दो तुलनाओं की आवश्यकता होती है। किसी के पूरक घटाव का परिणाम अंततः उधार (नीचे वर्णित) भी हो सकता है। यह तर्क दिया जा सकता है कि यह जोड़ और घटाव तर्क को अधिक जटिल बनाता है या यह इसे सरल बनाता है, क्योंकि घटाव के लिए बस दूसरे ऑपरेंड के बिट्स को उल्टा करने की आवश्यकता होती है क्योंकि यह योजक को पास किया जाता है। [[PDP-1]], CDC 160 श्रृंखला, [[CDC 3000]] श्रृंखला, CDC 6000 श्रृंखला, [[UNIVAC 1100]] श्रृंखला, और [[LINC]] कंप्यूटर पूरक प्रतिनिधित्व का उपयोग करते हैं।
वन्स के कॉम्प्लीमेंट ने कुछ सीमा तक सरल हार्डवेयर डिज़ाइन की अनुमति दी, क्योंकि गणित इकाई में और उससे पास होने पर मानो को परिवर्तित करने की कोई आवश्यकता नहीं थी। किंतु इसने संकेत-परिमाण के साथ अवांछनीय विशेषता भी साझा की: [[नकारात्मक शून्य|ऋणात्मक शून्य]] (−0) का प्रतिनिधित्व करने की क्षमता है जिससे ऋणात्मक शून्य बिल्कुल धनात्मक शून्य की तरह व्यवहार करता है: जब किसी भी गणना में ऑपरेंड के रूप में उपयोग किया जाता है, तो परिणाम वही होगा चाहे ऑपरेंड धनात्मक या ऋणात्मक शून्य हो। इसमें हानि यह है कि शून्य के साथ समानता की जाँच करते समय समान मूल्य के दो रूपों के अस्तित्व के लिए दो तुलनाओं की आवश्यकता होती है। किसी के कॉम्प्लीमेंट घटाव का परिणाम अंततः उधार (नीचे वर्णित) भी हो सकता है। यह लॉजिक दिया जा सकता है कि यह जोड़ और घटाव लॉजिक को अधिक काम्प्लेक्स बनाता है या यह इसे सरल बनाता है, क्योंकि घटाव के लिए बस दूसरे ऑपरेंड के बिट्स को विपरीत करने की आवश्यकता होती है क्योंकि यह योजक को पास किया जाता है। [[PDP-1]], CDC 160 श्रृंखला, [[CDC 3000]] श्रृंखला, CDC 6000 श्रृंखला, [[UNIVAC 1100]] श्रृंखला, और [[LINC]] कंप्यूटर कॉम्प्लीमेंट प्रतिनिधित्व का उपयोग करते हैं।


टू का पूरक हार्डवेयर में लागू करना सबसे आसान है, जो इसकी व्यापक लोकप्रियता का अंतिम कारण हो सकता है।<ref>{{cite journal|title=उच्च निष्पादन डीएफई के लिए दो पूरक संगणना साझाकरण गुणक और इसके अनुप्रयोग|first1=Hunsoo|last1=Choo|first2=K.|last2=Muhammad|first3=K.|last3=Roy|journal=IEEE Transactions on Signal Processing|volume=51|issue=2|date=February 2003|pages=458–469|doi=10.1109/TSP.2002.806984|bibcode=2003ITSP...51..458C |url=https://www.academia.edu/29135370}}</ref> प्रारंभिक मेनफ्रेम पर प्रोसेसर में अक्सर हजारों ट्रांजिस्टर शामिल होते थे, इसलिए महत्वपूर्ण संख्या में ट्रांजिस्टर को खत्म करना महत्वपूर्ण लागत बचत थी। मेनफ्रेम जैसे आईबीएम सिस्टम/360, [[जीई-600 श्रृंखला]],<ref>{{cite book|url=http://ed-thelen.org/comp-hist/GE-635.html#Binary%20Fixed-Point%20Numbers|title=GE-625 / 635 Programming Reference Manual|publisher=[[General Electric]]|date=January 1966|access-date=August 15, 2013}}</ref> और [[पीडीपी-6]] और [[पीडीपी-10]] दो पूरक का उपयोग करते हैं, जैसे कि [[पीडीपी-5]] और [[पीडीपी-8]] और [[पीडीपी-11]] और [[वैक्स]] मशीनें जैसे मिनी कंप्यूटर। प्रारंभिक एकीकृत-सर्किट-आधारित सीपीयू ([[इंटेल 8080]], आदि) के वास्तुकारों ने भी दो के पूरक गणित का उपयोग करना चुना। जैसे-जैसे आईसी तकनीक उन्नत हुई, x[[86]] सहित लगभग सभी प्रोसेसरों में टू की पूरक तकनीक को अपनाया गया,<ref>{{cite book|url=http://download.intel.com/products/processor/manual/325462.pdf|title=Intel 64 and IA-32 Architectures Software Developer's Manual|at=Section 4.2.1|publisher=[[Intel]]|access-date=August 6, 2013}}</ref> एम68के, पावर आईएसए,<ref>{{cite book|url=https://www.power.org/documentation/power-isa-version-2-07/|title=Power ISA Version 2.07|at=Section 1.4|publisher=[[Power.org]]|access-date=August 6, 2013}},</ref> [[एमआईपीएस वास्तुकला]], [[स्पार्क]], [[एआरएम वास्तुकला]], [[इटेनियम]], [[पीए-जोखिम]], और [[डीईसी अल्फा]]।
टू का कॉम्प्लीमेंट हार्डवेयर में प्रयुक्त करना सबसे आसान है, जो इसकी व्यापक लोकप्रियता का अंतिम कारण हो सकता है।<ref>{{cite journal|title=उच्च निष्पादन डीएफई के लिए दो पूरक संगणना साझाकरण गुणक और इसके अनुप्रयोग|first1=Hunsoo|last1=Choo|first2=K.|last2=Muhammad|first3=K.|last3=Roy|journal=IEEE Transactions on Signal Processing|volume=51|issue=2|date=February 2003|pages=458–469|doi=10.1109/TSP.2002.806984|bibcode=2003ITSP...51..458C |url=https://www.academia.edu/29135370}}</ref> प्रारंभिक मेनफ्रेम पर प्रोसेसर में अधिकांशत: हजारों ट्रांजिस्टर सम्मिलित होते थे, इसलिए महत्वपूर्ण संख्या में ट्रांजिस्टर को समाप्त करना महत्वपूर्ण निवेश बचत थी। आईबीएम सिस्टम/360, जीई-600 श्रृंखला,<ref>{{cite book|url=http://ed-thelen.org/comp-hist/GE-635.html#Binary%20Fixed-Point%20Numbers|title=GE-625 / 635 Programming Reference Manual|publisher=[[General Electric]]|date=January 1966|access-date=August 15, 2013}}</ref> और पीडीपी-6 और पीडीपी-10 जैसे मेनफ्रेम दो कॉम्प्लीमेंट का उपयोग करते हैं, जैसे मिनी कंप्यूटर जैसे पीडीपी-5 और पीडीपी-8 और पीडीपी-11 और वैक्स मशीनें। प्रारंभिक एकीकृत-सर्किट-आधारित सीपीयू (इंटेल 8080, आदि) के आर्किटेक्ट ने भी दो के कॉम्प्लीमेंट गणित का उपयोग करना चुना। जैसे-जैसे IC तकनीक उन्नत हुई, x86, <ref>{{cite book|url=http://download.intel.com/products/processor/manual/325462.pdf|title=Intel 64 and IA-32 Architectures Software Developer's Manual|at=Section 4.2.1|publisher=[[Intel]]|access-date=August 6, 2013}}</ref> m68k, पावर ISA,<ref>{{cite book|url=https://www.power.org/documentation/power-isa-version-2-07/|title=Power ISA Version 2.07|at=Section 1.4|publisher=[[Power.org]]|access-date=August 6, 2013}},</ref> MIPS, SPARC, ARM, इटेनियम, PA-RISC और DEC अल्फा सहित लगभग सभी प्रोसेसर में दो की कॉम्प्लीमेंट तकनीक को अपनाया गया है।


== चिह्न-परिमाण ==
== चिह्न-परिमाण ==


{|class="wikitable" style="float:right; width: 20em; margin-left: 1em; text-align:center"
{|class="wikitable" style="float:right; width: 20em; margin-left: 1em; text-align:center"
|+ Eight-bit sign–magnitude
|+ {| आठ-बिट संकेत-परिमाण
|-
|-
! Binary value
!बाइनरी मान
! Sign–magnitude interpretation
!संकेत-परिमाण व्याख्या
! Unsigned interpretation
!अहस्ताक्षरित व्याख्या
|-
|-
| 00000000 || 0 || 0
|00000000
|0
|0
|-
|-
| 00000001 || 1 || 1
|00000001
|1
|1
|-
|-
| ⋮ || ⋮ || ⋮
|⋮
|⋮
|⋮
|-
|-
| 01111101 || 125 || 125
|01111101
|125
|125
|-
|-
| 01111110 || 126 || 126
|01111110
|126
|126
|-
|-
| 01111111 || 127 || 127
|01111111
|127
|127
|-
|-
| 10000000 || −0 || 128
|10000000
|−0
|128
|-
|-
| 10000001 || −1 || 129
|10000001
|−1
|129
|-
|-
| 10000010 || −2 || 130
|10000010
|−2
|130
|-
|-
| ⋮ || ⋮ || ⋮
|⋮
|⋮
|⋮
|-
|-
| 11111101 || −125 || 253
|11111101
|−125
|253
|-
|-
| 11111110 || −126 || 254
|11111110
|−126
|254
|-
|-
| 11111111 || −127 || 255
|11111111
|−127
|255
|}
|}
साइन-परिमाण प्रतिनिधित्व में, जिसे साइन-एंड-मैग्नीट्यूड या हस्ताक्षरित परिमाण भी कहा जाता है, हस्ताक्षरित संख्या को [[साइन बिट]] के लिए संख्या के संकेत के अनुरूप बिट पैटर्न द्वारा दर्शाया जाता है (अक्सर [[सबसे महत्वपूर्ण बिट]], ए के लिए 0 पर सेट होता है) सकारात्मक संख्या और ऋणात्मक संख्या के लिए 1), और शेष बिट्स के लिए संख्या का परिमाण (या निरपेक्ष मान)। उदाहरण के लिए, आठ-बिट [[बाइट]] में, केवल सात बिट परिमाण का प्रतिनिधित्व करते हैं, जो 0000000 (0) से 1111111 (127) तक हो सकते हैं। इस प्रकार -127 से लेकर संख्याएँ<sub>10</sub> से +127 तक<sub>10</sub> साइन बिट (आठवां बिट) जोड़ने के बाद इसे दर्शाया जा सकता है। उदाहरण के लिए, −43<sub>10</sub> आठ-बिट बाइट में एन्कोड किया गया 10101011 है जबकि 43<sub>10</sub> 00101011 है। संकेत-परिमाण प्रतिनिधित्व का उपयोग करने के कई परिणाम होते हैं जो उन्हें लागू करने के लिए और अधिक जटिल बनाते हैं:<ref name="cs315">{{cite web |last1=Bacon |first1=Jason W. |url=http://www.cs.uwm.edu/classes/cs315/Bacon/Lecture/HTML/ch04s11.html |title=Computer Science 315 Lecture Notes |access-date=21 February 2020 |date=2010–2011}}</ref>
साइन-परिमाण प्रतिनिधित्व में, जिसे साइन-एंड-मैग्नीट्यूड या हस्ताक्षरित परिमाण भी कहा जाता है, हस्ताक्षरित संख्या को साइन बिट के लिए संख्या के संकेत के अनुरूप बिट पैटर्न द्वारा दर्शाया जाता है (अक्सर सबसे महत्वपूर्ण बिट, ए के लिए 0 पर सेट होता है) सकारात्मक संख्या और ऋणात्मक संख्या के लिए 1), और शेष बिट्स के लिए संख्या का परिमाण (या निरपेक्ष मान)। उदाहरण के लिए, आठ-बिट बाइट में, केवल सात बिट परिमाण का प्रतिनिधित्व करते हैं, जो 0000000 (0) से 1111111 (127) तक हो सकते हैं। इस प्रकार साइन बिट (आठवां बिट) जोड़ने के बाद −127<sub>10</sub> to +127<sub>10</sub> तक की संख्याओं को दर्शाया जा सकता है। उदाहरण के लिए, आठ-बिट बाइट में एन्कोड किया गया −43<sub>10</sub> 10101011 है जबकि 43<sub>10</sub> '''0'''0101011 है। साइन-परिमाण प्रतिनिधित्व का उपयोग करने के अनेक परिणाम होते हैं जो उन्हें प्रयुक्त करने के लिए और अधिक काम्प्लेक्स बनाते हैं: <ref name="cs315">{{cite web |last1=Bacon |first1=Jason W. |url=http://www.cs.uwm.edu/classes/cs315/Bacon/Lecture/HTML/ch04s11.html |title=Computer Science 315 Lecture Notes |access-date=21 February 2020 |date=2010–2011}}</ref>
# शून्य को दर्शाने के दो तरीके हैं, 00000000 (0) और 10000000 (−0).
# शून्य को दर्शाने के दो विधि हैं, 00000000 (0) और 10000000 (−0).
# जोड़ और घटाव के लिए साइन बिट के आधार पर अलग-अलग व्यवहार की आवश्यकता होती है, जबकि का पूरक साइन बिट को अनदेखा कर सकता है और केवल एंड-अराउंड कैरी कर सकता है, और दो का पूरक साइन बिट को अनदेखा कर सकता है और अतिप्रवाह व्यवहार पर निर्भर कर सकता है।
# जोड़ और घटाव के लिए साइन बिट के आधार पर अलग-अलग व्यवहार की आवश्यकता होती है, जबकि इसका कॉम्प्लीमेंट साइन बिट को अनदेखा कर सकता है और केवल एंड-अराउंड कैरी कर सकता है, और दो का कॉम्प्लीमेंट साइन बिट को अनदेखा कर सकता है और अतिप्रवाह व्यवहार पर निर्भर कर सकता है।
# तुलना के लिए साइन बिट का निरीक्षण करना भी आवश्यक है, जबकि दो के पूरक में, कोई आसानी से दो संख्याओं को घटा सकता है, और जांच सकता है कि परिणाम सकारात्मक है या नकारात्मक।
# तुलना के लिए साइन बिट का निरीक्षण करना भी आवश्यक है, जबकि दो के कॉम्प्लीमेंट में, कोई सरलता से दो संख्याओं को घटा सकता है, और जांच कर सकता है कि परिणाम धनात्मक या ऋणात्मक है।
# दो के पूरक के मामले में न्यूनतम ऋणात्मक संख्या -128 के बजाय -127 है।
# दो के कॉम्प्लीमेंट के स्थिति में न्यूनतम ऋणात्मक संख्या -128 के अतिरिक्त -127 है।


यह दृष्टिकोण किसी चिह्न को दिखाने के सामान्य तरीके (संख्या के परिमाण के आगे + या − लगाने) से सीधे तुलनीय है। कुछ प्रारंभिक बाइनरी कंप्यूटर (उदाहरण के लिए, आईबीएम 7090) इस प्रतिनिधित्व का उपयोग करते हैं, शायद सामान्य उपयोग के साथ इसके प्राकृतिक संबंध के कारण। [[फ़्लोटिंग-पॉइंट अंकगणित]] | फ़्लोटिंग-पॉइंट मानों में [[महत्व]] का प्रतिनिधित्व करने का संकेत-परिमाण सबसे आम तरीका है।
यह दृष्टिकोण किसी चिह्न को दिखाने के सामान्य विधि (संख्या के परिमाण के आगे + या − लगाने) से सीधे तुलनीय है। कुछ प्रारंभिक बाइनरी कंप्यूटर (उदाहरण के लिए, आईबीएम 7090) इस प्रतिनिधित्व का उपयोग करते हैं, संभवतः सामान्य उपयोग के साथ इसके प्राकृतिक संबंध के कारण। [[फ़्लोटिंग-पॉइंट अंकगणित]] या फ़्लोटिंग-पॉइंट मानों में [[महत्व]] का प्रतिनिधित्व करने का संकेत-परिमाण सबसे समान्य विधि है


==का पूरक==
==वन' कॉम्प्लीमेंट ==
{{Main|Ones' complement}}
{{Main|वन' कॉम्प्लीमेंट }}


{|class="wikitable" style="float:right; width: 20em; margin-left: 1em; text-align:center"
{|class="wikitable" style="float:right; width: 20em; margin-left: 1em; text-align:center"
|+ Eight-bit ones' complement
|+ आठ-बिट वाले का कॉम्प्लीमेंट
|-
|-
! Binary value
! बाइनरी मान
! Ones' complement interpretation
!लोगों की कॉम्प्लीमेंट व्याख्या
! Unsigned interpretation
!अहस्ताक्षरित व्याख्या
|-
|-
| 00000000 || 0 || 0
| 00000000 || 0 || 0
Line 99: Line 125:
| 11111111 || −0 || 255
| 11111111 || −0 || 255
|}
|}
लोगों के पूरक प्रतिनिधित्व में,<ref>{{Cite patent|title=ऐरे मल्टीप्लायर किसी के पूरक प्रारूप में काम कर रहा है|gdate=1981-03-10|country=US|number=4484301|url=https://patents.google.com/patent/US4484301A/en}}</ref> ऋणात्मक संख्या को सकारात्मक संख्या के बिटवाइज़ NOT (अर्थात पूरक) के अनुरूप बिट पैटर्न द्वारा दर्शाया जाता है। चिह्न-परिमाण प्रतिनिधित्व की तरह, किसी के पूरक में 0: 00000000 (+0) और 11111111 (−0) के दो प्रतिनिधित्व होते हैं।<ref>{{Cite patent|title=एक का पूरक क्रिप्टोग्राफ़िक कॉम्बिनर|gdate=1999-12-11|country=US|number=6760440|url=https://patents.google.com/patent/US6760440B1/en}}</ref>
लोगों के कॉम्प्लीमेंट प्रतिनिधित्व में,<ref>{{Cite patent|title=ऐरे मल्टीप्लायर किसी के पूरक प्रारूप में काम कर रहा है|gdate=1981-03-10|country=US|number=4484301|url=https://patents.google.com/patent/US4484301A/en}}</ref> ऋणात्मक संख्या को धनात्मक संख्या के बिटवाइज़ NOT (अर्थात पूरक) के अनुरूप बिट पैटर्न द्वारा दर्शाया जाता है। चिह्न-परिमाण प्रतिनिधित्व की तरह, किसी के कॉम्प्लीमेंट में 0: 00000000 (+0) और 11111111 (−0) के दो प्रतिनिधित्व होते हैं।<ref>{{Cite patent|title=एक का पूरक क्रिप्टोग्राफ़िक कॉम्बिनर|gdate=1999-12-11|country=US|number=6760440|url=https://patents.google.com/patent/US6760440B1/en}}</ref>
उदाहरण के तौर पर, 00101011 (43) का पूरक प्रपत्र<sub>10</sub>) 11010100 (−43) हो जाता है<sub>10</sub>). किसी के पूरक का उपयोग करके [[हस्ताक्षर]]ित संख्याओं की सीमा का प्रतिनिधित्व किया जाता है {{nobr|−(2<sup>''N''−1</sup> − 1)}} को {{nobr|(2<sup>''N''−1</sup> − 1)}} और ±0.  पारंपरिक आठ-बिट बाइट -127 है<sub>10</sub> से +127 तक<sub>10</sub> शून्य के साथ या तो 00000000 (+0) या 11111111 (−0) है।


इस प्रणाली में प्रदर्शित दो संख्याओं को जोड़ने के लिए, पारंपरिक बाइनरी जोड़ किया जाता है, लेकिन फिर एंड-अराउंड कैरी करना आवश्यक होता है: यानी, किसी भी परिणामी [[झंडा ले जाना]] को परिणामी योग में वापस जोड़ें।<ref>{{cite journal |last1=Shedletsky |first1=John J. |title=एंड-अराउंड-कैरी एडर के अनुक्रमिक और अनिश्चित व्यवहार पर टिप्पणी करें|journal=IEEE Transactions on Computers |date=1977 |volume=26 |issue=3 |pages=271–272 |doi=10.1109/TC.1977.1674817|s2cid=14661474 |url=https://www.semanticscholar.org/paper/Comment-on-the-Sequential-and-Indeterminate-of-an-Shedletsky/17d4d66d80113d1bdcffd6dd08695fe1b8a52342?p2df }}</ref> यह देखने के लिए कि यह क्यों आवश्यक है, निम्नलिखित उदाहरण पर विचार करें जिसमें −1 (1111110) को +2 (00000010) में जोड़ने का मामला दिखाया गया है:
उदाहरण के तौर पर, 00101011 (43<sub>10</sub>) का कॉम्प्लीमेंट रूप 11010100 (−43<sub>10</sub>). हो जाता है। किसी के कॉम्प्लीमेंट का उपयोग करके हस्ताक्षरित संख्याओं की श्रेणी को −(2<sup>''N''−1</sup> − 1) to (2<sup>''N''−1</sup> − 1) और ±0 द्वारा दर्शाया जाता है। पारंपरिक आठ-बिट बाइट −127<sub>10</sub> to +127<sub>10</sub> है और शून्य या तो 00000000 (+0) या 11111111 (−0) है।


<पूर्व>
इस प्रणाली में प्रदर्शित दो संख्याओं को जोड़ने के लिए, पारंपरिक बाइनरी जोड़ किया जाता है, किंतु फिर एंड-अराउंड कैरी करना आवश्यक होता है: अथार्त, किसी भी परिणामी कैरी को परिणामी योग में वापस जोड़ें।<ref>{{cite journal |last1=Shedletsky |first1=John J. |title=एंड-अराउंड-कैरी एडर के अनुक्रमिक और अनिश्चित व्यवहार पर टिप्पणी करें|journal=IEEE Transactions on Computers |date=1977 |volume=26 |issue=3 |pages=271–272 |doi=10.1109/TC.1977.1674817|s2cid=14661474 |url=https://www.semanticscholar.org/paper/Comment-on-the-Sequential-and-Indeterminate-of-an-Shedletsky/17d4d66d80113d1bdcffd6dd08695fe1b8a52342?p2df }}</ref> यह देखने के लिए कि यह क्यों आवश्यक है, निम्नलिखित उदाहरण पर विचार करें जिसमें −1 (1111110) को +2 (00000010) में जोड़ने का स्थिति दिखाया गया है:
  द्विआधारी दशमलव
  11111110 −1
+ 00000010 +2
─────────── ──
1 00000000 0 ← सही उत्तर नहीं है
  1 +1 ← कैरी जोड़ें
─────────── ──
  0000001 1 ← सही उत्तर
</पूर्व>


  binary    decimal
    11111110    −1
+  00000010    +2
───────────    ──
  1 00000000      0  ← Not the correct answer
          1    +1  ← Add carry
───────────    ──
    00000001      1  ← Correct answer
पिछले उदाहरण में, पहला बाइनरी जोड़ 00000000 देता है, जो गलत है। सही परिणाम (0000001) तभी दिखाई देता है जब कैरी को वापस जोड़ा जाता है।
पिछले उदाहरण में, पहला बाइनरी जोड़ 00000000 देता है, जो गलत है। सही परिणाम (0000001) तभी दिखाई देता है जब कैरी को वापस जोड़ा जाता है।


शब्दावली पर टिप्पणी: सिस्टम को लोगों के पूरक के रूप में संदर्भित किया जाता है क्योंकि सकारात्मक मान <var>x</var> का नेगेशन#प्रोग्रामिंग (<var>x</var> के बिटवाइज़ NOT के रूप में दर्शाया गया है) भी हो सकता है शून्य के इकाइयों के पूरक प्रतिनिधित्व से <var>x</var> को घटाकर गठित किया गया है जो इकाइयों (−0) का लंबा अनुक्रम है। दूसरी ओर, दो का पूरक अंकगणित, दो की बड़ी घात से <var>x</var> को घटाकर <var>x</var> का निषेधन बनाता है, जो +0 से सर्वांगसमता संबंध है।<ref>Donald Knuth: ''[[The Art of Computer Programming]]'', Volume 2: Seminumerical Algorithms, chapter 4.1</ref> इसलिए, ही नकारात्मक मान के के पूरक और दो के पूरक निरूपण में का अंतर होगा।
शब्दावली पर टिप्पणी: सिस्टम को लोगों के कॉम्प्लीमेंट के रूप में संदर्भित किया जाता है क्योंकि धनात्मक मान <var>x</var> का नेगेशन या प्रोग्रामिंग (<var>x</var> के बिटवाइज़ NOT के रूप में दर्शाया गया है) भी हो सकता है शून्य के इकाइयों के कॉम्प्लीमेंट प्रतिनिधित्व से <var>x</var> को घटाकर भी बनाया जा सकता है। जो इकाइयों (−0) का लंबा अनुक्रम है। दूसरी ओर, दो का कॉम्प्लीमेंट अंकगणित, दो की बड़ी घात से <var>x</var> को घटाकर <var>x</var> का निषेधन बनाता है, जो +0 से सर्वांगसमता संबंध है।<ref>Donald Knuth: ''[[The Art of Computer Programming]]'', Volume 2: Seminumerical Algorithms, chapter 4.1</ref> इसलिए, ही ऋणात्मक मान के के कॉम्प्लीमेंट और दो के कॉम्प्लीमेंट निरूपण में का अंतर होगा।


ध्यान दें कि किसी ऋणात्मक संख्या का पूरक प्रतिनिधित्व चिह्न-परिमाण प्रतिनिधित्व से केवल बिटवाइज़ परिमाण को पूरक करके (पहले के बाद सभी बिट्स को उलटा करके) प्राप्त किया जा सकता है। उदाहरण के लिए, दशमलव संख्या −125 अपने चिह्न-परिमाण प्रतिनिधित्व 111111101 के साथ किसी के पूरक रूप में 10000010 के रूप में दर्शाया जा सकता है।
ध्यान दें कि किसी ऋणात्मक संख्या का कॉम्प्लीमेंट प्रतिनिधित्व चिह्न-परिमाण प्रतिनिधित्व से केवल बिटवाइज़ परिमाण को कॉम्प्लीमेंट करके (पहले के बाद सभी बिट्स को विपरीत करके) प्राप्त किया जा सकता है। उदाहरण के लिए, दशमलव संख्या −125 अपने चिह्न-परिमाण प्रतिनिधित्व 111111101 के साथ किसी के कॉम्प्लीमेंट रूप में 10000010 के रूप में दर्शाया जा सकता है।


== दो का पूरक ==
== दो कॉम्प्लीमेंट ==
{{Main|Two's complement}}
{{Main|दो कॉम्प्लीमेंट}}


{|class="wikitable" style="float:right; width: 20em; margin-left: 1em; text-align:center"
{|class="wikitable" style="float:right; width: 20em; margin-left: 1em; text-align:center"
|+ Eight-bit two's complement
|+ आठ-बिट दो का कॉम्प्लीमेंट
|-
|-
! Binary value
! बाइनरी मान
! Two's complement interpretation
!दो की कॉम्प्लीमेंट व्याख्या
! Unsigned interpretation
!बिना हस्ताक्षरित व्याख्या
|-
|-
| 00000000 || 0 || 0
| 00000000 || 0 || 0
Line 153: Line 177:
| 11111111 || −1 || 255
| 11111111 || −1 || 255
|}
|}
दोनों के पूरक प्रतिनिधित्व में, नकारात्मक संख्या को सकारात्मक संख्या प्लस वन के बिटवाइज़ NOT (यानी पूरक) के अनुरूप बिट पैटर्न द्वारा दर्शाया जाता है, अर्थात लोगों के पूरक प्लस वन के लिए। यह 0 के एकाधिक अभ्यावेदन की समस्याओं और उनके पूरक निरूपण को अंत तक ले जाने की आवश्यकता को दूर करता है। इसे अहस्ताक्षरित पूर्णांक में इसके मान के व्युत्क्रम का प्रतिनिधित्व करने वाला सबसे महत्वपूर्ण बिट भी माना जा सकता है; 8-बिट अहस्ताक्षरित बाइट में, सबसे महत्वपूर्ण बिट 128वें स्थान का प्रतिनिधित्व करता है, जहां दो के पूरक में वह बिट -128 का प्रतिनिधित्व करेगा।
दोनों के कॉम्प्लीमेंट प्रतिनिधित्व में, ऋणात्मक संख्या को धनात्मक संख्या प्लस वन के बिटवाइज़ NOT (अथार्त पूरक) के अनुरूप बिट पैटर्न द्वारा दर्शाया जाता है, अर्थात लोगों के कॉम्प्लीमेंट प्लस वन के लिए यह 0 के एकाधिक अभ्यावेदन की समस्याओं और उनके कॉम्प्लीमेंट निरूपण को अंत तक ले जाने की आवश्यकता को दूर करता है। इसे अहस्ताक्षरित पूर्णांक में इसके मान के व्युत्क्रम का प्रतिनिधित्व करने वाला सबसे महत्वपूर्ण बिट भी माना जा सकता है; जिससे यह 8-बिट अहस्ताक्षरित बाइट में, सबसे महत्वपूर्ण बिट 128वें स्थान का प्रतिनिधित्व करता है, जहां दो के कॉम्प्लीमेंट में वह बिट -128 का प्रतिनिधित्व करेगा।


दो-पूरक में, केवल शून्य होता है, जिसे 00000000 के रूप में दर्शाया जाता है। किसी संख्या (चाहे नकारात्मक या सकारात्मक) को नकारना सभी बिट्स को उल्टा करके और फिर उस परिणाम में जोड़कर किया जाता है।<ref>{{cite web|title=दो का अनुपूरण|url=http://www.cs.cornell.edu/~tomf/notes/cps104/twoscomp.html|publisher=[[Cornell University]]|date=April 2000|author=Thomas Finley|access-date=15 September 2015}}</ref> यह वास्तव में सभी पूर्णांकों पर रिंग (गणित) संरचना को दर्शाता है दो|2 की [[मॉड्यूलर अंकगणित]]ीय शक्ति<sup>एन</sup>: <math>\mathbb{Z}/2^N\mathbb{Z}</math>. दो-पूरक पूर्णांकों की जोड़ी को जोड़ना हस्ताक्षर की जोड़ी को जोड़ने के समान है ([[पूर्णांक अतिप्रवाह]] का पता लगाने के अलावा, यदि ऐसा किया जाता है); यही बात घटाव के लिए भी सच है और यहां तक ​​कि किसी उत्पाद के एन न्यूनतम महत्वपूर्ण बिट्स (गुणन का मूल्य) के लिए भी सच है। उदाहरण के लिए, 127 और −128 का दो-पूरक जोड़ 127 और 128 के अहस्ताक्षरित जोड़ के समान बाइनरी बिट पैटर्न देता है, जैसा कि 8-बिट दो की पूरक तालिका से देखा जा सकता है।
दो के पूरक में, केवल शून्य होता है, जिसे 00000000 के रूप में दर्शाया जाता है। किसी संख्या को अस्वीकारना (चाहे ऋणात्मक हो या धनात्मक) सभी बिट्स को विपरीत करके और फिर उस परिणाम में जोड़कर किया जाता है।<ref>{{cite web|title=दो का अनुपूरण|url=http://www.cs.cornell.edu/~tomf/notes/cps104/twoscomp.html|publisher=[[Cornell University]]|date=April 2000|author=Thomas Finley|access-date=15 September 2015}}</ref> यह वास्तव में सभी पूर्णांक मॉड्यूलो 2<sup>''N''</sup>: <math>\mathbb{Z}/2^N\mathbb{Z}</math> पर वलय संरचना को दर्शाता है। दो-पूरक पूर्णांकों की जोड़ी को जोड़ना अहस्ताक्षरित संख्याओं की जोड़ी को जोड़ने के समान है (अतिप्रवाह का पता लगाने के अलावा, यदि ऐसा किया जाता है); यही बात घटाव के लिए भी सच है और यहां तक कि किसी उत्पाद के एन न्यूनतम महत्वपूर्ण बिट्स (गुणन का मूल्य) के लिए भी सच है। उदाहरण के लिए, 127 और −128 का दो-पूरक जोड़ 127 और 128 के अहस्ताक्षरित जोड़ के समान बाइनरी बिट पैटर्न देता है, जैसा कि 8-बिट दो की पूरक तालिका से देखा जा सकता है।


दो के पूरक में किसी संख्या का निषेधन प्राप्त करने की आसान विधि इस प्रकार है:
दो के कॉम्प्लीमेंट में किसी संख्या का निषेधन प्राप्त करने की सरल विधि इस प्रकार है:


{|class="wikitable"
{|class="wikitable"
!
!
! Example 1
! उदाहरण 1
! Example 2
! उदाहरण 2
|-
|-
| 1. Starting from the right, find the first "1"
|1. दाएं से प्रारंभ करते हुए, पहला "1" खोजे
|align="center"| 0010100'''1'''
|align="center"| 0010100'''1'''
|align="center"| 00101'''1'''00
|align="center"| 00101'''1'''00
|-
|-
| 2. Invert all of the bits to the left of that "1"
|2. उस "1" के बाईं ओर के सभी बिट्स को विपरीत करें
|align="center"| '''1101011'''1
|align="center"| '''1101011'''1
|align="center"| '''11010'''100
|align="center"| '''11010'''100
Line 174: Line 198:
विधि दो:
विधि दो:


# संख्या के माध्यम से सभी बिट्स को उलटा करें
# संख्या के माध्यम से सभी बिट्स को विपरीत करें
# जोड़ें
# जोड़ें


उदाहरण: +2 के लिए, जो बाइनरी में 00000010 है (~ वर्ण C (प्रोग्रामिंग भाषा) बिटवाइज़ ऑपरेटर नहीं है, इसलिए ~X का अर्थ है X में सभी बिट्स को उल्टा करना):
उदाहरण: +2 के लिए, जो बाइनरी में 00000010 है (~ वर्ण C (प्रोग्रामिंग लैंग्वेज) बिटवाइज़ ऑपरेटर नहीं है, इसलिए ~X का अर्थ है X में सभी बिट्स को विपरीत करना है):


# ~00000010 → 11111101
# ~00000010 → 11111101
# 11111101 + 1 → 11111110 (दो के पूरक में −2)
# 11111101 + 1 → 11111110 (दो के कॉम्प्लीमेंट में −2)


== ऑफ़सेट बाइनरी ==
== ऑफ़सेट बाइनरी ==
{{Main|Offset binary}}
{{Main|ऑफ़सेट बाइनरी}}


{|class="wikitable" style="float:right; width: 20em; margin-left: 1em; text-align:center"
{|class="wikitable" style="float:right; width: 20em; margin-left: 1em; text-align:center"
|+ Eight-bit excess-128
|+ आठ-बिट अतिरिक्त-128
|-
|-
!Binary value
!बाइनरी मान
!Excess-128 interpretation
!अतिरिक्त-128 व्याख्या
!Unsigned interpretation
!बिना हस्ताक्षरित व्याख्या
|-
|-
| 00000000 || −128 || 0
| 00000000 || −128 || 0
Line 209: Line 233:
|-
|-
|}
|}
ऑफसेट बाइनरी प्रतिनिधित्व में, जिसे अतिरिक्त-<var>K</var> या पक्षपाती भी कहा जाता है,  हस्ताक्षरित संख्या को अहस्ताक्षरित संख्या प्लस <var>K</var> के अनुरूप बिट पैटर्न द्वारा दर्शाया जाता है, <var>K के साथ</var> पक्षपातपूर्ण मूल्य या ऑफसेट होना। इस प्रकार 0 को <var>K</var> द्वारा दर्शाया जाता है, और −<var>K</var> को पूर्ण-शून्य बिट पैटर्न द्वारा दर्शाया जाता है। इसे उपरोक्त दो-पूरक के  मामूली संशोधन और सामान्यीकरण के रूप में देखा जा सकता है, जो वस्तुतः है {{nobr|excess-(2<sup><var>N</var>−1</sup>)}} अस्वीकृत सबसे महत्वपूर्ण बिट के साथ प्रतिनिधित्व।


पक्षपातपूर्ण निरूपण अब मुख्य रूप से [[तैरनेवाला स्थल]] संख्याओं के प्रतिपादक के लिए उपयोग किया जाता है। [[IEEE 754]]|IEEE 754 फ़्लोटिंग-पॉइंट मानक एकल-सटीक (32-बिट) संख्या के घातांक फ़ील्ड को 8-बिट अतिरिक्त-127 फ़ील्ड के रूप में परिभाषित करता है। [[एकल परिशुद्धता]] (64-बिट) एक्सपोनेंट फ़ील्ड 11-बिट [[अतिरिक्त-1023]] फ़ील्ड है; प्रतिपादक पूर्वाग्रह देखें. इसका उपयोग बाइनरी-कोडित दशमलव संख्याओं के लिए अतिरिक्त-3 के रूप में भी किया जाता था।
 
 
ऑफसेट बाइनरी प्रतिनिधित्व में, जिसे अतिरिक्त-के या बायस्ड भी कहा जाता है, हस्ताक्षरित संख्या को अहस्ताक्षरित संख्या प्लस के के अनुरूप बिट पैटर्न द्वारा दर्शाया जाता है, जिसमें के बायसिंग मान या ऑफसेट होता है। इस प्रकार 0 को K द्वारा दर्शाया जाता है, और −K को पूर्ण-शून्य बिट पैटर्न द्वारा दर्शाया जाता है। इसे उपरोक्त दो-पूरक के मामूली संशोधन और सामान्यीकरण के रूप में देखा जा सकता है, जो वस्तुतः ऋणात्मक सबसे महत्वपूर्ण बिट के साथ अतिरिक्त{{nobr|-(2<sup><var>N</var>−1</sup>)}} प्रतिनिधित्व है।
 
पक्षपातपूर्ण निरूपण अब मुख्य रूप से फ़्लोटिंग-पॉइंट संख्याओं के प्रतिपादक के लिए उपयोग किया जाता है। आईईईई 754 फ़्लोटिंग-पॉइंट मानक एकल-सटीक (32-बिट) संख्या के घातांक फ़ील्ड को 8-बिट अतिरिक्त-127 फ़ील्ड के रूप में परिभाषित करता है। डबल-प्रिसिजन (64-बिट) एक्सपोनेंट फ़ील्ड 11-बिट अतिरिक्त-1023 फ़ील्ड है; प्रतिपादक पूर्वाग्रह देखें. इसका उपयोग बाइनरी-कोडित दशमलव संख्याओं के लिए अतिरिक्त-3 के रूप में भी किया जाता था।


== आधार −2 ==
== आधार −2 ==
{{See also|Negative base}}
{{See also|ऋणात्मक  आधार}}


{|class="wikitable" style="float:right; width: 20em; margin-left: 1em; text-align:center"
{|class="wikitable" style="float:right; width: 20em; margin-left: 1em; text-align:center"
|+ Eight-bit base −2
|+ आठ-बिट आधार −2
|-
|-
!Binary value
!बाइनरी मान
!Base −2 interpretation
!आधार −2 व्याख्या
!Unsigned interpretation
!बिना हस्ताक्षरित व्याख्या
|-
|-
| 00000000 || 0 ||  0
| 00000000 || 0 ||  0
Line 240: Line 267:
|-
|-
|}
|}
आधार -2 प्रतिनिधित्व में,  हस्ताक्षरित संख्या को आधार -2 के साथ  संख्या प्रणाली का उपयोग करके दर्शाया जाता है। पारंपरिक बाइनरी संख्या प्रणालियों में, आधार, या [[मूलांक]], 2 है; इस प्रकार सबसे दाहिना बिट 2 का प्रतिनिधित्व करता है<sup>0</sup>, अगला बिट 2 का प्रतिनिधित्व करता है<sup>1</sup>, अगला बिट 2<sup>2</sup>, इत्यादि. हालाँकि, आधार -2 के साथ  द्विआधारी संख्या प्रणाली भी संभव है। सबसे दाहिना बिट प्रतिनिधित्व करता है {{nowrap|(−2)<sup>0</sup> {{=}} +1}}, अगला बिट दर्शाता है {{nowrap|(−2)<sup>1</sup> {{=}} −2}}, अगला बिट {{nowrap|(−2)<sup>2</sup> {{=}} +4}} और इसी तरह, वैकल्पिक संकेत के साथ। जिन संख्याओं को चार बिट्स के साथ दर्शाया जा सकता है, उन्हें नीचे तुलना तालिका में दिखाया गया है।


प्रदर्शित की जा सकने वाली संख्याओं की सीमा असममित है। यदि शब्द में बिट्स की संख्या सम है, तो प्रदर्शित की जा सकने वाली सबसे बड़ी ऋणात्मक संख्या का परिमाण, प्रदर्शित की जा सकने वाली सबसे बड़ी धनात्मक संख्या से दोगुना बड़ा होता है, और यदि शब्द में विषम संख्या में बिट्स हों तो इसके विपरीत।
 
 
आधार -2 प्रतिनिधित्व में, हस्ताक्षरित संख्या को आधार -2 के साथ संख्या प्रणाली का उपयोग करके दर्शाया जाता है। पारंपरिक बाइनरी संख्या प्रणालियों में, आधार, या मूलांक, 2 है; इस प्रकार सबसे दाहिना बिट 2<sup>0</sup>,का प्रतिनिधित्व करता है, अगला बिट 2<sup>1</sup> का प्रतिनिधित्व करता है, अगला बिट 2<sup>2</sup> का प्रतिनिधित्व करता है, और इसी तरह चूँकि , आधार -2 के साथ द्विआधारी संख्या प्रणाली भी संभव है। सबसे दाहिना बिट (−2)<sup>0</sup> = +1 दर्शाता है, अगला बिट (−2)<sup>1</sup> = −2, दर्शाता है, अगला बिट (−2)<sup>2</sup> = +4 दर्शाता है और इसी तरह, वैकल्पिक चिह्न के साथ। जिन संख्याओं को चार बिट्स के साथ दर्शाया जा सकता है, उन्हें नीचे तुलना तालिका में दिखाया गया है।
 
प्रदर्शित की जा सकने वाली संख्याओं की सीमा असममित है। यदि शब्द में बिट्स की संख्या सम है, तो प्रदर्शित की जा सकने वाली सबसे बड़ी ऋणात्मक संख्या का परिमाण, प्रदर्शित की जा सकने वाली सबसे बड़ी धनात्मक संख्या से दोगुना बड़ा होता है, और यदि शब्द में विषम संख्या में बिट्स हों तो इसके विपरीत होता है।


== तुलना तालिका ==
== तुलना तालिका ==


निम्न तालिका सकारात्मक और नकारात्मक पूर्णांक दिखाती है जिन्हें चार बिट्स का उपयोग करके दर्शाया जा सकता है।
निम्न तालिका धनात्मक और ऋणात्मक पूर्णांक दिखाती है जिन्हें चार बिट्स का उपयोग करके दर्शाया जा सकता है।


{| class="wikitable" style="text-align: center"
{| class="wikitable" style="text-align: center"
|+ Four-bit integer representations
|+ चार-बिट पूर्णांक प्रतिनिधित्व
|-
|-
! style="width: 7em" | Decimal
! style="width: 7em" | डेसीमल
! style="width: 7em" | Unsigned
! style="width: 7em" |अनसिग्नेड
! style="width: 7em" | Sign–magnitude
! style="width: 7em" | सिग्न–मैग्नीट्यूड
! style="width: 7em" | Ones' complement
! style="width: 7em" |वन' कॉम्प्लीमेंट
! style="width: 7em" | Two's complement
! style="width: 7em" |दो कॉम्प्लीमेंट
! style="width: 7em" | Excess-8 (biased)
! style="width: 7em" |अतिरिक्त-8 (बायस्ड)
! style="width: 7em" | Base −2
! style="width: 7em" | बेस−2
|-
|-
| align=right|16&nbsp;&nbsp;&nbsp;&nbsp;
| align=right|16&nbsp;&nbsp;&nbsp;&nbsp;
Line 491: Line 521:
{| class="wikitable" style="text-align: center"
{| class="wikitable" style="text-align: center"
|-
|-
! Binary !! Unsigned !! Sign–magnitude !! Ones' complement !! Two's complement !! Excess-8 !! Base −2
!बायनरी
!अनसिग्नेड
! सिग्न–मैग्नीट्यूड !!वन' कॉम्प्लीमेंट
!दो कॉम्प्लीमेंट
! अतिरिक्त-8 !! बेस−2
|-
|-
| 0000 || 0 || 0 || 0 || 0 || −8 || 0
| 0000 || 0 || 0 || 0 || 0 || −8 || 0
Line 529: Line 563:
== अन्य प्रणालियाँ ==
== अन्य प्रणालियाँ ==


Google का [[प्रोटोकॉल बफ़र्स]] ज़िग-ज़ैग एन्कोडिंग संकेत-परिमाण के समान प्रणाली है, लेकिन संकेत का प्रतिनिधित्व करने के लिए [[कम से कम महत्वपूर्ण बिट]] का उपयोग करता है और इसमें शून्य का एकल प्रतिनिधित्व होता है। यह गैर-नकारात्मक (अहस्ताक्षरित) पूर्णांकों के लिए इच्छित चर-लंबाई मात्रा एन्कोडिंग को हस्ताक्षरित पूर्णांकों के लिए कुशलतापूर्वक उपयोग करने की अनुमति देता है।<ref>[http://developers.google.com/protocol-buffers/docs/encoding#types Protocol Buffers: Signed Integers]</ref>
गूगल का [[प्रोटोकॉल बफ़र्स]] ज़िग-ज़ैग एन्कोडिंग संकेत-परिमाण के समान प्रणाली है, किंतु संकेत का प्रतिनिधित्व करने के लिए [[कम से कम महत्वपूर्ण बिट|लीस्ट सिग्निफिकेन्ट बिट]] का उपयोग करता है और इसमें शून्य का एकल प्रतिनिधित्व होता है। यह गैर-ऋणात्मक (अहस्ताक्षरित) पूर्णांकों के लिए इच्छित वेरिएबल -लंबाई मात्रा एन्कोडिंग को हस्ताक्षरित पूर्णांकों के लिए कुशलतापूर्वक उपयोग करने की अनुमति देता है।<ref>[http://developers.google.com/protocol-buffers/docs/encoding#types Protocol Buffers: Signed Integers]</ref>
उन्नत वीडियो कोडिंग में समान विधि का उपयोग किया जाता है|उन्नत वीडियो कोडिंग/एच.264 और उच्च दक्षता वीडियो कोडिंग|उच्च दक्षता वीडियो कोडिंग/एच.265 वीडियो संपीड़न मानकों को एक्सपोनेंशियल-गोलोम्ब कोडिंग#नकारात्मक संख्याओं तक विस्तार|एक्सपेंडेंशियल-गोलोम्ब का विस्तार करें ऋणात्मक संख्याओं को कोडिंग करना। उस विस्तार में, सबसे कम महत्वपूर्ण बिट लगभग साइन बिट है; शून्य में सभी नकारात्मक संख्याओं के समान न्यूनतम महत्वपूर्ण बिट (0) होता है। इस विकल्प के परिणामस्वरूप सबसे बड़ी परिमाण प्रतिनिधित्व योग्य सकारात्मक संख्या सबसे बड़ी परिमाण नकारात्मक संख्या से अधिक होती है, दो के पूरक या प्रोटोकॉल बफ़र्स ज़िग-ज़ैग एन्कोडिंग के विपरीत।
 
उन्नत वीडियो कोडिंग में समान विधि का उपयोग किया जाता है| उन्नत वीडियो कोडिंग/एच.264 और उच्च दक्षता वीडियो कोडिंग|उच्च दक्षता वीडियो कोडिंग/एच.265 वीडियो संपीड़न मानकों को एक्सपोनेंशियल-गोलोम्ब कोडिंग या ऋणात्मक संख्याओं तक विस्तार या एक्सपेंडेंशियल-गोलोम्ब का विस्तार करें ऋणात्मक संख्याओं को कोडिंग करना है। उस विस्तार में, सबसे कम महत्वपूर्ण बिट लगभग साइन बिट है; शून्य में सभी ऋणात्मक संख्याओं के समान न्यूनतम महत्वपूर्ण बिट (0) होता है। इस विकल्प के परिणामस्वरूप सबसे बड़ी परिमाण प्रतिनिधित्व योग्य धनात्मक संख्या सबसे बड़ी परिमाण ऋणात्मक संख्या से अधिक होती है, दो के कॉम्प्लीमेंट या प्रोटोकॉल बफ़र्स ज़िग-ज़ैग एन्कोडिंग के विपरीत है।


अन्य दृष्टिकोण यह है कि प्रत्येक [[संख्यात्मक अंक]] को चिह्न दिया जाए, जिससे हस्ताक्षरित अंक का प्रतिनिधित्व प्राप्त हो। उदाहरण के लिए, 1726 में, [[जॉन कोल्सन]] ने छोटी संख्याओं, अंकों 1, 2, 3, 4 और 5 तक अभिव्यक्तियों को कम करने की वकालत की। 1840 में, [[ऑगस्टिन कॉची]] ने भी गणना में त्रुटियों को कम करने के लिए ऐसी संशोधित दशमलव संख्याओं को प्राथमिकता दी।
अन्य दृष्टिकोण यह है कि प्रत्येक [[संख्यात्मक अंक]] को चिह्न दिया जाए, जिससे हस्ताक्षरित अंक का प्रतिनिधित्व प्राप्त हो। उदाहरण के लिए, 1726 में, [[जॉन कोल्सन]] ने छोटी संख्याओं, अंकों 1, 2, 3, 4 और 5 तक अभिव्यक्तियों को कम करने की वकालत की। 1840 में, [[ऑगस्टिन कॉची]] ने भी गणना में त्रुटियों को कम करने के लिए ऐसी संशोधित दशमलव संख्याओं को प्राथमिकता दी थी।


== यह भी देखें ==
== यह भी देखें                                                                                                                                                                 ==


* संतुलित टर्नरी
* संतुलित टर्नरी
* [[बाइनरी-कोडित दशमलव]]
* [[बाइनरी-कोडित दशमलव]]
* [[कंप्यूटर नंबर प्रारूप]]
* [[कंप्यूटर नंबर प्रारूप]]
*[[पूरक की विधि]]
*[[पूरक की विधि|कॉम्प्लीमेंट की विधि]]
* हस्ताक्षर
* हस्ताक्षर


Line 548: Line 583:
* Israel Koren, ''Computer Arithmetic Algorithms'', A.K. Peters (2002), {{ISBN|1-56881-160-8}}
* Israel Koren, ''Computer Arithmetic Algorithms'', A.K. Peters (2002), {{ISBN|1-56881-160-8}}


{{DEFAULTSORT:Signed Number Representations}}[[Category: कंप्यूटर अंकगणित]]
{{DEFAULTSORT:Signed Number Representations}}  


[[ca:Representació de nombres amb signe]]
[[ca:Representació de nombres amb signe]]
Line 554: Line 589:
[[fr:Système binaire#Représentation des entiers négatifs]]
[[fr:Système binaire#Représentation des entiers négatifs]]


 
[[Category:Articles with hatnote templates targeting a nonexistent page|Signed Number Representations]]
 
[[Category:Created On 07/08/2023|Signed Number Representations]]
[[Category: Machine Translated Page]]
[[Category:Lua-based templates|Signed Number Representations]]
[[Category:Created On 07/08/2023]]
[[Category:Machine Translated Page|Signed Number Representations]]
[[Category:Pages with script errors|Signed Number Representations]]
[[Category:Short description with empty Wikidata description|Signed Number Representations]]
[[Category:Templates Vigyan Ready|Signed Number Representations]]
[[Category:Templates that add a tracking category|Signed Number Representations]]
[[Category:Templates that generate short descriptions|Signed Number Representations]]
[[Category:Templates using TemplateData|Signed Number Representations]]
[[Category:कंप्यूटर अंकगणित|Signed Number Representations]]

Latest revision as of 09:13, 22 August 2023

कम्प्यूटिंग में, बाइनरी नंबर सिस्टम में ऋणात्मक संख्याओं को एन्कोड करने के लिए हस्ताक्षरित संख्या प्रतिनिधित्व की आवश्यकता होती है।

गणित में, किसी भी आधार में ऋणात्मक संख्याओं को उनके पहले ऋण चिह्न ("-") लगाकर दर्शाया जाता है। चूँकि रैम या सीपीयू रजिस्टरों में, संख्याओं को अतिरिक्त प्रतीकों के बिना, केवल बिट्स के अनुक्रम के रूप में दर्शाया जाता है। हस्ताक्षरित संख्याओं का प्रतिनिधित्व करने के लिए बाइनरी अंक प्रणाली का विस्तार करने की चार सबसे प्रसिद्ध विधियां हैं: संकेत-परिमाण का पूरक, दो का पूरक, और ऑफसेट बाइनरी। कुछ वैकल्पिक विधि स्पष्ट संकेतों के अतिरिक्त अंतर्निहित संकेतों का उपयोग करते हैं, जैसे कि ऋणात्मक बाइनरी, आधार -2 का उपयोग करते हुए। अन्य आधारों के लिए अनुरूप विधि तैयार किए जा सकते हैं, चाहे धनात्मक, ऋणात्मक, भिन्नात्मक, या ऐसे विषयों पर अन्य विस्तार है।

ऐसा कोई निश्चित मानदंड नहीं है जिसके आधार पर कोई भी प्रतिनिधित्व सार्वभौमिक रूप से श्रेष्ठ हो। पूर्णांकों के लिए, अधिकांश वर्तमान कंप्यूटिंग उपकरणों में उपयोग किया जाने वाला प्रतिनिधित्व दो का कॉम्प्लीमेंट है, चूँकि UNIVAC 1100/2200 श्रृंखला मेनफ्रेम के कॉम्प्लीमेंट का उपयोग करते हैं।


इतिहास

डिजिटल कंप्यूटिंग के प्रारंभ दिनों को हार्डवेयर प्रौद्योगिकी और गणित प्रौद्योगिकी (नंबवलय सिस्टम) दोनों के बारे में प्रतिस्पर्धी विचारों द्वारा चिह्नित किया गया था। बड़ी बहसों में से ऋणात्मक संख्याओं का प्रारूप था, जिसमें उस युग के कुछ शीर्ष विशेषज्ञों ने बहुत शसक्त और भिन्न राय व्यक्त की थी। शिविर ने दो के पूरक, उस व्यवस्था का समर्थन किया जो आज प्रबल है। अन्य शिविर ने लोगों के कॉम्प्लीमेंट का समर्थन किया, जहां सभी बिट्स को उसके धनात्मक समकक्ष में विपरीत करके ऋणात्मक मान बनाया जाता है। तीसरे समूह ने संकेत-परिमाण का समर्थन किया, जहां शब्द के उच्चतम-क्रम बिट को टॉगल करके मान को धनात्मक से ऋणात्मक में बदल दिया जाता है।

प्रत्येक प्रणाली के पक्ष और विपक्ष में लॉजिक थे। मेमोरी डंप (1960 के दशक में सामान्य प्रक्रिया) का सरल पता लगाने के लिए साइन-मैग्नीट्यूड की अनुमति दी गई है क्योंकि छोटे संख्यात्मक मान कम 1 बिट का उपयोग करते हैं। ये प्रणालियाँ लोगों को आंतरिक रूप से गणित का कॉम्प्लीमेंट बनाती हैं, इसलिए जब संख्याओं को रजिस्टर से गणित इकाई में प्रेषित किया जाता है तो उन्हें लोगों के कॉम्प्लीमेंट मानो में परिवर्तित करना होगा और फिर जब परिणाम वापस रजिस्टर में प्रेषित किया जाता है तो उन्हें वापस संकेत-परिमाण में परिवर्तित करना होगा।. इलेक्ट्रॉनिक्स को अन्य प्रणालियों की तुलना में अधिक गेटों की आवश्यकता होती है – प्रमुख चिंता का विषय तब था जब अलग-अलग ट्रांजिस्टर की कास्ट और पैकेजिंग महत्वपूर्ण थी। आईबीएम साइन-मैग्नीट्यूड के प्रारंभ समर्थकों में से था, उनके आईबीएम 704, आईबीएम 709 और आईबीएम 7090 श्रृंखला के कंप्यूटर संभवतः इसका उपयोग करने के लिए सबसे प्रसिद्ध सिस्टम थे।

वन्स के कॉम्प्लीमेंट ने कुछ सीमा तक सरल हार्डवेयर डिज़ाइन की अनुमति दी, क्योंकि गणित इकाई में और उससे पास होने पर मानो को परिवर्तित करने की कोई आवश्यकता नहीं थी। किंतु इसने संकेत-परिमाण के साथ अवांछनीय विशेषता भी साझा की: ऋणात्मक शून्य (−0) का प्रतिनिधित्व करने की क्षमता है जिससे ऋणात्मक शून्य बिल्कुल धनात्मक शून्य की तरह व्यवहार करता है: जब किसी भी गणना में ऑपरेंड के रूप में उपयोग किया जाता है, तो परिणाम वही होगा चाहे ऑपरेंड धनात्मक या ऋणात्मक शून्य हो। इसमें हानि यह है कि शून्य के साथ समानता की जाँच करते समय समान मूल्य के दो रूपों के अस्तित्व के लिए दो तुलनाओं की आवश्यकता होती है। किसी के कॉम्प्लीमेंट घटाव का परिणाम अंततः उधार (नीचे वर्णित) भी हो सकता है। यह लॉजिक दिया जा सकता है कि यह जोड़ और घटाव लॉजिक को अधिक काम्प्लेक्स बनाता है या यह इसे सरल बनाता है, क्योंकि घटाव के लिए बस दूसरे ऑपरेंड के बिट्स को विपरीत करने की आवश्यकता होती है क्योंकि यह योजक को पास किया जाता है। PDP-1, CDC 160 श्रृंखला, CDC 3000 श्रृंखला, CDC 6000 श्रृंखला, UNIVAC 1100 श्रृंखला, और LINC कंप्यूटर कॉम्प्लीमेंट प्रतिनिधित्व का उपयोग करते हैं।

टू का कॉम्प्लीमेंट हार्डवेयर में प्रयुक्त करना सबसे आसान है, जो इसकी व्यापक लोकप्रियता का अंतिम कारण हो सकता है।[1] प्रारंभिक मेनफ्रेम पर प्रोसेसर में अधिकांशत: हजारों ट्रांजिस्टर सम्मिलित होते थे, इसलिए महत्वपूर्ण संख्या में ट्रांजिस्टर को समाप्त करना महत्वपूर्ण निवेश बचत थी। आईबीएम सिस्टम/360, जीई-600 श्रृंखला,[2] और पीडीपी-6 और पीडीपी-10 जैसे मेनफ्रेम दो कॉम्प्लीमेंट का उपयोग करते हैं, जैसे मिनी कंप्यूटर जैसे पीडीपी-5 और पीडीपी-8 और पीडीपी-11 और वैक्स मशीनें। प्रारंभिक एकीकृत-सर्किट-आधारित सीपीयू (इंटेल 8080, आदि) के आर्किटेक्ट ने भी दो के कॉम्प्लीमेंट गणित का उपयोग करना चुना। जैसे-जैसे IC तकनीक उन्नत हुई, x86, [3] m68k, पावर ISA,[4] MIPS, SPARC, ARM, इटेनियम, PA-RISC और DEC अल्फा सहित लगभग सभी प्रोसेसर में दो की कॉम्प्लीमेंट तकनीक को अपनाया गया है।

चिह्न-परिमाण

आठ-बिट संकेत-परिमाण
बाइनरी मान संकेत-परिमाण व्याख्या अहस्ताक्षरित व्याख्या
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) तक हो सकते हैं। इस प्रकार साइन बिट (आठवां बिट) जोड़ने के बाद −12710 to +12710 तक की संख्याओं को दर्शाया जा सकता है। उदाहरण के लिए, आठ-बिट बाइट में एन्कोड किया गया −4310 10101011 है जबकि 4310 00101011 है। साइन-परिमाण प्रतिनिधित्व का उपयोग करने के अनेक परिणाम होते हैं जो उन्हें प्रयुक्त करने के लिए और अधिक काम्प्लेक्स बनाते हैं: [5]

  1. शून्य को दर्शाने के दो विधि हैं, 00000000 (0) और 10000000 (−0).
  2. जोड़ और घटाव के लिए साइन बिट के आधार पर अलग-अलग व्यवहार की आवश्यकता होती है, जबकि इसका कॉम्प्लीमेंट साइन बिट को अनदेखा कर सकता है और केवल एंड-अराउंड कैरी कर सकता है, और दो का कॉम्प्लीमेंट साइन बिट को अनदेखा कर सकता है और अतिप्रवाह व्यवहार पर निर्भर कर सकता है।
  3. तुलना के लिए साइन बिट का निरीक्षण करना भी आवश्यक है, जबकि दो के कॉम्प्लीमेंट में, कोई सरलता से दो संख्याओं को घटा सकता है, और जांच कर सकता है कि परिणाम धनात्मक या ऋणात्मक है।
  4. दो के कॉम्प्लीमेंट के स्थिति में न्यूनतम ऋणात्मक संख्या -128 के अतिरिक्त -127 है।

यह दृष्टिकोण किसी चिह्न को दिखाने के सामान्य विधि (संख्या के परिमाण के आगे + या − लगाने) से सीधे तुलनीय है। कुछ प्रारंभिक बाइनरी कंप्यूटर (उदाहरण के लिए, आईबीएम 7090) इस प्रतिनिधित्व का उपयोग करते हैं, संभवतः सामान्य उपयोग के साथ इसके प्राकृतिक संबंध के कारण। फ़्लोटिंग-पॉइंट अंकगणित या फ़्लोटिंग-पॉइंट मानों में महत्व का प्रतिनिधित्व करने का संकेत-परिमाण सबसे समान्य विधि है

वन' कॉम्प्लीमेंट

आठ-बिट वाले का कॉम्प्लीमेंट
बाइनरी मान लोगों की कॉम्प्लीमेंट व्याख्या अहस्ताक्षरित व्याख्या
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] ऋणात्मक संख्या को धनात्मक संख्या के बिटवाइज़ NOT (अर्थात पूरक) के अनुरूप बिट पैटर्न द्वारा दर्शाया जाता है। चिह्न-परिमाण प्रतिनिधित्व की तरह, किसी के कॉम्प्लीमेंट में 0: 00000000 (+0) और 11111111 (−0) के दो प्रतिनिधित्व होते हैं।[7]

उदाहरण के तौर पर, 00101011 (4310) का कॉम्प्लीमेंट रूप 11010100 (−4310). हो जाता है। किसी के कॉम्प्लीमेंट का उपयोग करके हस्ताक्षरित संख्याओं की श्रेणी को −(2N−1 − 1) to (2N−1 − 1) और ±0 द्वारा दर्शाया जाता है। पारंपरिक आठ-बिट बाइट −12710 to +12710 है और शून्य या तो 00000000 (+0) या 11111111 (−0) है।

इस प्रणाली में प्रदर्शित दो संख्याओं को जोड़ने के लिए, पारंपरिक बाइनरी जोड़ किया जाता है, किंतु फिर एंड-अराउंड कैरी करना आवश्यक होता है: अथार्त, किसी भी परिणामी कैरी को परिणामी योग में वापस जोड़ें।[8] यह देखने के लिए कि यह क्यों आवश्यक है, निम्नलिखित उदाहरण पर विचार करें जिसमें −1 (1111110) को +2 (00000010) में जोड़ने का स्थिति दिखाया गया है:

  binary    decimal
   11111110     −1
+  00000010     +2
───────────     ──
 1 00000000      0   ← Not the correct answer
          1     +1   ← Add carry
───────────     ──
   00000001      1   ← Correct answer

पिछले उदाहरण में, पहला बाइनरी जोड़ 00000000 देता है, जो गलत है। सही परिणाम (0000001) तभी दिखाई देता है जब कैरी को वापस जोड़ा जाता है।

शब्दावली पर टिप्पणी: सिस्टम को लोगों के कॉम्प्लीमेंट के रूप में संदर्भित किया जाता है क्योंकि धनात्मक मान x का नेगेशन या प्रोग्रामिंग (x के बिटवाइज़ NOT के रूप में दर्शाया गया है) भी हो सकता है शून्य के इकाइयों के कॉम्प्लीमेंट प्रतिनिधित्व से x को घटाकर भी बनाया जा सकता है। जो इकाइयों (−0) का लंबा अनुक्रम है। दूसरी ओर, दो का कॉम्प्लीमेंट अंकगणित, दो की बड़ी घात से x को घटाकर x का निषेधन बनाता है, जो +0 से सर्वांगसमता संबंध है।[9] इसलिए, ही ऋणात्मक मान के के कॉम्प्लीमेंट और दो के कॉम्प्लीमेंट निरूपण में का अंतर होगा।

ध्यान दें कि किसी ऋणात्मक संख्या का कॉम्प्लीमेंट प्रतिनिधित्व चिह्न-परिमाण प्रतिनिधित्व से केवल बिटवाइज़ परिमाण को कॉम्प्लीमेंट करके (पहले के बाद सभी बिट्स को विपरीत करके) प्राप्त किया जा सकता है। उदाहरण के लिए, दशमलव संख्या −125 अपने चिह्न-परिमाण प्रतिनिधित्व 111111101 के साथ किसी के कॉम्प्लीमेंट रूप में 10000010 के रूप में दर्शाया जा सकता है।

दो कॉम्प्लीमेंट

आठ-बिट दो का कॉम्प्लीमेंट
बाइनरी मान दो की कॉम्प्लीमेंट व्याख्या बिना हस्ताक्षरित व्याख्या
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

दोनों के कॉम्प्लीमेंट प्रतिनिधित्व में, ऋणात्मक संख्या को धनात्मक संख्या प्लस वन के बिटवाइज़ NOT (अथार्त पूरक) के अनुरूप बिट पैटर्न द्वारा दर्शाया जाता है, अर्थात लोगों के कॉम्प्लीमेंट प्लस वन के लिए यह 0 के एकाधिक अभ्यावेदन की समस्याओं और उनके कॉम्प्लीमेंट निरूपण को अंत तक ले जाने की आवश्यकता को दूर करता है। इसे अहस्ताक्षरित पूर्णांक में इसके मान के व्युत्क्रम का प्रतिनिधित्व करने वाला सबसे महत्वपूर्ण बिट भी माना जा सकता है; जिससे यह 8-बिट अहस्ताक्षरित बाइट में, सबसे महत्वपूर्ण बिट 128वें स्थान का प्रतिनिधित्व करता है, जहां दो के कॉम्प्लीमेंट में वह बिट -128 का प्रतिनिधित्व करेगा।

दो के पूरक में, केवल शून्य होता है, जिसे 00000000 के रूप में दर्शाया जाता है। किसी संख्या को अस्वीकारना (चाहे ऋणात्मक हो या धनात्मक) सभी बिट्स को विपरीत करके और फिर उस परिणाम में जोड़कर किया जाता है।[10] यह वास्तव में सभी पूर्णांक मॉड्यूलो 2N: पर वलय संरचना को दर्शाता है। दो-पूरक पूर्णांकों की जोड़ी को जोड़ना अहस्ताक्षरित संख्याओं की जोड़ी को जोड़ने के समान है (अतिप्रवाह का पता लगाने के अलावा, यदि ऐसा किया जाता है); यही बात घटाव के लिए भी सच है और यहां तक कि किसी उत्पाद के एन न्यूनतम महत्वपूर्ण बिट्स (गुणन का मूल्य) के लिए भी सच है। उदाहरण के लिए, 127 और −128 का दो-पूरक जोड़ 127 और 128 के अहस्ताक्षरित जोड़ के समान बाइनरी बिट पैटर्न देता है, जैसा कि 8-बिट दो की पूरक तालिका से देखा जा सकता है।

दो के कॉम्प्लीमेंट में किसी संख्या का निषेधन प्राप्त करने की सरल विधि इस प्रकार है:

उदाहरण 1 उदाहरण 2
1. दाएं से प्रारंभ करते हुए, पहला "1" खोजे 00101001 00101100
2. उस "1" के बाईं ओर के सभी बिट्स को विपरीत करें 11010111 11010100

विधि दो:

  1. संख्या के माध्यम से सभी बिट्स को विपरीत करें
  2. जोड़ें

उदाहरण: +2 के लिए, जो बाइनरी में 00000010 है (~ वर्ण C (प्रोग्रामिंग लैंग्वेज) बिटवाइज़ ऑपरेटर नहीं है, इसलिए ~X का अर्थ है X में सभी बिट्स को विपरीत करना है):

  1. ~00000010 → 11111101
  2. 11111101 + 1 → 11111110 (दो के कॉम्प्लीमेंट में −2)

ऑफ़सेट बाइनरी

आठ-बिट अतिरिक्त-128
बाइनरी मान अतिरिक्त-128 व्याख्या बिना हस्ताक्षरित व्याख्या
00000000 −128 0
00000001 −127 1
01111111 −1 127
10000000 0 128
10000001 1 129
11111111 127 255


ऑफसेट बाइनरी प्रतिनिधित्व में, जिसे अतिरिक्त-के या बायस्ड भी कहा जाता है, हस्ताक्षरित संख्या को अहस्ताक्षरित संख्या प्लस के के अनुरूप बिट पैटर्न द्वारा दर्शाया जाता है, जिसमें के बायसिंग मान या ऑफसेट होता है। इस प्रकार 0 को K द्वारा दर्शाया जाता है, और −K को पूर्ण-शून्य बिट पैटर्न द्वारा दर्शाया जाता है। इसे उपरोक्त दो-पूरक के मामूली संशोधन और सामान्यीकरण के रूप में देखा जा सकता है, जो वस्तुतः ऋणात्मक सबसे महत्वपूर्ण बिट के साथ अतिरिक्त-(2N−1) प्रतिनिधित्व है।

पक्षपातपूर्ण निरूपण अब मुख्य रूप से फ़्लोटिंग-पॉइंट संख्याओं के प्रतिपादक के लिए उपयोग किया जाता है। आईईईई 754 फ़्लोटिंग-पॉइंट मानक एकल-सटीक (32-बिट) संख्या के घातांक फ़ील्ड को 8-बिट अतिरिक्त-127 फ़ील्ड के रूप में परिभाषित करता है। डबल-प्रिसिजन (64-बिट) एक्सपोनेंट फ़ील्ड 11-बिट अतिरिक्त-1023 फ़ील्ड है; प्रतिपादक पूर्वाग्रह देखें. इसका उपयोग बाइनरी-कोडित दशमलव संख्याओं के लिए अतिरिक्त-3 के रूप में भी किया जाता था।

आधार −2

आठ-बिट आधार −2
बाइनरी मान आधार −2 व्याख्या बिना हस्ताक्षरित व्याख्या
00000000 0 0
00000001 1 1
01111111 43 127
10000000 −128 128
10000001 −127 129
11111111 −85 255


आधार -2 प्रतिनिधित्व में, हस्ताक्षरित संख्या को आधार -2 के साथ संख्या प्रणाली का उपयोग करके दर्शाया जाता है। पारंपरिक बाइनरी संख्या प्रणालियों में, आधार, या मूलांक, 2 है; इस प्रकार सबसे दाहिना बिट 20,का प्रतिनिधित्व करता है, अगला बिट 21 का प्रतिनिधित्व करता है, अगला बिट 22 का प्रतिनिधित्व करता है, और इसी तरह चूँकि , आधार -2 के साथ द्विआधारी संख्या प्रणाली भी संभव है। सबसे दाहिना बिट (−2)0 = +1 दर्शाता है, अगला बिट (−2)1 = −2, दर्शाता है, अगला बिट (−2)2 = +4 दर्शाता है और इसी तरह, वैकल्पिक चिह्न के साथ। जिन संख्याओं को चार बिट्स के साथ दर्शाया जा सकता है, उन्हें नीचे तुलना तालिका में दिखाया गया है।

प्रदर्शित की जा सकने वाली संख्याओं की सीमा असममित है। यदि शब्द में बिट्स की संख्या सम है, तो प्रदर्शित की जा सकने वाली सबसे बड़ी ऋणात्मक संख्या का परिमाण, प्रदर्शित की जा सकने वाली सबसे बड़ी धनात्मक संख्या से दोगुना बड़ा होता है, और यदि शब्द में विषम संख्या में बिट्स हों तो इसके विपरीत होता है।

तुलना तालिका

निम्न तालिका धनात्मक और ऋणात्मक पूर्णांक दिखाती है जिन्हें चार बिट्स का उपयोग करके दर्शाया जा सकता है।

चार-बिट पूर्णांक प्रतिनिधित्व
डेसीमल अनसिग्नेड सिग्न–मैग्नीट्यूड वन' कॉम्प्लीमेंट दो कॉम्प्लीमेंट अतिरिक्त-8 (बायस्ड) बेस−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    

वही तालिका, जैसा कि इन बाइनरी बिट्स से देखा गया है, प्रतिनिधित्व प्रणाली द्वारा व्याख्या की गई संख्या क्या है:

बायनरी अनसिग्नेड सिग्न–मैग्नीट्यूड वन' कॉम्प्लीमेंट दो कॉम्प्लीमेंट अतिरिक्त-8 बेस−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


अन्य प्रणालियाँ

गूगल का प्रोटोकॉल बफ़र्स ज़िग-ज़ैग एन्कोडिंग संकेत-परिमाण के समान प्रणाली है, किंतु संकेत का प्रतिनिधित्व करने के लिए लीस्ट सिग्निफिकेन्ट बिट का उपयोग करता है और इसमें शून्य का एकल प्रतिनिधित्व होता है। यह गैर-ऋणात्मक (अहस्ताक्षरित) पूर्णांकों के लिए इच्छित वेरिएबल -लंबाई मात्रा एन्कोडिंग को हस्ताक्षरित पूर्णांकों के लिए कुशलतापूर्वक उपयोग करने की अनुमति देता है।[11]

उन्नत वीडियो कोडिंग में समान विधि का उपयोग किया जाता है| उन्नत वीडियो कोडिंग/एच.264 और उच्च दक्षता वीडियो कोडिंग|उच्च दक्षता वीडियो कोडिंग/एच.265 वीडियो संपीड़न मानकों को एक्सपोनेंशियल-गोलोम्ब कोडिंग या ऋणात्मक संख्याओं तक विस्तार या एक्सपेंडेंशियल-गोलोम्ब का विस्तार करें ऋणात्मक संख्याओं को कोडिंग करना है। उस विस्तार में, सबसे कम महत्वपूर्ण बिट लगभग साइन बिट है; शून्य में सभी ऋणात्मक संख्याओं के समान न्यूनतम महत्वपूर्ण बिट (0) होता है। इस विकल्प के परिणामस्वरूप सबसे बड़ी परिमाण प्रतिनिधित्व योग्य धनात्मक संख्या सबसे बड़ी परिमाण ऋणात्मक संख्या से अधिक होती है, दो के कॉम्प्लीमेंट या प्रोटोकॉल बफ़र्स ज़िग-ज़ैग एन्कोडिंग के विपरीत है।

अन्य दृष्टिकोण यह है कि प्रत्येक संख्यात्मक अंक को चिह्न दिया जाए, जिससे हस्ताक्षरित अंक का प्रतिनिधित्व प्राप्त हो। उदाहरण के लिए, 1726 में, जॉन कोल्सन ने छोटी संख्याओं, अंकों 1, 2, 3, 4 और 5 तक अभिव्यक्तियों को कम करने की वकालत की। 1840 में, ऑगस्टिन कॉची ने भी गणना में त्रुटियों को कम करने के लिए ऐसी संशोधित दशमलव संख्याओं को प्राथमिकता दी थी।

यह भी देखें

संदर्भ

  1. Choo, Hunsoo; Muhammad, K.; Roy, K. (February 2003). "उच्च निष्पादन डीएफई के लिए दो पूरक संगणना साझाकरण गुणक और इसके अनुप्रयोग". IEEE Transactions on Signal Processing. 51 (2): 458–469. Bibcode:2003ITSP...51..458C. doi:10.1109/TSP.2002.806984.
  2. GE-625 / 635 Programming Reference Manual. General Electric. January 1966. Retrieved August 15, 2013.
  3. Intel 64 and IA-32 Architectures Software Developer's Manual (PDF). Intel. Section 4.2.1. Retrieved August 6, 2013.
  4. Power ISA Version 2.07. Power.org. Section 1.4. Retrieved August 6, 2013.,
  5. Bacon, Jason W. (2010–2011). "Computer Science 315 Lecture Notes". Retrieved 21 February 2020.
  6. US 4484301, "ऐरे मल्टीप्लायर किसी के पूरक प्रारूप में काम कर रहा है", issued 1981-03-10 
  7. US 6760440, "एक का पूरक क्रिप्टोग्राफ़िक कॉम्बिनर", issued 1999-12-11 
  8. Shedletsky, John J. (1977). "एंड-अराउंड-कैरी एडर के अनुक्रमिक और अनिश्चित व्यवहार पर टिप्पणी करें". IEEE Transactions on Computers. 26 (3): 271–272. doi:10.1109/TC.1977.1674817. S2CID 14661474.
  9. Donald Knuth: The Art of Computer Programming, Volume 2: Seminumerical Algorithms, chapter 4.1
  10. Thomas Finley (April 2000). "दो का अनुपूरण". Cornell University. Retrieved 15 September 2015.
  11. 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