आईईईई 754-1985: Difference between revisions
No edit summary |
No edit summary |
||
| Line 22: | Line 22: | ||
|लगभग 16 दशमलव अंक | |लगभग 16 दशमलव अंक | ||
|} | |} | ||
मानक | मानक धनात्मक और ऋणात्मक अनंत के लिए प्रतिनिधित्व को भी परिभाषित करता है, [[नकारात्मक शून्य|ऋणात्मक शून्य]], [[शून्य से विभाजन]] जैसे अमान्य परिणामों को संभालने के लिए पांच अपवाद, उन अपवादों का प्रतिनिधित्व करने के लिए विशेष मान जिन्हें [[NaN]] कहा जाता है, ऊपर दिखाए गए छोटी संख्याओं का प्रतिनिधित्व करने के लिए [[असामान्य संख्या|असामान्य संख्याएं]], और चार गोल मोड है। | ||
==संख्याओं का प्रतिनिधित्व== | ==संख्याओं का प्रतिनिधित्व== | ||
| Line 36: | Line 36: | ||
जैसा कि चित्रों में दिखाया गया है, आईईईई 754 में इस संख्या का प्रतिनिधित्व करने वाले तीन क्षेत्र हैं: | जैसा कि चित्रों में दिखाया गया है, आईईईई 754 में इस संख्या का प्रतिनिधित्व करने वाले तीन क्षेत्र हैं: | ||
: चिन्ह = 0, क्योंकि संख्या धनात्मक है (1 | : चिन्ह = 0, क्योंकि संख्या धनात्मक है (1 ऋणात्मक दर्शाता है।)। | ||
: बायस्ड घातांक = −3 + बायस है। 'एकल त्रुटिहीनता' में, बायस '127' है, इसलिए इस उदाहरण में बायस्ड घातांक 124 है; 'डबल प्रिसिजन' में, बायस '1023' है, इसलिए इस उदाहरण में बायस्ड घातांक 1020 है। | : बायस्ड घातांक = −3 + बायस है। 'एकल त्रुटिहीनता' में, बायस '127' है, इसलिए इस उदाहरण में बायस्ड घातांक 124 है; 'डबल प्रिसिजन' में, बायस '1023' है, इसलिए इस उदाहरण में बायस्ड घातांक 1020 है। | ||
: अपूर्णांक = .01000…<sub>2</sub>. | : अपूर्णांक = .01000…<sub>2</sub>. | ||
आईईईई 754 घातांक में [[ऑफसेट बाइनरी]] जोड़ता है जिससे कि कई स्थितियों में संख्याओं की तुलना उसी हार्डवेयर द्वारा सरलता से की जा सके जो हस्ताक्षरित 2-पूरक पूर्णांकों की तुलना करता है। बायस्ड घातांक का उपयोग करते हुए, दो | आईईईई 754 घातांक में [[ऑफसेट बाइनरी]] जोड़ता है जिससे कि कई स्थितियों में संख्याओं की तुलना उसी हार्डवेयर द्वारा सरलता से की जा सके जो हस्ताक्षरित 2-पूरक पूर्णांकों की तुलना करता है। बायस्ड घातांक का उपयोग करते हुए, दो धनात्मक फ़्लोटिंग-पॉइंट संख्याओं में से छोटी संख्या चिह्न और परिमाण पूर्णांक के समान क्रम के पश्चात बड़ी संख्या से कम निकलेगी। यदि दो फ़्लोटिंग-पॉइंट संख्याओं के भिन्न-भिन्न चिह्न हैं, तो चिह्न-और-परिमाण तुलना बायस्ड घातांक के साथ भी कार्य करती है। चूँकि, यदि दोनों बायस्ड-घातांक फ़्लोटिंग-पॉइंट संख्याएँ ऋणात्मक हैं, तो क्रम को विपरीत कर दिया जाना चाहिए। यदि घातांक को, मान लीजिए, 2-पूरक संख्या के रूप में दर्शाया जाता है, तो यह देखने के लिए तुलना करना कि दो संख्याओं में से कौन सी बड़ी है, उतना सुविधाजनक नहीं होता है। | ||
अग्रणी 1 बिट को विस्थापित कर दिया गया है क्योंकि शून्य को छोड़कर सभी संख्याएँ अग्रणी 1 से प्रारंभ होती हैं; अग्रणी 1 अंतर्निहित है और वास्तव में इसे संग्रहीत करने की आवश्यकता नहीं है जो मुफ़्त में अतिरिक्त त्रुटिहीनता देता है। | अग्रणी 1 बिट को विस्थापित कर दिया गया है क्योंकि शून्य को छोड़कर सभी संख्याएँ अग्रणी 1 से प्रारंभ होती हैं; अग्रणी 1 अंतर्निहित है और वास्तव में इसे संग्रहीत करने की आवश्यकता नहीं है जो मुफ़्त में अतिरिक्त त्रुटिहीनता देता है। | ||
| Line 48: | Line 48: | ||
शून्य संख्या को विशेष रूप से दर्शाया गया है: | शून्य संख्या को विशेष रूप से दर्शाया गया है: | ||
: | : धनात्मक शून्य के लिए चिह्न = 0, ऋणात्मक शून्य के लिए 1 है। | ||
: बायस्ड घातांक = 0 है। | : बायस्ड घातांक = 0 है। | ||
: अपूर्णांक = 0 है। | : अपूर्णांक = 0 है। | ||
| Line 62: | Line 62: | ||
किसी गणना की अनंतता या अमान्य परिणाम को प्रदर्शित करने के लिए बायस्ड-घातांक क्षेत्र सभी 1 बिट्स से पूर्ण है। | किसी गणना की अनंतता या अमान्य परिणाम को प्रदर्शित करने के लिए बायस्ड-घातांक क्षेत्र सभी 1 बिट्स से पूर्ण है। | ||
=== | === धनात्मक और ऋणात्मक अनंत === | ||
[[विस्तारित वास्तविक रेखा| | [[विस्तारित वास्तविक रेखा|धनात्मक और ऋणात्मक अनंत]] को इस प्रकार दर्शाया गया है: | ||
: | : धनात्मक अनंत के लिए चिह्न = 0, ऋणात्मक अनंत के लिए 1 है। | ||
: बायस्ड घातांक = सभी 1 बिट्स है। | : बायस्ड घातांक = सभी 1 बिट्स है। | ||
: अपूर्णांक = सभी 0 बिट्स है। | : अपूर्णांक = सभी 0 बिट्स है। | ||
| Line 84: | Line 84: | ||
एकल-त्रुटिहीन संख्याएँ 32 बिट्स पर व्याप्त हैं। एकल त्रुटिहीनता में: | एकल-त्रुटिहीन संख्याएँ 32 बिट्स पर व्याप्त हैं। एकल त्रुटिहीनता में: | ||
* शून्य के निकटतम | * शून्य के निकटतम धनात्मक और ऋणात्मक संख्याएं (घातक क्षेत्र में सभी 0 के साथ असामान्य मान और अपूर्णांक क्षेत्र में बाइनरी मान 1 द्वारा दर्शायी जाती हैं) हैं: | ||
*: ±2<sup>−23</sup>×2<sup>−126</sup> ≈ ±1.40130{{e|−45}} | *: ±2<sup>−23</sup>×2<sup>−126</sup> ≈ ±1.40130{{e|−45}} | ||
* शून्य के निकटतम | * शून्य के निकटतम धनात्मक और ऋणात्मक सामान्यीकृत संख्याएं (घातक क्षेत्र में बाइनरी मान 1 और अपूर्णांक क्षेत्र में 0 के साथ दर्शायी जाती हैं) हैं: | ||
*: ±1 × 2<sup>−126</sup> ≈ ±1.17549{{e|−38}} | *: ±1 × 2<sup>−126</sup> ≈ ±1.17549{{e|−38}} | ||
* शून्य से सबसे दूर की परिमित धनात्मक और परिमित ऋणात्मक संख्याएँ (घातक क्षेत्र में 254 और | * शून्य से सबसे दूर की परिमित धनात्मक और परिमित ऋणात्मक संख्याएँ (घातक क्षेत्र में 254 और अपूर्णांक क्षेत्र में सभी 1 के साथ मान द्वारा दर्शाई गई) हैं: | ||
*: ±(2−2<sup>−23</sup>) × 2<sup>127</sup><ref name="Kahan">{{Cite document | *: ±(2−2<sup>−23</sup>) × 2<sup>127</sup><ref name="Kahan">{{Cite document | ||
| author = William Kahan |author-link=William Kahan | | author = William Kahan |author-link=William Kahan | ||
| Line 166: | Line 166: | ||
डबल-त्रुटिहीन संख्याएँ 64 बिट्स पर व्याप्त हैं। दोहरी त्रुटिहीनता में: | डबल-त्रुटिहीन संख्याएँ 64 बिट्स पर व्याप्त हैं। दोहरी त्रुटिहीनता में: | ||
* शून्य के निकटतम | * शून्य के निकटतम धनात्मक और ऋणात्मक संख्याएं (एक्सप क्षेत्र में सभी 0 के साथ असामान्य मान और अपूर्णांक क्षेत्र में बाइनरी मान 1 द्वारा दर्शायी जाती हैं) हैं | ||
*: ±2<sup>−52</sup>×2<sup>−1022</sup> ≈ ±4.94066{{e|−324}} | *: ±2<sup>−52</sup>×2<sup>−1022</sup> ≈ ±4.94066{{e|−324}} | ||
* शून्य के निकटतम | * शून्य के निकटतम धनात्मक और ऋणात्मक सामान्यीकृत संख्याएं (एक्सप क्षेत्र में बाइनरी मान 1 और अपूर्णांक क्षेत्र में 0 के साथ दर्शायी जाती हैं) हैं: | ||
*: ±1 × 2<sup>−1022</sup> ≈ ±2.22507{{e|−308}} | *: ±1 × 2<sup>−1022</sup> ≈ ±2.22507{{e|−308}} | ||
* शून्य से सबसे दूर की परिमित धनात्मक और परिमित ऋणात्मक संख्याएँ (एक्सप क्षेत्र में 2046 और | * शून्य से सबसे दूर की परिमित धनात्मक और परिमित ऋणात्मक संख्याएँ (एक्सप क्षेत्र में 2046 और अपूर्णांक क्षेत्र में सभी 1 के साथ मान द्वारा दर्शाई गई) हैं: | ||
*: ±(2−2<sup>−52</sup>)×2<sup>1023</sup><ref name="Kahan" />≈ ±1.79769{{e|308}} | *: ±(2−2<sup>−52</sup>)×2<sup>1023</sup><ref name="Kahan" />≈ ±1.79769{{e|308}} | ||
| Line 264: | Line 264: | ||
| 0.0 | | 0.0 | ||
|- | |- | ||
| [[Negative zero| | | [[Negative zero|ऋणात्मक शून्य]] | ||
| style="text-align:center;"| 1 | | style="text-align:center;"| 1 | ||
| −126 | | −126 | ||
| Line 328: | Line 328: | ||
| ±(2−2<sup>−23</sup>) × 2<sup>127</sup> ≈ ±3.4{{e|38}} | | ±(2−2<sup>−23</sup>) × 2<sup>127</sup> ≈ ±3.4{{e|38}} | ||
|- | |- | ||
| | | धनात्मक अनन्तता | ||
| style="text-align:center;"| 0 | | style="text-align:center;"| 0 | ||
| 128 | | 128 | ||
| Line 336: | Line 336: | ||
| +∞ | | +∞ | ||
|- | |- | ||
| | | ऋणात्मक अनन्तता | ||
| style="text-align:center;"| 1 | | style="text-align:center;"| 1 | ||
| 128 | | 128 | ||
| Line 356: | Line 356: | ||
== फ़्लोटिंग-पॉइंट संख्याओं की तुलना करना == | == फ़्लोटिंग-पॉइंट संख्याओं की तुलना करना == | ||
ऋणात्मक शून्य और धनात्मक शून्य के लिए बिट्स के दो संयोजनों को | ऋणात्मक शून्य और धनात्मक शून्य के लिए बिट्स के दो संयोजनों को त्यागकर, प्रत्येक संभावित बिट संयोजन या तो NaN है या संबद्ध क्रम के साथ एफ़िनली विस्तारित वास्तविक संख्या प्रणाली में अद्वितीय मान वाला नंबर है, जिस पर कभी-कभी विशेष ध्यान देने की आवश्यकता होती है (नीचे देखें)। बाइनरी प्रतिनिधित्व में विशेष गुण होता है कि, NaN को त्यागकर, किसी भी दो संख्याओं की तुलना चिह्न और परिमाण पूर्णांक के रूप में की जा सकती है ([[endianness|एंडियननेस]] उद्देश्य प्रस्तावित होते हैं)। 2 के पूरक पूर्णांकों के रूप में तुलना करते समय: यदि साइन बिट भिन्न होते हैं, तो ऋणात्मक संख्या धनात्मक संख्या से पूर्व होती है, इसलिए 2 का पूरक सही परिणाम देता है (इसके अतिरिक्त कि ऋणात्मक शून्य और धनात्मक शून्य को समान माना जाना चाहिए)। यदि दोनों मान धनात्मक हैं, तो 2 की पूरक तुलना पुनः उचित परिणाम देती है। अन्यथा (दो ऋणात्मक संख्याएं), उचित एफपी क्रम 2 के पूरक क्रम के विपरीत है। | ||
फ़्लोटिंग पॉइंट गणनाओं में निहित राउंडिंग त्रुटियाँ परिणामों की त्रुटिहीन समानता | फ़्लोटिंग पॉइंट गणनाओं में निहित राउंडिंग त्रुटियाँ परिणामों की त्रुटिहीन समानता के परीक्षण के लिए तुलनाओं के उपयोग को सीमित कर सकती हैं। स्वीकार्य सीमा का चयन करना समष्टि विषय है। सामान्य तकनीक अनुमानित तुलना करने के लिए तुलनात्मक ईपीएसलॉन मान का उपयोग करना है।<ref>{{cite web|url=https://github.com/godotengine/godot/blob/master/core/math/math_funcs.h#L302|title=Godot math_funcs.h|website=GitHub.com|date=30 July 2022 }}</ref> तुलनाएँ कितनी उदार हैं, इस पर निर्भर करते हुए, सामान्य मूल्यों में एकल-त्रुटिहीनता के लिए <code>1e-6</code> या <code>1e-5</code>और दोहरी त्रुटिहीनता के लिए <code>1e-14</code> सम्मिलित हैं।<ref>{{cite web|url=https://github.com/godotengine/godot/blob/master/core/math/math_defs.h#L34|title=Godot math_defs.h|website=GitHub.com|date=30 July 2022 }}</ref><ref>{{cite web|url=https://github.com/godotengine/godot/blob/master/modules/mono/glue/Managed/Files/MathfEx.cs#L18|title=गोडोट MathfEx.cs|website=GitHub.com}}</ref> अन्य सामान्य तकनीक यूएलपी है, जो यह परीक्षण करती है कि अंतिम स्थान के अंकों में क्या अंतर है, प्रभावी रूप से यह परीक्षण करती है कि दोनों मान कितने दूर हैं।<ref>{{cite web|url=https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/|title=Comparing Floating Point Numbers, 2012 Edition|website=randomascii.wordpress.com|date=26 February 2012 }}</ref> | ||
चूँकि तुलनात्मक उद्देश्यों के लिए | |||
चूँकि तुलनात्मक उद्देश्यों के लिए ऋणात्मक शून्य और धनात्मक शून्य को सामान्यतः समान माना जाता है, कुछ [[प्रोग्रामिंग भाषा|प्रोग्रामिंग लैंग्वेज]] [[रिलेशनल ऑपरेटर]] और समान निर्माण उन्हें भिन्न मानते हैं। [[जावा (प्रोग्रामिंग भाषा)|जावा]] लैंग्वेज विशिष्टता के अनुसार,<ref>{{cite web|url=http://java.sun.com/docs/books/jls/|title=जावा भाषा और वर्चुअल मशीन विशिष्टताएँ|website=Java Documentation}}</ref> तुलना और समानता संचालक उन्हें समान मानते हैं, किन्तु <code>Math.min()</code> और <code>Math.max()</code> उन्हें अलग करते हैं (सामान्यतः जावा संस्करण 1.1 से प्रारंभ करते हैं किन्तु वास्तव में 1.1.1 के साथ), जैसा कि तुलना विधियां <code>Float</code> और <code>Double</code> कक्षाओं का <code>equals()</code>, <code>compareTo()</code> और यहां तक कि <code>compare()</code> भी हैं। | |||
==फ़्लोटिंग-पॉइंट संख्याओं को पूर्णांकित करना== | ==फ़्लोटिंग-पॉइंट संख्याओं को पूर्णांकित करना== | ||
| Line 366: | Line 367: | ||
* '''<nowiki/>'राउंड टू नियरेस्ट'''' - निकटतम मान तक राउंड; यदि संख्या मध्य में गिरती है तो इसे सम (शून्य) कम से कम महत्वपूर्ण बिट के साथ निकटतम मान तक पूर्णांकित किया जाता है, जिसका अर्थ है कि इसे 50% समय तक पूर्णांकित किया जाता है (आईईईई 754-2008 में इस मोड को दूसरे दौर से अलग करने के लिए राउंडटीज़टूईवन कहा जाता है) -से-निकटतम मोड)। | * '''<nowiki/>'राउंड टू नियरेस्ट'''' - निकटतम मान तक राउंड; यदि संख्या मध्य में गिरती है तो इसे सम (शून्य) कम से कम महत्वपूर्ण बिट के साथ निकटतम मान तक पूर्णांकित किया जाता है, जिसका अर्थ है कि इसे 50% समय तक पूर्णांकित किया जाता है (आईईईई 754-2008 में इस मोड को दूसरे दौर से अलग करने के लिए राउंडटीज़टूईवन कहा जाता है) -से-निकटतम मोड)। | ||
* '''<nowiki/>'राउंड टुवर्ड 0'''' - शून्य की ओर निर्देशित गोलाई। | * '''<nowiki/>'राउंड टुवर्ड 0'''' - शून्य की ओर निर्देशित गोलाई। | ||
* '''<nowiki/>'राउंड टुवर्ड +∞'''' - | * '''<nowiki/>'राउंड टुवर्ड +∞'''' - धनात्मक अनंत की ओर निर्देशित गोलाई। | ||
* '''<nowiki/>'राउंड टुवर्ड -∞'''' - | * '''<nowiki/>'राउंड टुवर्ड -∞'''' - ऋणात्मक अनंत की ओर निर्देशित गोलाई। | ||
==वास्तविक संख्याओं का विस्तार== | ==वास्तविक संख्याओं का विस्तार== | ||
आईईईई मानक भिन्न-भिन्न | आईईईई मानक भिन्न-भिन्न धनात्मक और ऋणात्मक अनन्तताओं के साथ, पूर्ण रूप से विस्तारित वास्तविक संख्या प्रणाली को नियोजित (और विस्तारित) करता है। प्रारूपण के समय, प्रोग्रामर को मोड चयन विकल्प प्रदान करके, एकल अहस्ताक्षरित अनंत के साथ प्रोजेक्टिवली विस्तारित वास्तविक संख्या प्रणाली को सम्मिलित करने के लिए मानक का प्रस्ताव था। चूँकि, अंतिम मानक की समष्टिता को कम करने के हित में, प्रोजेक्टिव मोड को विस्थापित कर दिया गया था। इंटेल 8087 और [[Intel 80287|इंटेल 80287]] फ़्लोटिंग पॉइंट सह-प्रोसेसर दोनों इस प्रोजेक्टिव मोड का समर्थन करते हैं।<ref>{{cite journal|journal=ACM Transactions on Programming Languages and Systems|volume=18|issue=2|date=March 1996|format=PDF|url=http://www.jhauser.us/publications/1996_Hauser_FloatingPointExceptions.html|author=John R. Hauser|title=संख्यात्मक कार्यक्रमों में फ़्लोटिंग-पॉइंट अपवादों को संभालना|doi=10.1145/227699.227701|pages=139–174|s2cid=9820157}}</ref><ref>{{cite journal|title=IEEE Task P754: A proposed standard for binary floating-point arithmetic|date=March 1981|journal=IEEE Computer|volume=14|issue=3|pages=51–62|author=David Stevenson|doi=10.1109/C-M.1981.220377|s2cid=15523399 }}</ref><ref>{{cite journal|author= William Kahan and John Palmer|year=1979|title=प्रस्तावित फ़्लोटिंग-पॉइंट मानक पर|journal=SIGNUM Newsletter|volume=14|issue=Special|pages=13–21|doi= 10.1145/1057520.1057522|s2cid=16981715}}</ref> | ||
== फंक्शन्स और प्रेडिकेट्स == | == फंक्शन्स और प्रेडिकेट्स == | ||
| Line 378: | Line 379: | ||
*जोड़ें, घटाएं, गुणा करें, भाग करें। | *जोड़ें, घटाएं, गुणा करें, भाग करें। | ||
*[[वर्गमूल]] | *[[वर्गमूल]] | ||
*फ़्लोटिंग पॉइंट शेष यह सामान्य [[मॉड्यूलो ऑपरेशन]] के जैसे नहीं है, यह दो | *फ़्लोटिंग पॉइंट शेष यह सामान्य [[मॉड्यूलो ऑपरेशन]] के जैसे नहीं है, यह दो धनात्मक संख्याओं के लिए ऋणात्मक हो सकता है। यह {{math|x–(round(x/y)·y)}} का त्रुटिहीन मान लौटाता है। | ||
* [[पूर्णांक तक पूर्णांकन|निकटतम पूर्णांक तक पूर्णांकन]] अप्रत्यक्ष पूर्णांकन के लिए जब दो पूर्णांकों के मध्यआधा हो तो सम पूर्णांक चयन किया जाता है। | * [[पूर्णांक तक पूर्णांकन|निकटतम पूर्णांक तक पूर्णांकन]] अप्रत्यक्ष पूर्णांकन के लिए जब दो पूर्णांकों के मध्यआधा हो तो सम पूर्णांक चयन किया जाता है। | ||
*तुलना संचालन. अधिक स्पष्ट परिणामों के अतिरिक्त, आईईईई 754 परिभाषित करता है कि −∞ = −∞, +∞ = +∞ और <var>x</var> ≠<code>NaN</code> किसी भी <var>x</var> के लिए (सहित) <code>NaN</code>) होता है। | *तुलना संचालन. अधिक स्पष्ट परिणामों के अतिरिक्त, आईईईई 754 परिभाषित करता है कि −∞ = −∞, +∞ = +∞ और <var>x</var> ≠<code>NaN</code> किसी भी <var>x</var> के लिए (सहित) <code>NaN</code>) होता है। | ||
Revision as of 20:50, 12 August 2023
आईईईई 754-1985[1] कंप्यूटर में फ्लोटिंग-पॉइंट नंबरों का प्रतिनिधित्व करने के लिए उद्योग मानक था, जिसे सामान्यतः 1985 में स्वीकार किया गया था और 2008 में आईईईई 754-2008 द्वारा प्रतिस्थापित किया गया था, और फिर 2019 में सामान्य संशोधन आईईईई 754-2019 द्वारा प्रतिस्थापित किया गया था।[2] अपने 23 वर्षों के समय, यह फ़्लोटिंग-पॉइंट गणना के लिए सबसे व्यापक रूप से उपयोग किया जाने वाला प्रारूप था। इसे सॉफ़्टवेयर में, फ़्लोटिंग-पॉइंट लाइब्रेरीज़ के रूप में, और हार्डवेयर में, कई सीपीयू और एफपीयू के निर्देशों में प्रस्तावित किया गया था। आईईईई 754-1985 बनने वाले ड्राफ्ट को प्रस्तावित करने वाला प्रथम एकीकृत सर्किट इंटेल 8087 था।
आईईईई 754-1985 बाइनरी में संख्याओं का प्रतिनिधित्व करता है, जो त्रुटिहीनता के चार स्तरों की परिभाषा प्रदान करता है, जिनमें से दो सबसे अधिक उपयोग किए जाते हैं:
| लेवल | विड्थ | पूर्ण त्रुटिहीनता से रेंज करें | त्रुटिहीनता[lower-alpha 1] |
|---|---|---|---|
| एकल त्रुटिहीनता | 32 bits | ±1.18×10−38 to ±3.4×1038 | लगभग 7 दशमलव अंक |
| दोगुना त्रुटिहीनता | 64 bits | ±2.23×10−308 to ±1.80×10308 | लगभग 16 दशमलव अंक |
मानक धनात्मक और ऋणात्मक अनंत के लिए प्रतिनिधित्व को भी परिभाषित करता है, ऋणात्मक शून्य, शून्य से विभाजन जैसे अमान्य परिणामों को संभालने के लिए पांच अपवाद, उन अपवादों का प्रतिनिधित्व करने के लिए विशेष मान जिन्हें NaN कहा जाता है, ऊपर दिखाए गए छोटी संख्याओं का प्रतिनिधित्व करने के लिए असामान्य संख्याएं, और चार गोल मोड है।
संख्याओं का प्रतिनिधित्व
आईईईई 754 प्रारूप में फ़्लोटिंग-पॉइंट नंबरों में तीन क्षेत्र होते हैं: साइन बिट, बायस्ड घातांक और अंश। निम्नलिखित उदाहरण प्रत्येक का अर्थ बताता है।
दशमलव संख्या 0.1562510 बाइनरी में 0.001012 (अर्थात् 1/8 + 1/32) दर्शाया गया है। (अंकाक्षर संख्या मूलांक दर्शाते हैं।) वैज्ञानिक संकेतन के अनुरूप, जहां संख्याओं को दशमलव बिंदु के बाईं ओर गैर-शून्य अंक के रूप में लिखा जाता है, हम इस संख्या को पुनः लिखते हैं जिससे कि इसमें बाइनरी बिंदु के बाईं ओर एकल 1 बिट होता है। हम तीन स्थितियों द्वारा त्यागे गए बिट्स के स्थानांतरण की पूर्ति के लिए 2 की उचित शक्ति से गुणा करते हैं:
अब हम भिन्न और घातांक को पढ़ सकते हैं: भिन्न .012 है और घातांक −3 है।
जैसा कि चित्रों में दिखाया गया है, आईईईई 754 में इस संख्या का प्रतिनिधित्व करने वाले तीन क्षेत्र हैं:
- चिन्ह = 0, क्योंकि संख्या धनात्मक है (1 ऋणात्मक दर्शाता है।)।
- बायस्ड घातांक = −3 + बायस है। 'एकल त्रुटिहीनता' में, बायस '127' है, इसलिए इस उदाहरण में बायस्ड घातांक 124 है; 'डबल प्रिसिजन' में, बायस '1023' है, इसलिए इस उदाहरण में बायस्ड घातांक 1020 है।
- अपूर्णांक = .01000…2.
आईईईई 754 घातांक में ऑफसेट बाइनरी जोड़ता है जिससे कि कई स्थितियों में संख्याओं की तुलना उसी हार्डवेयर द्वारा सरलता से की जा सके जो हस्ताक्षरित 2-पूरक पूर्णांकों की तुलना करता है। बायस्ड घातांक का उपयोग करते हुए, दो धनात्मक फ़्लोटिंग-पॉइंट संख्याओं में से छोटी संख्या चिह्न और परिमाण पूर्णांक के समान क्रम के पश्चात बड़ी संख्या से कम निकलेगी। यदि दो फ़्लोटिंग-पॉइंट संख्याओं के भिन्न-भिन्न चिह्न हैं, तो चिह्न-और-परिमाण तुलना बायस्ड घातांक के साथ भी कार्य करती है। चूँकि, यदि दोनों बायस्ड-घातांक फ़्लोटिंग-पॉइंट संख्याएँ ऋणात्मक हैं, तो क्रम को विपरीत कर दिया जाना चाहिए। यदि घातांक को, मान लीजिए, 2-पूरक संख्या के रूप में दर्शाया जाता है, तो यह देखने के लिए तुलना करना कि दो संख्याओं में से कौन सी बड़ी है, उतना सुविधाजनक नहीं होता है।
अग्रणी 1 बिट को विस्थापित कर दिया गया है क्योंकि शून्य को छोड़कर सभी संख्याएँ अग्रणी 1 से प्रारंभ होती हैं; अग्रणी 1 अंतर्निहित है और वास्तव में इसे संग्रहीत करने की आवश्यकता नहीं है जो मुफ़्त में अतिरिक्त त्रुटिहीनता देता है।
शून्य
शून्य संख्या को विशेष रूप से दर्शाया गया है:
- धनात्मक शून्य के लिए चिह्न = 0, ऋणात्मक शून्य के लिए 1 है।
- बायस्ड घातांक = 0 है।
- अपूर्णांक = 0 है।
असामान्यीकृत संख्याएँ
ऊपर वर्णित संख्या निरूपण को सामान्यीकृत कहा जाता है, जिसका अर्थ है कि अंतर्निहित अग्रणी बाइनरी अंक 1 है। अंडरफ्लो होने पर त्रुटिहीनता की हानि को कम करने के लिए, आईईईई 754 में सामान्यीकृत प्रतिनिधित्व में संभव से छोटे अंशों का प्रतिनिधित्व करने की क्षमता सम्मिलित है। अंतर्निहित अग्रणी अंक 0 बनाता है। ऐसी संख्याओं को असामान्य संख्याएँ कहा जाता है। उनमें सामान्यीकृत संख्या के रूप में कई महत्वपूर्ण अंक सम्मिलित नहीं होते हैं, किन्तु जब किसी ऑपरेशन का परिणाम शून्य नहीं होता है, किन्तु सामान्यीकृत संख्या द्वारा दर्शाए जाने के लिए शून्य के अधिक निकट होता है, तो वे त्रुटिहीनता की क्रमिक हानि को सक्षम करते हैं।
असामान्य संख्या को सभी 0 बिट्स के बायस्ड घातांक के साथ दर्शाया जाता है, जो एकल त्रुटिहीनता में −126 के घातांक का प्रतिनिधित्व करता है (−127 नहीं), या दोहरी त्रुटिहीनता में −1022 (−1023 नहीं) का प्रतिनिधित्व करता है।[3] इसके विपरीत, सामान्य संख्या का प्रतिनिधित्व करने वाला सबसे छोटा बायस्ड घातांक 1 है (नीचे उदाहरण देखें)।
गैर-संख्याओं का प्रतिनिधित्व
किसी गणना की अनंतता या अमान्य परिणाम को प्रदर्शित करने के लिए बायस्ड-घातांक क्षेत्र सभी 1 बिट्स से पूर्ण है।