चिह्नित शून्य
हस्ताक्षरित शून्य संबंधित चिह्न (गणित) के साथ शून्य है। सामान्य अंकगणित में, संख्या 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 प्रारूप या समान) हैं, जिनका वर्णन नीचे किया गया है।
किन्तु आईईईई 754 बाइनरी फ़्लोटिंग-पॉइंट प्रारूपों में, शून्य मानों को पक्षपाती घातांक द्वारा दर्शाया जाता है और महत्व दोनों शून्य होते हैं। और ऋणात्मक शून्य में साइन बिट पर सेट है। कोई व्यक्ति कुछ गणनाओं के परिणाम के रूप में ऋणात्मक शून्य प्राप्त कर सकता है, इस प्रकार से उदाहरण के लिए ऋणात्मक संख्या पर अंकगणितीय अंडरफ्लो के परिणाम के रूप में (अन्य परिणाम भी संभव हो सकते हैं), या −1.0×0.0
, या बस −0.0
. के रूप में
इस प्रकार से आईईईई 754 दशमलव फ़्लोटिंग-पॉइंट प्रारूपों में, नकारात्मक शून्य को घातांक द्वारा दर्शाया जाता है जोकी प्रारूप के लिए सीमा में कोई वैध घातांक होता है, और वास्तविक महत्व शून्य होता है, और साइन बिट होता है।
गुण और प्रबंधन
अतः आईईईई 754 फ़्लोटिंग-पॉइंट मानक विभिन्न परिचालनों के तहत सकारात्मक शून्य और नकारात्मक शून्य के व्यवहार को निर्दिष्ट करता है। परिणाम वर्तमान आईईईई 754 या राउंडिंग नियम सेट िंग्स पर निर्भर हो सकता है।
नोटेशन
इस प्रकार से यह प्रणालियों में जिसमे हस्ताक्षरित और अहस्ताक्षरित दोनों शून्य सम्मिलित होते हैं, अंकन और कभी-कभी हस्ताक्षरित शून्य के लिए उपयोग किया जाता है।
अंकगणित
किन्तु जोड़ और गुणा क्रमविनिमेय हैं, जिससे कुछ विशेष नियम हैं जिनका पालन करना पड़ता है, जिसका अर्थ है कि बीजगणितीय सरलीकरण के लिए सामान्य गणितीय नियम प्रयुक्त नहीं हो सकते हैं। h> नीचे दिया गया चिह्न प्राप्त फ़्लोटिंग-पॉइंट परिणाम दिखाता है (यह सामान्य समानता ऑपरेटर नहीं है)।
गुणा या भाग करते समय चिह्नों के सामान्य नियम का सदैव पालन किया जाता है:
- (के लिए ±∞ से भिन्न)
- (के लिए 0 से भिन्न)
हस्ताक्षरित शून्य को जोड़ने या घटाने के लिए विशेष नियम हैं:
- (के लिए 0 से भिन्न)
- (किसी भी परिमित के लिए , −0 जब ऋणात्मक की ओर पूर्णांकित किया जाता है)
इस प्रकार से नकारात्मक शून्य के कारण (और इसके अतिरिक्त जब राउंडिंग मोड ऊपर या नीचे की ओर होता है), फ़्लोटिंग-पॉइंट वेरिएबल x और y के लिए अभिव्यक्ति −(x − y) और(−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]
यह भी देखें
- दो मूल वाली रेखा
- विस्तारित वास्तविक संख्या रेखा
संदर्भ
- ↑ 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.
- ↑ William Kahan, Derivatives in the Complex z-plane, p. 10.
- ↑ Cowlishaw, Mike (7 April 2009). "Decimal Arithmetic: Arithmetic operations – square-root". speleotrove.com (IBM Corporation). Retrieved 7 December 2010.
- ↑ http://java.sun.com/javase/6/docs/api/java/lang/Double.html#equals(java.lang.Object)
- ↑ Kittel, Charles and Herbert Kroemer (1980). Thermal Physics (2nd ed.). W. H. Freeman and Company. p. 462. ISBN 0-7167-1088-9.
- "Floating point types". MSDN C# Language Specification. Retrieved 15 October 2005.
- "Division operator". MSDN C# Language Specification. Retrieved 15 October 2005.
- Thomas Wang (March 2000). "Java Floating-Point Number Intricacies". September 2000. Archived from the original on 2005-09-21.
{{cite journal}}
: Cite journal requires|journal=
(help) - Mike Colishaw (28 July 2008). "Decimal Arithmetic Specification, version 1.68". Retrieved 2008-08-14. – a decimal floating-point specification that includes negative zero
अग्रिम पठन
- Michael Ingrassia. "Fortran 95 SIGN Change". Sun Developer Network. Retrieved October 15, 2005. – the changes in the Fortran
SIGN
function in Fortran 95 to accommodate negative zero - "JScript data types". MSDN JScript. Retrieved October 16, 2005. – JScript's floating-point type with negative zero by definition
- Venners, Bill (October 1, 1996). "Floating-point arithmetic". Learn Java. JavaWorld. Under the Hood. Retrieved 2020-07-14. – representation of negative zero in the Java virtual machine
- Bruce Dawson (25 February 2012). "Comparing floating point numbers, 2012 Edition". – how to handle negative zero when comparing floating-point numbers
- John Walker. "Minus Zero". UNIVAC Memories. Retrieved October 17, 2005. – one's complement numbers on the UNIVAC 1100 family computers