चिह्नित शून्य: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{Short description|Differentiating positive and negative zero}}
{{Short description|Differentiating positive and negative zero}}
हस्ताक्षरित [[शून्य]] संबंधित चिह्न (गणित) के साथ शून्य है। सामान्य अंकगणित में, संख्या 0 पर कोई चिह्न नहीं होता है, इसलिए −0, +0 और 0 समान होते हैं। हालाँकि, [[ कम्प्यूटिंग |कम्प्यूटिंग]] में, कुछ संख्या निरूपण दो शून्यों के अस्तित्व की अनुमति देते हैं, जिन्हें अक्सर -0 (नकारात्मक शून्य) और +0 (सकारात्मक शून्य) द्वारा दर्शाया जाता है, जिन्हें संख्यात्मक तुलना संचालन द्वारा बराबर माना जाता है लेकिन विशेष संचालन में संभावित भिन्न व्यवहार के साथ। यह ''हस्ताक्षरित संख्या अभ्यावेदन#चिह्न-परिमाण|चिह्न-परिमाण'' और ''एक' पूर्णांकों के लिए हस्ताक्षरित संख्या अभ्यावेदन के पूरक'' और अधिकांश [[चल बिन्दु संख्या]] अभ्यावेदन में होता है। संख्या 0 को आमतौर पर +0 के रूप में एन्कोड किया जाता है, लेकिन इसे +0 या -0 द्वारा दर्शाया जा सकता है।
'''हस्ताक्षरित [[शून्य]] संबंधित चिह्न (गणित) के साथ शून्य है। सामान्य अंकगणित में, संख्या 0 पर कोई चिह्न नहीं होता है, इसलिए −0, +0 और 0 समान होते हैं। चूंकि  , [[ कम्प्यूटिंग |कम्प्यूटिंग]] में, कुछ संख्या निरूपण दो शून्यों के अस्तित्व की अनुमति देते हैं, जिन्हें सदैव  -0 (नकारात्मक शून्य) और +0 (सकारात्मक शून्य) द्वारा दर्शाया जाता है, जिन्हें संख्यात्मक तुलना संचालन द्वारा समान  माना जाता है जिससे विशेष संचालन में संभावित भिन्न व्यवहार के साथ। यह ''हस्ताक्षरित संख्या अभ्यावेदन#चिह्न-परिमाण|चिह्न-परिमाण'' और ''एक' पूर्णांकों के लिए हस्ताक्षरित संख्या अभ्यावेदन के पूरक'' और अधिकांश [[चल बिन्दु संख्या|फ़्लोटिंग-पॉइंट संख्या]] अभ्यावेदन में होता है। संख्या 0 को सामान्यतः  +0 के रूप में एन्कोड किया जाता है, जिससे इसे +0 या -0 द्वारा दर्शाया जा सकता है।''' 


फ़्लोटिंग-पॉइंट अंकगणित के लिए [[IEEE 754]] मानक (वर्तमान में फ़्लोटिंग-पॉइंट संख्याओं का समर्थन करने वाले अधिकांश कंप्यूटर और प्रोग्रामिंग भाषाओं द्वारा उपयोग किया जाता है) के लिए +0 और -0 दोनों की आवश्यकता होती है। हस्ताक्षरित शून्य के साथ वास्तविक अंकगणित को [[विस्तारित वास्तविक संख्या रेखा]] का प्रकार माना जा सकता है जैसे कि 1/−0 = −infinity|∞ और 1/+0 = +∞; भाग (गणित) प्लस-माइनस चिह्न|±0/±0 और ±∞/±∞ के लिए केवल [[अनिश्चित रूप]] है।
हस्ताक्षरित [[शून्य]] संबद्ध चिह्न के साथ शून्य है। इस प्रकार से सामान्य अंकगणित में, संख्या ''0'' पर कोई चिह्न नहीं होता है, इसलिए ''−0, +0'' और ''0'' समान होते हैं। चूंकि  , [[ कम्प्यूटिंग |कम्प्यूटिंग]] में, कुछ संख्या निरूपण दो शून्यों के अस्तित्व की अनुमति देते हैं, जिन्हें सदैव  -''0'' (नकारात्मक शून्य) और ''+0'' (सकारात्मक शून्य) द्वारा दर्शाया जाता है, और जिन्हें संख्यात्मक तुलना संचालन द्वारा समान  माना जाता है जिससे विशेष संचालन में संभावित भिन्न व्यवहार के साथ उपयोग किया जाता है । यह पूर्णांकों के लिए चिह्न-परिमाण और लोगों के पूरक हस्ताक्षरित संख्या अभ्यावेदन में और अधिकांश  [[चल बिन्दु संख्या|फ़्लोटिंग-पॉइंट संख्या]]  अभ्यावेदन में होता है। संख्या ''0'' को सामान्यतः  ''+0'' के रूप में एन्कोड किया जाता है, जिससे इसे ''+0'' या -''0'' द्वारा दर्शाया जा सकता है।


