आईईईई 754-1985: Difference between revisions
From Vigyanwiki
No edit summary |
m (22 revisions imported from alpha:आईईईई_754-1985) |
||
| (19 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
{{short description|First edition of the IEEE 754 floating-point standard}} | {{short description|First edition of the IEEE 754 floating-point standard}} | ||
{{See also|आईईईई 754}} | {{See also|आईईईई 754}} | ||
आईईईई 754-1985<ref>{{Cite book|title=बाइनरी फ़्लोटिंग-पॉइंट अंकगणित के लिए आईईईई मानक|year=1985|doi=10.1109/IEEESTD.1985.82928|isbn=0-7381-1165-1}}</ref> [[कंप्यूटर]] में [[ तैरनेवाला स्थल ]] | '''आईईईई 754-1985'''<ref>{{Cite book|title=बाइनरी फ़्लोटिंग-पॉइंट अंकगणित के लिए आईईईई मानक|year=1985|doi=10.1109/IEEESTD.1985.82928|isbn=0-7381-1165-1}}</ref> [[कंप्यूटर]] में [[ तैरनेवाला स्थल |फ्लोटिंग-पॉइंट]] नंबर्स का रिप्रजेंटेशन करने के लिए इंडस्ट्री [[तकनीकी मानक|स्टैण्डर्ड]] था, जिसे सामान्यतः 1985 में स्वीकार किया गया था और 2008 में [[IEEE 754-2008|आईईईई 754-2008]] द्वारा प्रतिस्थापित किया गया था, और फिर 2019 में माइनर वर्ज़न [[IEEE 754-2019|आईईईई 754-2019]] द्वारा प्रतिस्थापित किया गया था।<ref>{{Cite web|url=http://754r.ucbtest.org/background/|title=ANSI/IEEE Std 754-2019|website=754r.ucbtest.org|access-date=2019-08-06}}</ref> अपने 23 वर्षों के समय में, यह फ़्लोटिंग-पॉइंट कैलकुलेशन के लिए सबसे वाइड रूप से उपयोग किया जाने वाला फॉर्मेट था। इसे सॉफ़्टवेयर में, फ़्लोटिंग-पॉइंट [[ पुस्तकालय (कंप्यूटिंग) |लाइब्रेरीज़]] के रूप में, और हार्डवेयर में, कई [[ CPU |सीपीयू]] और [[फ़्लोटिंग-पॉइंट इकाई|एफपीयू]] के [[निर्देश (कंप्यूटर विज्ञान)|इंस्ट्रक्शन]] में इम्प्लीमेंट किया गया था। आईईईई 754-1985 बनने वाले ड्राफ्ट को इम्प्लीमेंट करने वाला प्रथम इंटीग्रेटेड सर्किट [[इंटेल 8087]] था। | ||
आईईईई 754-1985 बाइनरी | आईईईई 754-1985 बाइनरी में नंबर्स को रिप्रजेंटेशन करता है, जो एक्यूरेसी के चार लेवल्स की परिभाषा प्रदान करता है, जिनमें से दो सबसे अधिक उपयोग किए जाते हैं: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! | !लेवल | ||
! | !विड्थ | ||
! | !कम्पलीट एक्यूरेसी से रेंज करें | ||
! | !एक्यूरेसी{{efn|Precision: The number of decimal digits precision is calculated via number_of_mantissa_bits * Log<sub>10</sub>(2). Thus ~7.2 and ~15.9 for single and double precision respectively.}} | ||
|- | |- | ||
| | |सिंगल एक्यूरेसी | ||
|32 bits | |32 bits | ||
|±1.18{{e|-38}} to ±3.4{{e|38}} | |±1.18{{e|-38}} to ±3.4{{e|38}} | ||
| | |लगभग 7 दशमलव अंक | ||
|- | |- | ||
| | |डबल एक्यूरेसी | ||
|64 bits | |64 bits | ||
|±2.23{{e|-308}} to ±1.80{{e|308}} | |±2.23{{e|-308}} to ±1.80{{e|308}} | ||
| | |लगभग 16 दशमलव अंक | ||
|} | |} | ||
स्टैण्डर्ड पॉजिटिव और नेगेटिव इनफाइनाइट के लिए रिप्रजेंटेशन को भी परिभाषित करता है, [[नकारात्मक शून्य|नेगेटिव शून्य]], [[शून्य से विभाजन]] जैसे इनवैलिड परिणामों को सुरक्षित करने के लिए पांच एक्सेप्शन, उन एक्सेप्शन्स का रिप्रजेंटेशन करने के लिए विशेष वैल्यू जिन्हें [[NaN]] कहा जाता है, ऊपर दिखाए गए छोटी नंबर्स का रिप्रजेंटेशन करने के लिए [[असामान्य संख्या|डिनॉर्मल नंबर्स]], और चार गोल मोड है। | |||
== | ==नंबर्स का रिप्रजेंटेशन== | ||
[[Image:IEEE 754 Single Floating Point Format.svg|right|frame| | [[Image:IEEE 754 Single Floating Point Format.svg|right|frame|नंबर 0.15625 को सिंगल-एक्यूरेसी आईईईई 754-1985 फ़्लोटिंग-पॉइंट नंबर के रूप में दर्शाया गया है। स्पष्टीकरण के लिए टेक्स्ट देखें। ]] | ||
[[Image:IEEE 754 Double Floating Point Format.svg|right|frame|64 बिट आईईईई 754 में तीन | [[Image:IEEE 754 Double Floating Point Format.svg|right|frame|64 बिट आईईईई 754 में तीन फील्ड फ़्लोट होते हैं।]]आईईईई 754 फॉर्मेट में फ़्लोटिंग-पॉइंट नंबर्स में तीन फील्ड्स होते हैं: [[साइन बिट]], बायस्ड एक्सपोनेंट और फ्रैक्शन आदि। निम्नलिखित उदाहरण प्रत्येक का अर्थ बताता है। | ||
दशमलव | दशमलव नंबर 0.15625<sub>10</sub> बाइनरी में 0.00101<sub>2</sub> (अर्थात् 1/8 + 1/32) प्रदर्शित किया गया है। (सबस्क्रिप्ट नंबर [[मूलांक|बेस]] प्रदर्शित करते हैं।) [[वैज्ञानिक संकेतन|साइंटिफिक नोटेशन]] के अनुरूप, जहां नंबर्स को दशमलव बिंदु के बाईं ओर अन्य-शून्य अंक के रूप में लिखा जाता है, हम इस नंबर को पुनः लिखते हैं जिससे कि इसमें बाइनरी बिंदु के बाईं ओर सिंगल 1 बिट होता है। हम तीन स्टेट्स द्वारा लेफ्ट किये गए बिट्स के ट्रांसफर की पूर्ति के लिए 2 की एप्रोप्रियेट पावर से मल्टीप्लाई करते हैं: | ||
: <math>0.00101_2 = 1.01_2 \times 2^{-3}</math> | : <math>0.00101_2 = 1.01_2 \times 2^{-3}</math> | ||
अब हम | अब हम फ्रैक्शन और एक्सपोनेंट को रीड कर सकते हैं: फ्रैक्शन .01<sub>2</sub> है और एक्सपोनेंट −3 है। | ||
जैसा कि चित्रों में | जैसा कि चित्रों में प्रदर्शित किया गया है, आईईईई 754 में इस नंबर का रिप्रजेंटेशन करने वाले तीन फील्ड हैं: | ||
: चिन्ह = 0, क्योंकि | : चिन्ह = 0, क्योंकि नंबर पॉजिटिव है (1 नेगेटिव प्रदर्शित करता है।)। | ||
: | : बायस्ड एक्सपोनेंट = −3 + बायस है। 'सिंगल एक्यूरेसी' में, बायस '127' है, इसलिए इस उदाहरण में बायस्ड एक्सपोनेंट 124 है; 'डबल प्रिसिजन' में, बायस '1023' है, इसलिए इस उदाहरण में बायस्ड एक्सपोनेंट 1020 है। | ||
: | : फ्रैक्शन = .01000…<sub>2</sub>. | ||
आईईईई 754 | आईईईई 754 एक्सपोनेंट में [[ऑफसेट बाइनरी]] जोड़ता है जिससे कि कई स्टेट्स में नंबर्स की अपेक्षा उसी हार्डवेयर द्वारा सरलता से की जा सके जो साइंड 2-कॉम्प्लीमेंट इंटिजर्स की अपेक्षा करता है। बायस्ड एक्सपोनेंट का उपयोग करते हुए, दो पॉजिटिव फ़्लोटिंग-पॉइंट नंबर्स में से छोटी नंबर चिह्न और परिमाण इंटिजर्स के समान क्रम के पश्चात बड़ी नंबर से कम निकलती है। यदि दो फ़्लोटिंग-पॉइंट नंबर्स के भिन्न-भिन्न चिह्न हैं, तो चिह्न-और-परिमाण अपेक्षा बायस्ड एक्सपोनेंट के साथ भी कार्य करती है। चूँकि, यदि दोनों बायस्ड-एक्सपोनेंट फ़्लोटिंग-पॉइंट नंबर्स नेगेटिव हैं, तो क्रम को विपरीत कर दिया जाना चाहिए। यदि एक्सपोनेंट को, वैल्यू लीजिए, 2-कम्पलीट नंबर के रूप में प्रदर्शित किया जाता है, तो यह देखने के लिए अपेक्षा करना कि दो नंबर्स में से कौन सी बड़ी है, सुविधाजनक नहीं होता है। | ||
लीडिंग 1 बिट को ओमिटेड कर दिया गया है क्योंकि एक्सपैक्ट शून्य सभी नंबर्स लीडिंग 1 से प्रारंभ होती हैं; लीडिंग 1 इम्प्लीसिट है और वास्तव में इसे स्टोर करने की आवश्यकता नहीं है जो मुफ़्त में अतिरिक्त एक्यूरेसी प्रदान करता है। | |||
=== शून्य === | === शून्य === | ||
शून्य | शून्य नंबर को विशेष रूप से प्रदर्शित किया गया है: | ||
: | : पॉजिटिव शून्य के लिए चिह्न = 0, नेगेटिव शून्य के लिए 1 है। | ||
: | : बायस्ड एक्सपोनेंट = 0 है। | ||
: | : फ्रैक्शन = 0 है। | ||
=== | === डिनॉर्मल नंबर्स === | ||
ऊपर वर्णित | ऊपर वर्णित नंबर रिप्रजेंटेशन को नॉर्मेलाइज़ कहा जाता है, जिसका अर्थ है कि इम्प्लीसिट लीडिंग बाइनरी अंक 1 है। अंडरफ्लो होने पर एक्यूरेसी की हानि को कम करने के लिए, आईईईई 754 में नॉर्मेलाइज़ रिप्रजेंटेशन में संभव से छोटे अंशों का रिप्रजेंटेशन करने की क्षमता सम्मिलित है। इम्प्लीसिट लीडिंग अंक 0 बनाता है। ऐसी नंबर्स को असामान्य नंबर्स कहा जाता है। उनमें नॉर्मेलाइज़ नंबर के रूप में कई [[महत्वपूर्ण अंक|सिग्नीफिकेंट डिजिट]] सम्मिलित नहीं होते हैं, किन्तु जब किसी ऑपरेशन का रिजल्ट शून्य नहीं होता है, किन्तु नॉर्मेलाइज़ नंबर द्वारा प्रदर्शित किये जाने के लिए शून्य के अधिक निकट होता है, तो वे एक्यूरेसी की क्रमिक हानि को सक्षम करते हैं। | ||
असामान्य | असामान्य नंबर को सभी 0 बिट्स के बायस्ड एक्सपोनेंट के साथ प्रदर्शित किया जाता है, जो सिंगल एक्यूरेसी में −126 के एक्सपोनेंट का रिप्रजेंटेशन करता है (−127 नहीं), या डबल एक्यूरेसी में −1022 (−1023 नहीं) का रिप्रजेंटेशन करता है।<ref>{{cite book|last=Hennessy|title=कंप्यूटर संगठन और डिज़ाइन|year=2009|url=https://archive.org/details/computerorganiza00patt_779|url-access=limited|publisher=Morgan Kaufmann|page=[https://archive.org/details/computerorganiza00patt_779/page/n291 270]|isbn=9780123744937 }}</ref> इसके विपरीत, नार्मल नंबर का रिप्रजेंटेशन करने वाला सबसे छोटा बायस्ड एक्सपोनेंट 1 है (नीचे उदाहरण देखें)। | ||
== | ==नॉन-नंबर्स का रिप्रजेंटेशन == | ||
किसी | किसी कैलकुलेशन की इन्फिनिटी या इनवैलिड रिजल्ट को प्रदर्शित करने के लिए बायस्ड-एक्सपोनेंट फील्ड सभी 1 बिट्स से कम्पलीट है। | ||
=== | === पॉजिटिव और नेगेटिव इनफाइनाइट === | ||
[[विस्तारित वास्तविक रेखा]] को इस प्रकार | [[विस्तारित वास्तविक रेखा|पॉजिटिव और नेगेटिव इनफाइनाइट]] को इस प्रकार प्रदर्शित किया गया है: | ||
: | : पॉजिटिव इनफाइनाइट के लिए चिह्न = 0, नेगेटिव इनफाइनाइट के लिए 1 है। | ||
: | : बायस्ड एक्सपोनेंट = सभी 1 बिट्स है। | ||
: | : फ्रैक्शन = सभी 0 बिट्स है। | ||
=== NaN === | === NaN === | ||
फ़्लोटिंग-पॉइंट अंकगणित के कुछ ऑपरेशन इनवैलिड हैं, जैसे नेगेटिव नंबर का वर्गमूल लेता है। किसी इनवैलिड रिजल्ट तक पहुंचने की क्रिया को फ़्लोटिंग-पॉइंट अपवाद कहा जाता है। असाधारण रिजल्ट को "नॉट ए नंबर" के लिए NaN नामक विशेष कोड द्वारा प्रदर्शित किया जाता है। आईईईई 754-1985 में सभी NaN का फॉर्मेट यह है: | |||
: चिह्न = या तो 0 या 1 | : चिह्न = या तो 0 या 1 होता है। | ||
: | : बायस्ड एक्सपोनेंट = सभी 1 बिट्स है। | ||
: | : फ्रैक्शन = सभी 0 बिट्स को त्यागकर कुछ भी होता है (क्योंकि सभी 0 बिट्स इनफाइनाइट का रिप्रजेंटेशन करते हैं)। | ||
== | == सीरीज और एक्यूरेसी == | ||
[[File:IEEE 754 relative precision.svg|thumb|महत्वपूर्ण अंकों की | [[File:IEEE 754 relative precision.svg|thumb|महत्वपूर्ण अंकों की निश्चित नंबर का उपयोग करके दशमलव रिप्रजेंटेशन की अपेक्षा में सिंगल (बाइनरी 32) और डबल एक्यूरेसी (बाइनरी 64) नंबर्स की सापेक्ष एक्यूरेसी है। सापेक्ष एक्यूरेसी को यहां ulp(x)/x के रूप में परिभाषित किया गया है, जहां ulp(x) x के रिप्रजेंटेशन में [[अंतिम स्थान पर इकाई]] है, अर्थात x और अगले रिप्रजेंटेशन योग्य नंबर के मध्य का अंतर है।]]एक्यूरेसी को दो क्रमिक मंटिसा रिप्रजेंटेशन के मध्य न्यूनतम अंतर के रूप में परिभाषित किया गया है; इस प्रकार यह केवल मंटिसा में फंक्शन है; यद्यपि अंतर को दो क्रमिक नंबर्स के मध्य के अंतर के रूप में परिभाषित किया गया है।<ref>{{citation |title=Computer Arithmetic |author1=Hossam A. H. Fahmy |author2=Shlomo Waser |author3=Michael J. Flynn |url=http://arith.stanford.edu/~hfahmy/webpages/arith_class/arith.pdf |access-date=2011-01-02 |url-status=dead |archive-url=https://web.archive.org/web/20101008203307/http://arith.stanford.edu/~hfahmy/webpages/arith_class/arith.pdf |archive-date=2010-10-08}}</ref> | ||
[[एकल परिशुद्धता|''' | [[एकल परिशुद्धता|'''सिंगल एक्यूरेसी''']] | ||
सिंगल-एक्यूरेसी नंबर्स 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 और फ्रैक्शन फील्ड में सभी 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 97: | Line 97: | ||
| access-date = 2007-04-12 }}</ref> ≈ ±3.40282{{e|38}} | | access-date = 2007-04-12 }}</ref> ≈ ±3.40282{{e|38}} | ||
सिंगल एक्यूरेसी में दिए गए एक्सपोनेंट के लिए कुछ उदाहरण सीमा और अंतराल वैल्यू है: | |||
{| class="wikitable" style="text-align:right;" | {| class="wikitable" style="text-align:right;" | ||
|- style="text-align:center;" | |- style="text-align:center;" | ||
! | ! रियल एक्सपोनेंट (अनबायस्ड) | ||
! | ! एक्सपोनेंट (बायस्ड) | ||
! | ! न्यूनतम | ||
! | ! अधिकतम | ||
! | ! गैप | ||
|- | |- | ||
| −1 | | −1 | ||
| Line 161: | Line 161: | ||
| ≈ 2.02824e31 | | ≈ 2.02824e31 | ||
|} | |} | ||
उदाहरण के | उदाहरण के लिए, 16,777,217 को 32-बिट फ़्लोट के रूप में एन्कोड नहीं किया जा सकता क्योंकि इसे 16,777,216 पर रौंडिंग किया जाएगा। इससे ज्ञात होता है कि फ़्लोटिंग पॉइंट अंकगणित लेखांकन सॉफ़्टवेयर के लिए अनुपयुक्त क्यों है। चूँकि, रिप्रजेंटेशन योग्य सीमा के अंदर सभी इंटिजर्स जो 2 की पावर हैं, उन्हें बिना गोलाई के 32-बिट फ़्लोट में स्टोर किया जा सकता है। | ||
=== | === डबल एक्यूरेसी === | ||
डबल- | डबल-एक्यूरेसी नंबर्स 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}} | ||
* शून्य के निकटतम | * शून्य के निकटतम पॉजिटिव और नेगेटिव नॉर्मेलाइज़ नंबर्स (एक्सप फील्ड में बाइनरी | ||