नकारात्मक रूप से हस्ताक्षरित शून्य  तरफा सीमा के रूप में नीचे से 0 तक पहुंचने की [[गणितीय विश्लेषण]] अवधारणा को प्रतिध्वनित करता है, जिसे ''x'' 0 द्वारा दर्शाया जा सकता है<sup>−</sup>, x → 0−, या x → ↑0. नोटेशन −0 का उपयोग अनौपचारिक रूप से नकारात्मक संख्या को दर्शाने के लिए किया जा सकता है जिसे शून्य तक पूर्णांकित किया गया है। नकारात्मक शून्य की अवधारणा का [[सांख्यिकीय यांत्रिकी]] और अन्य विषयों में कुछ सैद्धांतिक अनुप्रयोग भी हैं।
इस प्रकार से फ़्लोटिंग-पॉइंट अंकगणित के लिए [[IEEE 754|आईईईई  754]] मानक (वर्तमान में फ़्लोटिंग-पॉइंट संख्याओं का समर्थन करने वाले अधिकांश कंप्यूटर और प्रोग्रामिंग भाषाओं द्वारा उपयोग किया जाता है) के लिए ''+0'' और ''-0'' दोनों की आवश्यकता होती है। और हस्ताक्षरित शून्य के साथ वास्तविक अंकगणित को [[विस्तारित वास्तविक संख्या रेखा]] का  प्रकार माना जा सकता है जैसे कि ''11/−0 = −∞'' और ''1/+0 = +∞;'' विभाजन केवल ''±0/±0 ±∞/±∞'' के लिए [[अनिश्चित रूप|अपरिभाषित]] किया जाता है।


यह दावा किया जाता है कि IEEE 754 में हस्ताक्षरित शून्य को शामिल करने से कुछ महत्वपूर्ण समस्याओं में संख्यात्मक सटीकता प्राप्त करना बहुत आसान हो जाता है,<ref>[[William Kahan]], "Branch Cuts for Complex Elementary Functions, or Much Ado About Nothing's Sign Bit", in [http://portal.acm.org/citation.cfm?id=59678 ''The State of the Art in Numerical Analysis''] (eds. Iserles and Powell), Clarendon Press, Oxford, 1987.</ref> विशेष रूप से [[जटिल संख्या]] प्राथमिक कार्यों के साथ गणना करते समय।<ref>[[William Kahan]], [http://www.cs.berkeley.edu/~wkahan/Math185/Derivative.pdf Derivatives in the Complex z-plane], p. 10.</ref> दूसरी ओर, हस्ताक्षरित शून्य की अवधारणा गणित में बनी सामान्य धारणा के विपरीत चलती है कि नकारात्मक शून्य शून्य के समान मान है। नकारात्मक शून्य की अनुमति देने वाले प्रतिनिधित्व कार्यक्रमों में त्रुटियों का  स्रोत हो सकते हैं, यदि सॉफ्टवेयर डेवलपर्स इस बात पर ध्यान नहीं देते हैं कि जबकि दो शून्य प्रतिनिधित्व संख्यात्मक तुलना के तहत समान व्यवहार करते हैं, तो वे कुछ कार्यों में अलग-अलग परिणाम देते हैं।
किन्तु नकारात्मक रूप से हस्ताक्षरित शून्य की और  सीमा के रूप में नीचे से 0 तक पहुंचने की [[गणितीय विश्लेषण]] अवधारणा को प्रतिध्वनित किया जाता  है, जिसे ''x → 0−, x → 0−,'' या ''x → ↑0'' द्वारा दर्शाया जा सकता है। और अंकन ''"−0"'' का उपयोग अनौपचारिक रूप से एक नकारात्मक संख्या को दर्शाने के लिए किया जा सकता है जिसे शून्य तक पूर्णांकित किया गया है। नकारात्मक शून्य की अवधारणा का [[सांख्यिकीय यांत्रिकी]] और अन्य विषयों में कुछ सैद्धांतिक अनुप्रयोग भी किया जाता  हैं।
 
इस प्रकार से प्रमाणित  किया जाता है कि आईईईई  754 में हस्ताक्षरित शून्य को सम्मिलित  करने से कुछ महत्वपूर्ण समस्याओं में संख्यात्मक स्पष्टता  प्राप्त करना अधिक  सरल  हो जाता है,<ref>[[William Kahan]], "Branch Cuts for Complex Elementary Functions, or Much Ado About Nothing's Sign Bit", in [http://portal.acm.org/citation.cfm?id=59678 ''The State of the Art in Numerical Analysis''] (eds. Iserles and Powell), Clarendon Press, Oxford, 1987.</ref> और विशेष रूप से [[जटिल संख्या]] प्राथमिक कार्यों के साथ गणना करते समय।<ref>[[William Kahan]], [http://www.cs.berkeley.edu/~wkahan/Math185/Derivative.pdf Derivatives in the Complex z-plane], p. 10.</ref> दूसरी ओर, हस्ताक्षरित शून्य की अवधारणा गणित में उपयुक्त  सामान्य धारणा के विपरीत चलती रहती है जो कि नकारात्मक शून्य के समान मान है। नकारात्मक शून्य की अनुमति देने वाले प्रतिनिधित्व कार्यक्रमों में त्रुटियों का  स्रोत हो सकते हैं, यदि सॉफ्टवेयर डेवलपर्स इस संवाद  पर ध्यान नहीं देते हैं कि जबकि दो शून्य प्रतिनिधित्व संख्यात्मक तुलना के तहत समान व्यवहार करते हैं, तो वे कुछ कार्यों में अलग-अलग परिणाम देते हैं।


==अभ्यावेदन==
==अभ्यावेदन==
बाइनरी पूर्णांक प्रारूप [[हस्ताक्षरित संख्या अभ्यावेदन]] का उपयोग कर सकते हैं। व्यापक रूप से उपयोग किए जाने वाले दो के पूरक एन्कोडिंग में, शून्य अहस्ताक्षरित है। पूर्णांकों के लिए 1+7-बिट [[हस्ताक्षरित परिमाण]]|चिह्न-और-परिमाण प्रतिनिधित्व में, नकारात्मक शून्य को बिट स्ट्रिंग द्वारा दर्शाया जाता है {{gaps|1000|0000}}. 8-बिट वाले पूरक प्रतिनिधित्व में, नकारात्मक शून्य को बिट स्ट्रिंग द्वारा दर्शाया जाता है {{gaps|1111|1111}}. इन तीनों एन्कोडिंग में, सकारात्मक या अहस्ताक्षरित शून्य का प्रतिनिधित्व किया जाता है {{gaps|0000|0000}}. हालाँकि, बाद के दो एन्कोडिंग (हस्ताक्षरित शून्य के साथ) पूर्णांक प्रारूपों के लिए असामान्य हैं। हस्ताक्षरित शून्य वाले सबसे सामान्य प्रारूप फ़्लोटिंग-पॉइंट प्रारूप (आईईईई 754 प्रारूप या समान) हैं, जिनका वर्णन नीचे किया गया है।
इस प्रकार से बाइनरी पूर्णांक प्रारूप [[हस्ताक्षरित संख्या अभ्यावेदन|विभिन्न एन्कोडिंग]] का उपयोग किया जाता  हैं। और व्यापक रूप से उपयोग किए जाने वाले दो के पूरक एन्कोडिंग में, शून्य अहस्ताक्षरित उपयुक्त होते है। अर्थात  पूर्णांकों के लिए 1+7-बिट [[हस्ताक्षरित परिमाण|संकेत और परिमाण]] प्रतिनिधित्व में, नकारात्मक शून्य को बिट स्ट्रिंग 10000000 द्वारा दर्शाया जाता है। और  8-बिट वाले पूरक प्रतिनिधित्व में, नकारात्मक शून्य को बिट स्ट्रिंग 11111111 द्वारा दर्शाया जाता है। इस प्रकार से  तीनों में एन्कोडिंग, सकारात्मक या अहस्ताक्षरित शून्य को 00000000 द्वारा दर्शाया जाता है। चूंकि , इसके अतिरिक्त  दो एन्कोडिंग (हस्ताक्षरित शून्य के साथ) पूर्णांक प्रारूपों के लिए असामान्य होते  हैं। और हस्ताक्षरित शून्य वाले सबसे सामान्य प्रारूप फ़्लोटिंग-पॉइंट प्रारूप (आईईईई 754 प्रारूप या समान) हैं, जिनका वर्णन नीचे किया गया है।


[[Image:IEEE 754 Single Negative Zero.svg|thumb|right|400px|[[बाइनरी32]] में आईईईई 754 प्रतिनिधित्व द्वारा नकारात्मक शून्य]]आईईईई 754 बाइनरी फ़्लोटिंग-पॉइंट प्रारूपों में, शून्य मानों को पक्षपाती घातांक द्वारा दर्शाया जाता है और [[महत्व]] दोनों शून्य होते हैं। ऋणात्मक शून्य में साइन बिट  पर सेट है। कोई व्यक्ति कुछ गणनाओं के परिणाम के रूप में ऋणात्मक शून्य प्राप्त कर सकता है, उदाहरण के लिए ऋणात्मक संख्या पर अंकगणितीय अंडरफ्लो के परिणाम के रूप में (अन्य परिणाम भी संभव हो सकते हैं), या <code>−1.0×0.0</code>, या बस के रूप में <code>−0.0</code>.
[[Image:IEEE 754 Single Negative Zero.svg|thumb|right|400px|[[बाइनरी32]] में आईईईई 754 प्रतिनिधित्व द्वारा नकारात्मक शून्य]]किन्तु आईईईई 754 बाइनरी फ़्लोटिंग-पॉइंट प्रारूपों में, शून्य मानों को पक्षपाती घातांक द्वारा दर्शाया जाता है और [[महत्व]] दोनों शून्य होते हैं। और ऋणात्मक शून्य में साइन बिट  पर सेट   है। कोई व्यक्ति कुछ गणनाओं के परिणाम के रूप में ऋणात्मक शून्य प्राप्त कर सकता है, इस प्रकार से  उदाहरण के लिए ऋणात्मक संख्या पर अंकगणितीय अंडरफ्लो के परिणाम के रूप में (अन्य परिणाम भी संभव हो सकते हैं), या <code>−1.0×0.0</code>, या बस <code>−0.0</code>. के रूप में


आईईईई 754 दशमलव फ़्लोटिंग-पॉइंट प्रारूपों में,  नकारात्मक शून्य को  घातांक द्वारा दर्शाया जाता है जो प्रारूप के लिए सीमा में कोई वैध घातांक होता है, वास्तविक महत्व शून्य होता है, और साइन बिट  होता है।
इस प्रकार से आईईईई 754 दशमलव फ़्लोटिंग-पॉइंट प्रारूपों में,  नकारात्मक शून्य को  घातांक द्वारा दर्शाया जाता है जोकी  प्रारूप के लिए सीमा में कोई वैध घातांक होता है, और वास्तविक महत्व शून्य होता है, और साइन बिट  होता है।


==गुण और प्रबंधन==
==गुण और प्रबंधन==
IEEE 754 फ़्लोटिंग-पॉइंट मानक विभिन्न परिचालनों के तहत सकारात्मक शून्य और नकारात्मक शून्य के व्यवहार को निर्दिष्ट करता है। परिणाम वर्तमान IEEE 754#राउंडिंग नियम सेटिंग्स पर निर्भर हो सकता है।
अतः आईईईई  754 फ़्लोटिंग-पॉइंट मानक विभिन्न परिचालनों के तहत सकारात्मक शून्य और नकारात्मक शून्य के व्यवहार को निर्दिष्ट करता है। परिणाम वर्तमान आईईईई  754 या राउंडिंग नियम सेट  िंग्स पर निर्भर हो सकता है।


===नोटेशन===
===नोटेशन===
उन प्रणालियों में जिनमें हस्ताक्षरित और अहस्ताक्षरित दोनों शून्य शामिल हैं, अंकन <math>0^+</math> और <math>0^-</math> कभी-कभी हस्ताक्षरित शून्य के लिए उपयोग किया जाता है।
इस प्रकार से यह  प्रणालियों में जिसमे  हस्ताक्षरित और अहस्ताक्षरित दोनों शून्य सम्मिलित होते  हैं, अंकन <math>0^+</math> और <math>0^-</math> कभी-कभी हस्ताक्षरित शून्य के लिए उपयोग किया जाता है।


===अंकगणित===
===अंकगणित===
जोड़ और गुणा क्रमविनिमेय हैं, लेकिन कुछ विशेष नियम हैं जिनका पालन करना पड़ता है, जिसका अर्थ है कि बीजगणितीय सरलीकरण के लिए सामान्य गणितीय नियम लागू नहीं हो सकते हैं। <math>=</math> h> नीचे दिया गया चिह्न प्राप्त फ़्लोटिंग-पॉइंट परिणाम दिखाता है (यह सामान्य समानता ऑपरेटर नहीं है)।
किन्तु जोड़ और गुणा क्रमविनिमेय हैं, जिससे कुछ विशेष नियम हैं जिनका पालन करना पड़ता है, जिसका अर्थ है कि बीजगणितीय सरलीकरण के लिए सामान्य गणितीय नियम प्रयुक्त नहीं हो सकते हैं। <math>=</math> h> नीचे दिया गया चिह्न प्राप्त फ़्लोटिंग-पॉइंट परिणाम दिखाता है (यह सामान्य समानता ऑपरेटर नहीं है)।


गुणा या भाग करते समय चिह्नों के सामान्य नियम का हमेशा पालन किया जाता है:
गुणा या भाग करते समय चिह्नों के सामान्य नियम का सदैव  पालन किया जाता है:


* <math>(-0) \cdot \left|x \right| = -0\,\!</math> (के लिए <math>x</math> ±∞ से भिन्न)
* <math>(-0) \cdot \left|x \right| = -0\,\!</math> (के लिए <math>x</math> ±∞ से भिन्न)
Line 34: Line 36:
* <math>(-0) + (-0) = (-0) - (+0) = -0\,\!</math>
* <math>(-0) + (-0) = (-0) - (+0) = -0\,\!</math>
* <math>(+0) + (+0) = (+0) - (-0) = +0\,\!</math>
* <math>(+0) + (+0) = (+0) - (-0) = +0\,\!</math>
* <math>x - x = x + (-x) = +0\,\!</math> (किसी भी परिमित के लिए <math>x</math>, −0 जब ऋणात्मक की ओर पूर्णांकित किया जाता है)
* <math>x - x = x + (-x) = +0\,\!</math> (किसी भी परिमित के लिए <math>x</math>, −0 जब ऋणात्मक की ओर पूर्णांकित किया जाता है)  


नकारात्मक शून्य के कारण (और तब भी जब गोलाई मोड ऊपर या नीचे की ओर होता है), अभिव्यक्तियाँ {{nowrap|−(''x'' − ''y'')}} और {{nowrap|(−''x'') − (−''y'')}}, फ़्लोटिंग-पॉइंट वेरिएबल x और y के लिए, द्वारा प्रतिस्थापित नहीं किया जा सकता है {{nowrap|''y'' ''x''}}. हालाँकि {{nowrap|(−0) + ''x''}} को निकटतम तक पूर्णांकन के साथ x द्वारा प्रतिस्थापित किया जा सकता है (सिवाय जब x NaN#सिग्नलिंग NaN हो सकता है)।
इस प्रकार से नकारात्मक शून्य के कारण (और इसके अतिरिक्त  जब राउंडिंग मोड ऊपर या नीचे की ओर होता है), फ़्लोटिंग-पॉइंट वेरिएबल ''x'' और ''y'' के लिए अभिव्यक्ति {{nowrap|−(''x'' − ''y'')}} और{{nowrap|(−''x'') − (−''y'')}} को ''y'' द्वारा प्रतिस्थापित ''x'' नहीं किया जा सकता है। चूंकि {{nowrap|(−0) + ''x''}} को निकटतम तक पूर्णांकित करके x द्वारा प्रतिस्थापित किया जा सकता है (इसके अतिरिक्त  जब ''x'' या  सिग्नलिंग NaN   हो सकता है)।


कुछ अन्य विशेष नियम:
कुछ अन्य विशेष नियम:
Line 44: Line 46:
* <math>\frac{-0}{-\infty} = +0\,\!</math> (विभाजन के लिए चिह्न नियम का पालन करता है)
* <math>\frac{-0}{-\infty} = +0\,\!</math> (विभाजन के लिए चिह्न नियम का पालन करता है)
* <math>\frac{\left|x\right|}{-0} = -\infty\,\!</math> (गैर-शून्य के लिए <math>x</math>, विभाजन के लिए चिह्न नियम का पालन करता है)
* <math>\frac{\left|x\right|}{-0} = -\infty\,\!</math> (गैर-शून्य के लिए <math>x</math>, विभाजन के लिए चिह्न नियम का पालन करता है)
* <math>{\pm 0} \times {\pm \infty} = \mbox{NaN}\,\!</math> (अनिश्चित रूप के लिए [[NaN]] या व्यवधान)
* <math>{\pm 0} \times {\pm \infty} = \mbox{NaN}\,\!</math> (अनिश्चित रूप के लिए NaN या व्यवधान)
* <math>\frac{\pm 0}{\pm 0} = \mbox{NaN}\,\!</math>
* <math>\frac{\pm 0}{\pm 0} = \mbox{NaN}\,\!</math>
गैर-शून्य संख्या को शून्य से विभाजित करने पर शून्य से विभाजन निर्धारित होता है IEEE 754#अपवाद हैंडलिंग, और NaN उत्पन्न करने वाला  ऑपरेशन अमान्य ऑपरेशन ध्वज सेट करता है। यदि संबंधित ध्वज के लिए सक्षम किया गया है तो  अपवाद हैंडलिंग को कॉल किया जाता है।
इस प्रकार से गैर-शून्य संख्या को शून्य से विभाजित करने पर शून्य से विभाजन निर्धारित होता है और आईईईई  754 या अपवाद हैं डलिंग, और NaN उत्पन्न करने वाला  ऑपरेशन अमान्य ऑपरेशन ध्वज सेट   करता है। यदि संबंधित ध्वज के लिए सक्षम किया गया है तो  अपवाद हैंडलिंग को कॉल किया जाता है।


===तुलना===
===तुलना===
आईईईई 754 मानक के अनुसार, नकारात्मक शून्य और सकारात्मक शून्य की तुलना सामान्य (संख्यात्मक) तुलना ऑपरेटरों के बराबर होनी चाहिए, जैसे <code>==</code> [[सी (प्रोग्रामिंग भाषा)]] और [[जावा प्रोग्रामिंग भाषा]] के संचालक। उन भाषाओं में, दो मानों को अलग करने के लिए विशेष प्रोग्रामिंग ट्रिक्स की आवश्यकता हो सकती है:
आईईईई 754 मानक के अनुसार, नकारात्मक शून्य और सकारात्मक शून्य की तुलना सामान्य (संख्यात्मक) तुलना ऑपरेटरों के समान  होनी चाहिए, जैसे <code>==</code> [[सी (प्रोग्रामिंग भाषा)]] और [[जावा प्रोग्रामिंग भाषा]] के संचालक। उन भाषाओं में, दो मानों को अलग करने के लिए विशेष प्रोग्रामिंग ट्रिक्स की आवश्यकता हो सकती है:


* संख्या को पूर्णांक प्रकार में टाइप करें, ताकि बिट पैटर्न में साइन बिट को देखा जा सके;
* संख्या को पूर्णांक प्रकार में टाइप करें, जिससे  बिट पैटर्न में साइन बिट को देखा जा सके;
* आईएसओ सी का उपयोग करना <code>copysign()</code> शून्य के चिह्न को किसी गैर-शून्य संख्या में कॉपी करने के लिए फ़ंक्शन (IEEE 754 कॉपीसाइन ऑपरेशन);
* आईएसओ सी का उपयोग करना <code>copysign()</code> शून्य के चिह्न को किसी गैर-शून्य संख्या में कॉपी करने के लिए फ़ंक्शन (आईईईई  754 कॉपीसाइन ऑपरेशन);
* आईएसओ सी का उपयोग करना <code>signbit()</code> मैक्रो (IEEE 754 isSignMinus ऑपरेशन) जो बताता है कि किसी संख्या का साइन बिट सेट है या नहीं;
* आईएसओ सी का उपयोग करना <code>signbit()</code> मैक्रो (आईईईई  754 isSignMinus ऑपरेशन) जो बताता है कि किसी संख्या का साइन बिट सेट   है या नहीं;
* 1/(+0)=+∞ या 1/(−0)=−∞ प्राप्त करने के लिए शून्य का व्युत्क्रम लेना (यदि शून्य अपवाद द्वारा विभाजन फंसा नहीं है)।
* 1/(+0)=+∞ या 1/(−0)=−∞ प्राप्त करने के लिए शून्य का व्युत्क्रम लेना (यदि शून्य अपवाद द्वारा विभाजन फंसा नहीं है)।


ध्यान दें: इंटीग्रल प्रकार में [[कास्ट (कंप्यूटर प्रोग्रामिंग)]] हमेशा काम नहीं करेगा, खासकर दो के पूरक सिस्टम पर।
ध्यान दें: इंटीग्रल प्रकार में [[कास्ट (कंप्यूटर प्रोग्रामिंग)]] सदैव  काम नहीं करेगा, खासकर दो के पूरक सिस्टम पर।


हालाँकि, कुछ प्रोग्रामिंग भाषाएँ वैकल्पिक तुलना ऑपरेटर प्रदान कर सकती हैं जो दो शून्यों को अलग करती हैं। यह मामला है, उदाहरण के लिए, का {{mono|equals}}जावा में विधि <code>Double</code> [[आवरण वर्ग]].<ref>[http://java.sun.com/javase/6/docs/api/java/lang/Double.html#equals%28java.lang.Object%29 http://java.sun.com/javase/6/docs/api/java/lang/Double.html#equals(java.lang.Object)]</ref>
चूंकि  , कुछ प्रोग्रामिंग भाषाएँ वैकल्पिक तुलना ऑपरेटर प्रदान कर सकती हैं जो दो शून्यों को अलग करती हैं। यह स्तिथि है, उदाहरण के लिए, का {{mono|equals}}जावा में विधि <code>Double</code> [[आवरण वर्ग]].<ref>[http://java.sun.com/javase/6/docs/api/java/lang/Double.html#equals%28java.lang.Object%29 http://java.sun.com/javase/6/docs/api/java/lang/Double.html#equals(java.lang.Object)]</ref>
==तापमान जैसे पूर्णांकित मानों में==
==तापमान जैसे पूर्णांकित मानों में==
अनौपचारिक रूप से, कोई नकारात्मक मान के लिए नोटेशन −0 का उपयोग कर सकता है जिसे शून्य तक पूर्णांकित किया गया था। यह अंकन तब उपयोगी हो सकता है जब कोई नकारात्मक चिह्न महत्वपूर्ण हो; उदाहरण के लिए, [[ सेल्सीयस |सेल्सीयस]] तापमान को सारणीबद्ध करते समय, जहां नकारात्मक संकेत का मतलब शून्य से नीचे होता है।
अनौपचारिक रूप से, कोई नकारात्मक मान के लिए नोटेशन −0 का उपयोग कर सकता है जिसे शून्य तक पूर्णांकित किया गया था। यह अंकन तब उपयोगी हो सकता है जब कोई नकारात्मक चिह्न महत्वपूर्ण हो; उदाहरण के लिए, [[ सेल्सीयस |सेल्सीयस]] तापमान को सारणीबद्ध करते समय, जहां नकारात्मक संकेत का अर्थ  शून्य से नीचे होता है।


==सांख्यिकीय यांत्रिकी में==
==सांख्यिकीय यांत्रिकी में==
सांख्यिकीय यांत्रिकी में, जनसंख्या व्युत्क्रमण वाले सिस्टम का वर्णन करने के लिए कभी-कभी [[नकारात्मक तापमान]] का उपयोग किया जाता है, जिसे सकारात्मक अनंत से अधिक तापमान माना जा सकता है, क्योंकि जनसंख्या वितरण फ़ंक्शन में ऊर्जा का गुणांक -1/तापमान है। इस संदर्भ में, -0 का तापमान किसी भी अन्य नकारात्मक तापमान से बड़ा (सैद्धांतिक) तापमान है, जो जनसंख्या व्युत्क्रमण की (सैद्धांतिक) अधिकतम बोधगम्य सीमा के अनुरूप है, जो +0 के विपरीत चरम है।<ref>{{cite book | author=[[Charles Kittel|Kittel, Charles]] and [[Herbert Kroemer]] | title=Thermal Physics (2nd ed.) | publisher=[[W. H. Freeman and Company]] | year=1980 | isbn=0-7167-1088-9|page=462}}</ref>
इस प्रकार से सांख्यिकीय यांत्रिकी में, जनसंख्या व्युत्क्रमण वाले सिस्टम का वर्णन करने के लिए कभी-कभी [[नकारात्मक तापमान]] का उपयोग किया जाता है, जिसे सकारात्मक अनंत से अधिक तापमान माना जा सकता है, क्योंकि जनसंख्या वितरण फ़ंक्शन में ऊर्जा का गुणांक -1/तापमान है। इस संदर्भ में, -0 का तापमान किसी भी अन्य नकारात्मक तापमान से उच्च  (सैद्धांतिक) तापमान होता  है, जोकी  जनसंख्या व्युत्क्रमण की (सैद्धांतिक) अधिकतम बोधगम्य सीमा के अनुरूप है, जो +0 के विपरीत चरम है।<ref>{{cite book | author=[[Charles Kittel|Kittel, Charles]] and [[Herbert Kroemer]] | title=Thermal Physics (2nd ed.) | publisher=[[W. H. Freeman and Company]] | year=1980 | isbn=0-7167-1088-9|page=462}}</ref>
==यह भी देखें==
==यह भी देखें==
*[[दो मूल वाली रेखा]]
*[[दो मूल वाली रेखा]]

Revision as of 13:01, 9 July 2023

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

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

इस प्रकार से फ़्लोटिंग-पॉइंट अंकगणित के लिए आईईईई 754 मानक (वर्तमान में फ़्लोटिंग-पॉइंट संख्याओं का समर्थन करने वाले अधिकांश कंप्यूटर और प्रोग्रामिंग भाषाओं द्वारा उपयोग किया जाता है) के लिए +0 और -0 दोनों की आवश्यकता होती है। और हस्ताक्षरित शून्य के साथ वास्तविक अंकगणित को विस्तारित वास्तविक संख्या रेखा का प्रकार माना जा सकता है जैसे कि 11/−0 = −∞ और 1/+0 = +∞; विभाजन केवल ±0/±0 ±∞/±∞ के लिए अपरिभाषित किया जाता है।

किन्तु नकारात्मक रूप से हस्ताक्षरित शून्य की और सीमा के रूप में नीचे से 0 तक पहुंचने की गणितीय विश्लेषण अवधारणा को प्रतिध्वनित किया जाता है, जिसे x → 0−, x → 0−, या x → ↑0 द्वारा दर्शाया जा सकता है। और अंकन "−0" का उपयोग अनौपचारिक रूप से एक नकारात्मक संख्या को दर्शाने के लिए किया जा सकता है जिसे शून्य तक पूर्णांकित किया गया है। नकारात्मक शून्य की अवधारणा का सांख्यिकीय यांत्रिकी और अन्य विषयों में कुछ सैद्धांतिक अनुप्रयोग भी किया जाता हैं।

इस प्रकार से प्रमाणित किया जाता है कि आईईईई 754 में हस्ताक्षरित शून्य को सम्मिलित करने से कुछ महत्वपूर्ण समस्याओं में संख्यात्मक स्पष्टता प्राप्त करना अधिक सरल हो जाता है,[1] और विशेष रूप से जटिल संख्या प्राथमिक कार्यों के साथ गणना करते समय।[2] दूसरी ओर, हस्ताक्षरित शून्य की अवधारणा गणित में उपयुक्त सामान्य धारणा के विपरीत चलती रहती है जो कि नकारात्मक शून्य के समान मान है। नकारात्मक शून्य की अनुमति देने वाले प्रतिनिधित्व कार्यक्रमों में त्रुटियों का स्रोत हो सकते हैं, यदि सॉफ्टवेयर डेवलपर्स इस संवाद पर ध्यान नहीं देते हैं कि जबकि दो शून्य प्रतिनिधित्व संख्यात्मक तुलना के तहत समान व्यवहार करते हैं, तो वे कुछ कार्यों में अलग-अलग परिणाम देते हैं।

अभ्यावेदन

इस प्रकार से बाइनरी पूर्णांक प्रारूप विभिन्न एन्कोडिंग का उपयोग किया जाता हैं। और व्यापक रूप से उपयोग किए जाने वाले दो के पूरक एन्कोडिंग में, शून्य अहस्ताक्षरित उपयुक्त होते है। अर्थात पूर्णांकों के लिए 1+7-बिट संकेत और परिमाण प्रतिनिधित्व में, नकारात्मक शून्य को बिट स्ट्रिंग 10000000 द्वारा दर्शाया जाता है। और 8-बिट वाले पूरक प्रतिनिधित्व में, नकारात्मक शून्य को बिट स्ट्रिंग 11111111 द्वारा दर्शाया जाता है। इस प्रकार से तीनों में एन्कोडिंग, सकारात्मक या अहस्ताक्षरित शून्य को 00000000 द्वारा दर्शाया जाता है। चूंकि , इसके अतिरिक्त दो एन्कोडिंग (हस्ताक्षरित शून्य के साथ) पूर्णांक प्रारूपों के लिए असामान्य होते हैं। और हस्ताक्षरित शून्य वाले सबसे सामान्य प्रारूप फ़्लोटिंग-पॉइंट प्रारूप (आईईईई 754 प्रारूप या समान) हैं, जिनका वर्णन नीचे किया गया है।

बाइनरी32 में आईईईई 754 प्रतिनिधित्व द्वारा नकारात्मक शून्य

किन्तु आईईईई 754 बाइनरी फ़्लोटिंग-पॉइंट प्रारूपों में, शून्य मानों को पक्षपाती घातांक द्वारा दर्शाया जाता है और महत्व दोनों शून्य होते हैं। और ऋणात्मक शून्य में साइन बिट पर सेट है। कोई व्यक्ति कुछ गणनाओं के परिणाम के रूप में ऋणात्मक शून्य प्राप्त कर सकता है, इस प्रकार से उदाहरण के लिए ऋणात्मक संख्या पर अंकगणितीय अंडरफ्लो के परिणाम के रूप में (अन्य परिणाम भी संभव हो सकते हैं), या −1.0×0.0, या बस −0.0. के रूप में

इस प्रकार से आईईईई 754 दशमलव फ़्लोटिंग-पॉइंट प्रारूपों में, नकारात्मक शून्य को घातांक द्वारा दर्शाया जाता है जोकी प्रारूप के लिए सीमा में कोई वैध घातांक होता है, और वास्तविक महत्व शून्य होता है, और साइन बिट होता है।

गुण और प्रबंधन

अतः आईईईई 754 फ़्लोटिंग-पॉइंट मानक विभिन्न परिचालनों के तहत सकारात्मक शून्य और नकारात्मक शून्य के व्यवहार को निर्दिष्ट करता है। परिणाम वर्तमान आईईईई 754 या राउंडिंग नियम सेट िंग्स पर निर्भर हो सकता है।

नोटेशन

इस प्रकार से यह प्रणालियों में जिसमे हस्ताक्षरित और अहस्ताक्षरित दोनों शून्य सम्मिलित होते हैं, अंकन और कभी-कभी हस्ताक्षरित शून्य के लिए उपयोग किया जाता है।

अंकगणित

किन्तु जोड़ और गुणा क्रमविनिमेय हैं, जिससे कुछ विशेष नियम हैं जिनका पालन करना पड़ता है, जिसका अर्थ है कि बीजगणितीय सरलीकरण के लिए सामान्य गणितीय नियम प्रयुक्त नहीं हो सकते हैं। h> नीचे दिया गया चिह्न प्राप्त फ़्लोटिंग-पॉइंट परिणाम दिखाता है (यह सामान्य समानता ऑपरेटर नहीं है)।

गुणा या भाग करते समय चिह्नों के सामान्य नियम का सदैव पालन किया जाता है:

  • (के लिए ±∞ से भिन्न)
  • (के लिए 0 से भिन्न)

हस्ताक्षरित शून्य को जोड़ने या घटाने के लिए विशेष नियम हैं:

  • (के लिए 0 से भिन्न)
  • (किसी भी परिमित के लिए , −0 जब ऋणात्मक की ओर पूर्णांकित किया जाता है)

इस प्रकार से नकारात्मक शून्य के कारण (और इसके अतिरिक्त जब राउंडिंग मोड ऊपर या नीचे की ओर होता है), फ़्लोटिंग-पॉइंट वेरिएबल x और y के लिए अभिव्यक्ति −(xy) और(−x) − (−y) को y द्वारा प्रतिस्थापित x नहीं किया जा सकता है। चूंकि (−0) + x को निकटतम तक पूर्णांकित करके x द्वारा प्रतिस्थापित किया जा सकता है (इसके अतिरिक्त जब x या सिग्नलिंग NaN हो सकता है)।

कुछ अन्य विशेष नियम:

  • [3]
  • (विभाजन के लिए चिह्न नियम का पालन करता है)
  • (गैर-शून्य के लिए , विभाजन के लिए चिह्न नियम का पालन करता है)
  • (अनिश्चित रूप के लिए NaN या व्यवधान)

इस प्रकार से गैर-शून्य संख्या को शून्य से विभाजित करने पर शून्य से विभाजन निर्धारित होता है और आईईईई 754 या अपवाद हैं डलिंग, और NaN उत्पन्न करने वाला ऑपरेशन अमान्य ऑपरेशन ध्वज सेट करता है। यदि संबंधित ध्वज के लिए सक्षम किया गया है तो अपवाद हैंडलिंग को कॉल किया जाता है।

तुलना

आईईईई 754 मानक के अनुसार, नकारात्मक शून्य और सकारात्मक शून्य की तुलना सामान्य (संख्यात्मक) तुलना ऑपरेटरों के समान होनी चाहिए, जैसे == सी (प्रोग्रामिंग भाषा) और जावा प्रोग्रामिंग भाषा के संचालक। उन भाषाओं में, दो मानों को अलग करने के लिए विशेष प्रोग्रामिंग ट्रिक्स की आवश्यकता हो सकती है:

  • संख्या को पूर्णांक प्रकार में टाइप करें, जिससे बिट पैटर्न में साइन बिट को देखा जा सके;
  • आईएसओ सी का उपयोग करना copysign() शून्य के चिह्न को किसी गैर-शून्य संख्या में कॉपी करने के लिए फ़ंक्शन (आईईईई 754 कॉपीसाइन ऑपरेशन);
  • आईएसओ सी का उपयोग करना signbit() मैक्रो (आईईईई 754 isSignMinus ऑपरेशन) जो बताता है कि किसी संख्या का साइन बिट सेट है या नहीं;
  • 1/(+0)=+∞ या 1/(−0)=−∞ प्राप्त करने के लिए शून्य का व्युत्क्रम लेना (यदि शून्य अपवाद द्वारा विभाजन फंसा नहीं है)।

ध्यान दें: इंटीग्रल प्रकार में कास्ट (कंप्यूटर प्रोग्रामिंग) सदैव काम नहीं करेगा, खासकर दो के पूरक सिस्टम पर।

चूंकि , कुछ प्रोग्रामिंग भाषाएँ वैकल्पिक तुलना ऑपरेटर प्रदान कर सकती हैं जो दो शून्यों को अलग करती हैं। यह स्तिथि है, उदाहरण के लिए, का equalsजावा में विधि Double आवरण वर्ग.[4]

तापमान जैसे पूर्णांकित मानों में

अनौपचारिक रूप से, कोई नकारात्मक मान के लिए नोटेशन −0 का उपयोग कर सकता है जिसे शून्य तक पूर्णांकित किया गया था। यह अंकन तब उपयोगी हो सकता है जब कोई नकारात्मक चिह्न महत्वपूर्ण हो; उदाहरण के लिए, सेल्सीयस तापमान को सारणीबद्ध करते समय, जहां नकारात्मक संकेत का अर्थ शून्य से नीचे होता है।

सांख्यिकीय यांत्रिकी में

इस प्रकार से सांख्यिकीय यांत्रिकी में, जनसंख्या व्युत्क्रमण वाले सिस्टम का वर्णन करने के लिए कभी-कभी नकारात्मक तापमान का उपयोग किया जाता है, जिसे सकारात्मक अनंत से अधिक तापमान माना जा सकता है, क्योंकि जनसंख्या वितरण फ़ंक्शन में ऊर्जा का गुणांक -1/तापमान है। इस संदर्भ में, -0 का तापमान किसी भी अन्य नकारात्मक तापमान से उच्च (सैद्धांतिक) तापमान होता है, जोकी जनसंख्या व्युत्क्रमण की (सैद्धांतिक) अधिकतम बोधगम्य सीमा के अनुरूप है, जो +0 के विपरीत चरम है।[5]

यह भी देखें

संदर्भ

  1. William Kahan, "Branch Cuts for Complex Elementary Functions, or Much Ado About Nothing's Sign Bit", in The State of the Art in Numerical Analysis (eds. Iserles and Powell), Clarendon Press, Oxford, 1987.
  2. William Kahan, Derivatives in the Complex z-plane, p. 10.
  3. Cowlishaw, Mike (7 April 2009). "Decimal Arithmetic: Arithmetic operations – square-root". speleotrove.com (IBM Corporation). Retrieved 7 December 2010.
  4. http://java.sun.com/javase/6/docs/api/java/lang/Double.html#equals(java.lang.Object)
  5. Kittel, Charles and Herbert Kroemer (1980). Thermal Physics (2nd ed.). W. H. Freeman and Company. p. 462. ISBN 0-7167-1088-9.

अग्रिम पठन