दशमलव चल बिन्दु: Difference between revisions
No edit summary |
No edit summary |
||
Line 7: | Line 7: | ||
दशमलव [[फिक्स्ड-पॉइंट अंकगणित|फिक्स्ड-पॉइंट]] और पूर्णांक प्रतिनिधित्व पर दशमलव फ़्लोटिंग-पॉइंट प्रतिनिधित्व का लाभ यह है कि यह मानों की विस्तृत श्रृंखला का समर्थन करता है। उदाहरण के लिए, जबकि 8 दशमलव अंक और 2 दशमलव स्थान आवंटित करने वाला निश्चित-बिंदु प्रतिनिधित्व संख्या 123456.78, 8765.43, 123.00, का प्रतिनिधित्व कर सकता है, और इसी प्रकार 8 दशमलव अंकों के साथ फ़्लोटिंग-पॉइंट प्रतिनिधित्व 1.2345678, 1234567.8, 0.000012345678, 12345678000000000, और इसी तरह का प्रतिनिधित्व कर सकता है। यह व्यापक रेंज क्रमिक गणनाओं के समय राउंडिंग त्रुटियों के संचय को बनावटी रूप से धीमा कर सकती है; उदाहरण के लिए, [[कहान योग एल्गोरिथम|कहन योग एल्गोरिथम]] का उपयोग फ़्लोटिंग पॉइंट में कई संख्याओं को जोड़ने के लिए किया जा सकता है, जिसमें पूर्णन त्रुटि का कोई एसिम्प्टोटिक संचय नहीं होता है। | दशमलव [[फिक्स्ड-पॉइंट अंकगणित|फिक्स्ड-पॉइंट]] और पूर्णांक प्रतिनिधित्व पर दशमलव फ़्लोटिंग-पॉइंट प्रतिनिधित्व का लाभ यह है कि यह मानों की विस्तृत श्रृंखला का समर्थन करता है। उदाहरण के लिए, जबकि 8 दशमलव अंक और 2 दशमलव स्थान आवंटित करने वाला निश्चित-बिंदु प्रतिनिधित्व संख्या 123456.78, 8765.43, 123.00, का प्रतिनिधित्व कर सकता है, और इसी प्रकार 8 दशमलव अंकों के साथ फ़्लोटिंग-पॉइंट प्रतिनिधित्व 1.2345678, 1234567.8, 0.000012345678, 12345678000000000, और इसी तरह का प्रतिनिधित्व कर सकता है। यह व्यापक रेंज क्रमिक गणनाओं के समय राउंडिंग त्रुटियों के संचय को बनावटी रूप से धीमा कर सकती है; उदाहरण के लिए, [[कहान योग एल्गोरिथम|कहन योग एल्गोरिथम]] का उपयोग फ़्लोटिंग पॉइंट में कई संख्याओं को जोड़ने के लिए किया जा सकता है, जिसमें पूर्णन त्रुटि का कोई एसिम्प्टोटिक संचय नहीं होता है। | ||
== कार्यान्वयन == | == कार्यान्वयन == | ||
[[अबेकस]], [[स्लाइड नियम]], स्मॉलवुड [[कैलकुलेटर]] और कुछ अन्य कैलकुलेटर में दशमलव फ़्लोटिंग पॉइंट के प्रारंभिक यांत्रिक के उपयोग स्पष्ट हैं जो [[वैज्ञानिक संकेतन]] में प्रविष्टियों का समर्थन करते हैं। मैकेनिकल कैलकुलेटर की स्थितियों में, | [[अबेकस]], [[स्लाइड नियम]], स्मॉलवुड [[कैलकुलेटर]] और कुछ अन्य कैलकुलेटर में दशमलव फ़्लोटिंग पॉइंट के प्रारंभिक यांत्रिक के उपयोग स्पष्ट हैं जो [[वैज्ञानिक संकेतन]] में प्रविष्टियों का समर्थन करते हैं। मैकेनिकल कैलकुलेटर की स्थितियों में, घातांक को अधिकांश साइड इनफॉर्मेशन के रूप में माना जाता है जिसे अलग से गणना किया जाता है। | ||
[[आईबीएम 650]] कंप्यूटर ने 1953 में 8-अंकीय दशमलव फ़्लोटिंग-पॉइंट प्रारूप का समर्थन | [[आईबीएम 650]] कंप्यूटर ने 1953 में 8-अंकीय दशमलव फ़्लोटिंग-पॉइंट प्रारूप का समर्थन किया था।<ref name="Beebe_2017"/> अन्यथा बाइनरी [[वांग वी.एस]] मशीन ने 1977 में 64-बिट दशमलव फ्लोटिंग-पॉइंट प्रारूप का समर्थन किया था।<ref name="Savard_2018"/> [[मोटोरोला 68040]] प्रोसेसर के लिए फ्लोटिंग-पॉइंट सपोर्ट लाइब्रेरी ने 1990 में 96-बिट दशमलव फ्लोटिंग-पॉइंट स्टोरेज फॉर्मेट प्रदान किया था।<ref name="Savard_2018"/> | ||
कुछ [[कंप्यूटर भाषा|कंप्यूटर भाषाओं]] में दशमलव फ़्लोटिंग-पॉइंट अंकगणित का कार्यान्वयन होता है, जिसमें पीएल/आई, C# (प्रोग्रामिंग लैंग्वेज), [[जावा (प्रोग्रामिंग भाषा)]] सहित बिगडिसीमल, कैल्क के साथ एमएसीएस और पायथन (प्रोग्रामिंग लैंग्वेज) के दशमलव मॉड्यूल सहित दशमलव फ्लोटिंग-पॉइंट अंकगणित का कार्यान्वयन है। | कुछ [[कंप्यूटर भाषा|कंप्यूटर भाषाओं]] में दशमलव फ़्लोटिंग-पॉइंट अंकगणित का कार्यान्वयन होता है, जिसमें पीएल/आई, C# (प्रोग्रामिंग लैंग्वेज), [[जावा (प्रोग्रामिंग भाषा)]] सहित बिगडिसीमल, कैल्क के साथ एमएसीएस और पायथन (प्रोग्रामिंग लैंग्वेज) के दशमलव मॉड्यूल सहित दशमलव फ्लोटिंग-पॉइंट अंकगणित का कार्यान्वयन है। | ||
Line 19: | Line 19: | ||
माइक्रोसॉफ्ट सी #, या . नेट, प्रणाली.दशमलव का उपयोग करता है।<ref>{{cite web|url=http://www.yoda.arachsys.com/csharp/decimal.html|title=Decimal floating point in .NET|website=Yoda.arachsys.com}}</ref> | माइक्रोसॉफ्ट सी #, या . नेट, प्रणाली.दशमलव का उपयोग करता है।<ref>{{cite web|url=http://www.yoda.arachsys.com/csharp/decimal.html|title=Decimal floating point in .NET|website=Yoda.arachsys.com}}</ref> | ||
== आईईई 754-2008 एन्कोडिंग == | == आईईई 754-2008 एन्कोडिंग == | ||
{|class=wikitable style="text-align:center" | |||
आईईई 754-2008 मानक 32-, 64- और 128-बिट दशमलव फ़्लोटिंग-पॉइंट प्रस्तुतियों को परिभाषित करता है। बाइनरी फ़्लोटिंग-पॉइंट स्वरूपों के प्रकार, संख्या को चिन्ह, प्रतिपादक और [[महत्व]] में विभाजित किया जाता है। बाइनरी फ़्लोटिंग-पॉइंट के विपरीत, संख्याएँ आवश्यक रूप से सामान्यीकृत नहीं होती हैं; कुछ [[महत्वपूर्ण अंक]] वाले मानों के कई संभावित प्रतिनिधित्व हैं: 1×10<sup>2</sup>=0.1×10<sup>3</sup>=0.01×10<sup>4</sup>, आदि। जब महत्व शून्य है, तो घातांक का कोई भी मान हो सकता है। | |||
{| class="wikitable" style="text-align:center" | |||
|+आईईई 754-2008 दशमलव फ़्लोटिंग-पॉइंट प्रारूप | |+आईईई 754-2008 दशमलव फ़्लोटिंग-पॉइंट प्रारूप | ||
! [[decimal32 floating-point format|दशमलव32]] !! [[decimal64 floating-point format|दशमलव64]] !! [[decimal128 floating-point format|दशमलव128]] !! दशमलव (32k) !! align="left" |प्रारूप | ! [[decimal32 floating-point format|दशमलव32]] !! [[decimal64 floating-point format|दशमलव64]] !! [[decimal128 floating-point format|दशमलव128]] !! दशमलव (32k) !! align="left" |प्रारूप | ||
Line 44: | Line 46: | ||
|- | |- | ||
| 192 || 768 || 12288 || 3×2<sup>''w''</sup> = 48×4<sup>''k''</sup> | | 192 || 768 || 12288 || 3×2<sup>''w''</sup> = 48×4<sup>''k''</sup> | ||
! | !घातांक रेंज | ||
|- | |- | ||
| 96 || 384 || 6144 || Emax = 3×2<sup>''w''−1</sup> | | 96 || 384 || 6144 || Emax = 3×2<sup>''w''−1</sup> | ||
! अधिकतम | ! अधिकतम मान 9.99...×10<sup>Emax</sup> है | ||
|- | |- | ||
| −95 || −383 || −6143 || Emin = 1−Emax | | −95 || −383 || −6143 || Emin = 1−Emax | ||
Line 55: | Line 57: | ||
! सबसे छोटा शून्येतर मान 1×10<sup>Etiny</sup> है | ! सबसे छोटा शून्येतर मान 1×10<sup>Etiny</sup> है | ||
|} | |} | ||
प्रतिपादक श्रेणियों को चुना गया ताकि सामान्यीकृत मानों के लिए उपलब्ध सीमा लगभग सममित | प्रतिपादक श्रेणियों को चुना गया ताकि सामान्यीकृत मानों के लिए उपलब्ध सीमा लगभग सममित हो सके। चूंकि यह संभावित घातांक मानों की समान संख्या के साथ नहीं किया जा सकता है, इसलिए Emax को अतिरिक्त मान दिया गया था। | ||
दो अलग-अलग अभ्यावेदन परिभाषित किए गए हैं: | दो अलग-अलग अभ्यावेदन परिभाषित किए गए हैं: | ||
Line 77: | Line 79: | ||
s 1110m xxx घातांक 10 से प्रारंभ होता है, जिसका महत्व 100m से है | s 1110m xxx घातांक 10 से प्रारंभ होता है, जिसका महत्व 100m से है | ||
अग्रणी बिट (उपर्युक्त में) साइन बिट है, और निम्नलिखित बिट्स (ऊपर में xxx) अतिरिक्त | अग्रणी बिट (उपर्युक्त में) साइन बिट है, और निम्नलिखित बिट्स (ऊपर में xxx) अतिरिक्त घातांक बिट्स और शेष सबसे महत्वपूर्ण अंक को एन्कोड करते हैं, किन्तु उपयोग किए गए एन्कोडिंग विकल्प के आधार पर विवरण भिन्न होते हैं। | ||
अंतिम संयोजनों का उपयोग इन्फिनिटी और एनएएन के लिए किया जाता है, और दोनों वैकल्पिक एन्कोडिंग के लिए समान हैं: | अंतिम संयोजनों का उपयोग इन्फिनिटी और एनएएन के लिए किया जाता है, और दोनों वैकल्पिक एन्कोडिंग के लिए समान हैं: | ||
Line 102: | Line 104: | ||
इसमें उपसामान्य संख्याएं सम्मिलित हैं जहां प्रमुख महत्व और अंक 0 है। | इसमें उपसामान्य संख्याएं सम्मिलित हैं जहां प्रमुख महत्व और अंक 0 है। | ||
यदि साइन बिट के बाद 2 बिट्स 11 हैं, तो 8-बिट | यदि साइन बिट के बाद 2 बिट्स 11 हैं, तो 8-बिट घातांक फ़ील्ड को 2 बिट्स को दाईं ओर स्थानांतरित कर दिया जाता है (साइन बिट और उसके बाद 11 बिट्स दोनों के बाद), और प्रतिनिधित्व महत्व शेष 21 बिट्स में है। इस स्थितियों में वास्तविक महत्व में 3-बिट अनुक्रम 100 का अंतर्निहित (जो संग्रहीत नहीं है) है: | ||
<पूर्व> | <पूर्व> | ||
Line 114: | Line 116: | ||
ध्यान दें कि महत्व क्षेत्र के प्रमुख बिट्स सबसे महत्वपूर्ण दशमलव अंक को एनकोड नहीं करते हैं; वे बस बड़ी शुद्ध-द्विआधारी संख्या का हिस्सा हैं। उदाहरण के लिए, का महत्व {{gaps|8|000|000}} बाइनरी के रूप में एन्कोड किया गया है {{gaps|0111|1010000100|1000000000}}अग्रणी 4 बिट्स एन्कोडिंग 7 के साथ; पहला महत्व जिसके लिए 24 बिट की आवश्यकता होती है (और इस प्रकार दूसरा एन्कोडिंग फॉर्म) 2 है<sup>23</sup> = {{gaps|8|388|608}}. | ध्यान दें कि महत्व क्षेत्र के प्रमुख बिट्स सबसे महत्वपूर्ण दशमलव अंक को एनकोड नहीं करते हैं; वे बस बड़ी शुद्ध-द्विआधारी संख्या का हिस्सा हैं। उदाहरण के लिए, का महत्व {{gaps|8|000|000}} बाइनरी के रूप में एन्कोड किया गया है {{gaps|0111|1010000100|1000000000}}अग्रणी 4 बिट्स एन्कोडिंग 7 के साथ; पहला महत्व जिसके लिए 24 बिट की आवश्यकता होती है (और इस प्रकार दूसरा एन्कोडिंग फॉर्म) 2 है<sup>23</sup> = {{gaps|8|388|608}}. | ||
उपरोक्त मामलों में, प्रतिनिधित्व | उपरोक्त मामलों में, प्रतिनिधित्व मान है: | ||
: (−1)<sup>साइन करें</sup> × 10<sup>घातांक−101</sup> × महत्व | : (−1)<sup>साइन करें</sup> × 10<sup>घातांक−101</sup> × महत्व | ||
Line 122: | Line 124: | ||
इस संस्करण में, महत्व को दशमलव अंकों की श्रृंखला के रूप में संग्रहीत किया जाता है। अग्रणी अंक 0 और 9 (3 या 4 बाइनरी बिट्स) के बीच है, और शेष महत्व घनी पैक दशमलव (DPD) एन्कोडिंग का उपयोग करता है। | इस संस्करण में, महत्व को दशमलव अंकों की श्रृंखला के रूप में संग्रहीत किया जाता है। अग्रणी अंक 0 और 9 (3 या 4 बाइनरी बिट्स) के बीच है, और शेष महत्व घनी पैक दशमलव (DPD) एन्कोडिंग का उपयोग करता है। | ||
प्रतिपादक के अग्रणी 2 बिट्स और महत्व के अग्रणी अंक (3 या 4 बिट्स) को पांच बिट्स में जोड़ा जाता है जो साइन बिट का पालन करते हैं। इसके बाद फिक्स्ड-ऑफसेट | प्रतिपादक के अग्रणी 2 बिट्स और महत्व के अग्रणी अंक (3 या 4 बिट्स) को पांच बिट्स में जोड़ा जाता है जो साइन बिट का पालन करते हैं। इसके बाद फिक्स्ड-ऑफसेट घातांक कंटीन्यूअस फील्ड आता है। | ||
अंत में, महत्व निरंतरता क्षेत्र 2, 5, या 11 10-बिट [[डिलेट (कंप्यूटिंग)]] से बना है, प्रत्येक 3 दशमलव अंकों को कूटबद्ध करता है।<ref name="Muller_2010">{{cite book |author-last1=Muller |author-first1=Jean-Michel |author-last2=Brisebarre |author-first2=Nicolas |author-last3=de Dinechin |author-first3=Florent |author-last4=Jeannerod |author-first4=Claude-Pierre |author-last5=Lefèvre |author-first5=Vincent |author-last6=Melquiond |author-first6=Guillaume |author-last7=Revol |author-first7=Nathalie |author7-link=Nathalie Revol|author-last8=Stehlé |author-first8=Damien |author-last9=Torres |author-first9=Serge |title=फ़्लोटिंग-प्वाइंट अंकगणित की पुस्तिका|date=2010 |publisher=[[Birkhäuser]] |edition=1 |isbn=978-0-8176-4704-9<!-- print --> |doi=10.1007/978-0-8176-4705-6 |lccn=2009939668<!-- |id=ISBN 978-0-8176-4705-6 (online), ISBN-10 0-8176-4704-X (print) --> |url=http://cds.cern.ch/record/1315760}}</रेफरी> | अंत में, महत्व निरंतरता क्षेत्र 2, 5, या 11 10-बिट [[डिलेट (कंप्यूटिंग)]] से बना है, प्रत्येक 3 दशमलव अंकों को कूटबद्ध करता है।<ref name="Muller_2010">{{cite book |author-last1=Muller |author-first1=Jean-Michel |author-last2=Brisebarre |author-first2=Nicolas |author-last3=de Dinechin |author-first3=Florent |author-last4=Jeannerod |author-first4=Claude-Pierre |author-last5=Lefèvre |author-first5=Vincent |author-last6=Melquiond |author-first6=Guillaume |author-last7=Revol |author-first7=Nathalie |author7-link=Nathalie Revol|author-last8=Stehlé |author-first8=Damien |author-last9=Torres |author-first9=Serge |title=फ़्लोटिंग-प्वाइंट अंकगणित की पुस्तिका|date=2010 |publisher=[[Birkhäuser]] |edition=1 |isbn=978-0-8176-4704-9<!-- print --> |doi=10.1007/978-0-8176-4705-6 |lccn=2009939668<!-- |id=ISBN 978-0-8176-4705-6 (online), ISBN-10 0-8176-4704-X (print) --> |url=http://cds.cern.ch/record/1315760}}</रेफरी> | ||
Line 129: | Line 131: | ||
रेफरी>[http://speleotrove.com/decimal/dbspec.html दशमलव एन्कोडिंग विशिष्टता, संस्करण 1.00], आईबीएम से</ref> | रेफरी>[http://speleotrove.com/decimal/dbspec.html दशमलव एन्कोडिंग विशिष्टता, संस्करण 1.00], आईबीएम से</ref> | ||
<पूर्व> | <पूर्व> | ||
कंघा। | कंघा। घातांक महत्व | ||
एस 00 टीटीटी (00) eeeeee (0TTT) [ttttttttt] [tttttttttt] | एस 00 टीटीटी (00) eeeeee (0TTT) [ttttttttt] [tttttttttt] | ||
एस 01 टीटीटी (01) eeeeee (0TTT) [ttttttttt] [tttttttttt] | एस 01 टीटीटी (01) eeeeee (0TTT) [ttttttttt] [tttttttttt] | ||
एस 10 टीटीटी (10) eeeeee (0TTT) [ttttttttt] [tttttttttt] | एस 10 टीटीटी (10) eeeeee (0TTT) [ttttttttt] [tttttttttt] | ||
</पूर्व> | </पूर्व> | ||
यदि साइन बिट के बाद पहले दो बिट 11 हैं, तो दूसरे दो बिट | यदि साइन बिट के बाद पहले दो बिट 11 हैं, तो दूसरे दो बिट घातांक के अग्रणी बिट हैं, और अंतिम बिट को 100 के साथ अग्रणी दशमलव अंक (8 या 9) बनाने के लिए उपसर्ग किया जाता है: | ||
<पूर्व> | <पूर्व> | ||
कंघा। | कंघा। घातांक महत्व | ||
एस 1100 टी (00) eeeeee (100 टी) [ttttttttt] [tttttttttt] | एस 1100 टी (00) eeeeee (100 टी) [ttttttttt] [tttttttttt] | ||
एस 1101 टी (01) eeeeee (100T) [ttttttttt] [tttttttttt] | एस 1101 टी (01) eeeeee (100T) [ttttttttt] [tttttttttt] | ||
Line 145: | Line 147: | ||
== फ़्लोटिंग-पॉइंट अंकगणितीय ऑपरेशन == | == फ़्लोटिंग-पॉइंट अंकगणितीय ऑपरेशन == | ||
फ़्लोटिंग-पॉइंट अंकगणित करने का सामान्य नियम यह है कि सटीक गणितीय मान की गणना की जाती है,<ref>Computer hardware doesn't necessarily compute the exact value; it simply has to produce the equivalent rounded result as though it had computed the infinitely precise result.</ref> और फिर परिणाम को निर्दिष्ट सटीकता में निकटतम प्रतिनिधित्व योग्य | फ़्लोटिंग-पॉइंट अंकगणित करने का सामान्य नियम यह है कि सटीक गणितीय मान की गणना की जाती है,<ref>Computer hardware doesn't necessarily compute the exact value; it simply has to produce the equivalent rounded result as though it had computed the infinitely precise result.</ref> और फिर परिणाम को निर्दिष्ट सटीकता में निकटतम प्रतिनिधित्व योग्य मान पर गोल किया जाता है। यह वास्तव में सामान्य राउंडिंग व्यवहार के तहत और असाधारण स्थितियों की अनुपस्थिति में आईईईई-अनुपालन कंप्यूटर हार्डवेयर के लिए अनिवार्य व्यवहार है। | ||
प्रस्तुति और समझ में आसानी के लिए, उदाहरणों में 7 अंकों की सटीकता का उपयोग किया जाएगा। मौलिक सिद्धांत किसी भी परिशुद्धता में समान हैं। | प्रस्तुति और समझ में आसानी के लिए, उदाहरणों में 7 अंकों की सटीकता का उपयोग किया जाएगा। मौलिक सिद्धांत किसी भी परिशुद्धता में समान हैं। | ||
=== जोड़ === | === जोड़ === | ||
फ़्लोटिंग-पॉइंट नंबर जोड़ने का सरल तरीका यह है कि पहले उन्हें उसी | फ़्लोटिंग-पॉइंट नंबर जोड़ने का सरल तरीका यह है कि पहले उन्हें उसी घातांक के साथ प्रदर्शित किया जाए। नीचे दिए गए उदाहरण में, दूसरी संख्या को 3 अंकों से दाईं ओर स्थानांतरित कर दिया गया है। हम सामान्य जोड़ विधि के साथ आगे बढ़ते हैं: | ||
निम्न उदाहरण दशमलव है, जिसका सीधा अर्थ है कि आधार 10 है। | निम्न उदाहरण दशमलव है, जिसका सीधा अर्थ है कि आधार 10 है। |
Revision as of 07:40, 8 February 2023
Floating-point formats |
---|
IEEE 754 |
|
Other |
Computer architecture bit widths |
---|
Bit |
Application |
Binary floating-point precision |
Decimal floating-point precision |
दशमलव फ़्लोटिंग-पॉइंट (डीऍफ़पी) अंकगणित दशमलव डेटा प्रकार फ़्लोटिंग-पॉइंट संख्याओं पर प्रतिनिधित्व और संचालन दोनों को संदर्भित करता है। दशमलव (आधार-10) अंशों के साथ सीधे कार्य करने से राउंडिंग त्रुटियों से बचा जा सकता है जो सामान्यतः दशमलव अंशों (मानव-प्रविष्ट डेटा में सामान्य, जैसे माप या वित्तीय जानकारी) और बाइनरी (आधार-2) अंशों के बीच परिवर्तित करते समय होती हैं।
दशमलव फिक्स्ड-पॉइंट और पूर्णांक प्रतिनिधित्व पर दशमलव फ़्लोटिंग-पॉइंट प्रतिनिधित्व का लाभ यह है कि यह मानों की विस्तृत श्रृंखला का समर्थन करता है। उदाहरण के लिए, जबकि 8 दशमलव अंक और 2 दशमलव स्थान आवंटित करने वाला निश्चित-बिंदु प्रतिनिधित्व संख्या 123456.78, 8765.43, 123.00, का प्रतिनिधित्व कर सकता है, और इसी प्रकार 8 दशमलव अंकों के साथ फ़्लोटिंग-पॉइंट प्रतिनिधित्व 1.2345678, 1234567.8, 0.000012345678, 12345678000000000, और इसी तरह का प्रतिनिधित्व कर सकता है। यह व्यापक रेंज क्रमिक गणनाओं के समय राउंडिंग त्रुटियों के संचय को बनावटी रूप से धीमा कर सकती है; उदाहरण के लिए, कहन योग एल्गोरिथम का उपयोग फ़्लोटिंग पॉइंट में कई संख्याओं को जोड़ने के लिए किया जा सकता है, जिसमें पूर्णन त्रुटि का कोई एसिम्प्टोटिक संचय नहीं होता है।
कार्यान्वयन
अबेकस, स्लाइड नियम, स्मॉलवुड कैलकुलेटर और कुछ अन्य कैलकुलेटर में दशमलव फ़्लोटिंग पॉइंट के प्रारंभिक यांत्रिक के उपयोग स्पष्ट हैं जो वैज्ञानिक संकेतन में प्रविष्टियों का समर्थन करते हैं। मैकेनिकल कैलकुलेटर की स्थितियों में, घातांक को अधिकांश साइड इनफॉर्मेशन के रूप में माना जाता है जिसे अलग से गणना किया जाता है।
आईबीएम 650 कंप्यूटर ने 1953 में 8-अंकीय दशमलव फ़्लोटिंग-पॉइंट प्रारूप का समर्थन किया था।[1] अन्यथा बाइनरी वांग वी.एस मशीन ने 1977 में 64-बिट दशमलव फ्लोटिंग-पॉइंट प्रारूप का समर्थन किया था।[2] मोटोरोला 68040 प्रोसेसर के लिए फ्लोटिंग-पॉइंट सपोर्ट लाइब्रेरी ने 1990 में 96-बिट दशमलव फ्लोटिंग-पॉइंट स्टोरेज फॉर्मेट प्रदान किया था।[2]
कुछ कंप्यूटर भाषाओं में दशमलव फ़्लोटिंग-पॉइंट अंकगणित का कार्यान्वयन होता है, जिसमें पीएल/आई, C# (प्रोग्रामिंग लैंग्वेज), जावा (प्रोग्रामिंग भाषा) सहित बिगडिसीमल, कैल्क के साथ एमएसीएस और पायथन (प्रोग्रामिंग लैंग्वेज) के दशमलव मॉड्यूल सहित दशमलव फ्लोटिंग-पॉइंट अंकगणित का कार्यान्वयन है।
1987 में, आईईई ने आईईई 854 जारी किया, दशमलव फ़्लोटिंग पॉइंट के साथ कंप्यूटिंग के लिए मानक, जिसमें फ़्लोटिंग-पॉइंट डेटा को अन्य प्रणाली के साथ इंटरचेंज के लिए कैसे एन्कोड किया जाना चाहिए, इसके लिए विनिर्देश का अभाव था। इसे बाद में आईईई 754-2008 में संबोधित किया गया, जिसने दशमलव फ़्लोटिंग-पॉइंट डेटा के एन्कोडिंग को दो अलग-अलग वैकल्पिक तरीकों के साथ मानकीकृत किया।
आईबीएम् पॉवर6 और नए पॉवर प्रोसेसर में हार्डवेयर में डीऍफ़पी सम्मिलित है, जैसा कि आईबीएम् प्रणाली जेड9[3] (और बाद में जेडसीरीज मशीनें) में है। सिलमाइंडस सिलक्स, विन्यास योग्य वेक्टर डीऍफ़पी सहसंसाधक प्रदान करता है।[4] आईईई 754-2008 इसे और अधिक विस्तार से परिभाषित करता है। फुजित्सु में हार्डवेयर में डीऍफ़पी के साथ 64-बिट स्पार्क प्रोसेसर भी हैं।[5][2]
माइक्रोसॉफ्ट सी #, या . नेट, प्रणाली.दशमलव का उपयोग करता है।[6]
आईईई 754-2008 एन्कोडिंग
आईईई 754-2008 मानक 32-, 64- और 128-बिट दशमलव फ़्लोटिंग-पॉइंट प्रस्तुतियों को परिभाषित करता है। बाइनरी फ़्लोटिंग-पॉइंट स्वरूपों के प्रकार, संख्या को चिन्ह, प्रतिपादक और महत्व में विभाजित किया जाता है। बाइनरी फ़्लोटिंग-पॉइंट के विपरीत, संख्याएँ आवश्यक रूप से सामान्यीकृत नहीं होती हैं; कुछ महत्वपूर्ण अंक वाले मानों के कई संभावित प्रतिनिधित्व हैं: 1×102=0.1×103=0.01×104, आदि। जब महत्व शून्य है, तो घातांक का कोई भी मान हो सकता है।
दशमलव32 | दशमलव64 | दशमलव128 | दशमलव (32k) | प्रारूप |
---|---|---|---|---|
1 | 1 | 1 | 1 | साइन फ़ील्ड (बिट्स) |
5 | 5 | 5 | 5 | संयोजन क्षेत्र (बिट्स) |
6 | 8 | 12 | w = 2×k + 4 | प्रतिपादक निरंतरता क्षेत्र (बिट्स) |
20 | 50 | 110 | t = 30×k−10 | गुणांक निरंतरता क्षेत्र (बिट्स) |
32 | 64 | 128 | 32×k | कुल आकार (बिट्स) |
7 | 16 | 34 | p = 3×t/10+1 = 9×k−2 | गुणांक आकार (दशमलव अंक) |
192 | 768 | 12288 | 3×2w = 48×4k | घातांक रेंज |
96 | 384 | 6144 | Emax = 3×2w−1 | अधिकतम मान 9.99...×10Emax है |
−95 | −383 | −6143 | Emin = 1−Emax | न्यूनतम सामान्यीकृत मान 1.00...×10Emin है |
−101 | −398 | −6176 | Etiny = 2−p−Emax | सबसे छोटा शून्येतर मान 1×10Etiny है |
प्रतिपादक श्रेणियों को चुना गया ताकि सामान्यीकृत मानों के लिए उपलब्ध सीमा लगभग सममित हो सके। चूंकि यह संभावित घातांक मानों की समान संख्या के साथ नहीं किया जा सकता है, इसलिए Emax को अतिरिक्त मान दिया गया था।
दो अलग-अलग अभ्यावेदन परिभाषित किए गए हैं:
- एक द्विआधारी पूर्णांक महत्व क्षेत्र के साथ 0 और 10p−1 के बीच बड़े द्विआधारी पूर्णांक के रूप में महत्व को कूटबद्ध करता है। बाइनरी अंकगणितीय तर्क इकाई का उपयोग करके सॉफ्टवेयर कार्यान्वयन के लिए यह अधिक सुविधाजनक होने का भरोसा है।
- 'सघन रूप से भरे किए गए दशमलव महत्व क्षेत्र' के साथ और दशमलव अंकों को अधिक सीधे कूटबद्ध करता है। यह बाइनरी फ्लोटिंग-पॉइंट फॉर्म से और तेजी से रूपांतरण करता है, किन्तु कुशलता से परिवर्तन करने के लिए विशेष हार्डवेयर की आवश्यकता होती है। हार्डवेयर कार्यान्वयन के लिए यह अधिक सुविधाजनक होने का भरोसा है।
दोनों विकल्प प्रतिनिधित्व योग्य मानों की पूर्णतः समान श्रेणी प्रदान करते हैं।
प्रतिपादक के सबसे महत्वपूर्ण दो बिट 0−2 की सीमा तक सीमित हैं, और महत्व के सबसे महत्वपूर्ण 4 बिट 0−9 की सीमा तक सीमित हैं। अनंत और एनएएन के लिए विशेष रूपों के साथ, 30 संभावित संयोजनों को 5-बिट फ़ील्ड में एन्कोड किया गया है।
यदि महत्व के सबसे महत्वपूर्ण 4 बिट 0 और 7 के बीच हैं, तो एन्कोडेड मान निम्नेन सार प्रारंभ होता है:
s 00mmm xxx घातांक 00 से प्रारंभ होता है, जिसका महत्व 0mmm है s 01mmm xxx घातांक 01 से प्रारंभ होता है, जिसका महत्व 0mmm है s 10mmmm xxx घातांक 10 से प्रारंभ होता है, महत्व 0mmm से है
यदि महत्व के अग्रणी 4 बिट बाइनरी 1000 या 1001 (दशमलव 8 या 9) हैं, तो संख्या इस प्रकार प्रारंभ होती है:
s 1100m xxx घातांक 00 से प्रारंभ होता है, जिसका महत्व 100m से है s 1101m xxx घातांक 01 से प्रारंभ होता है, जिसका महत्व 100m से है s 1110m xxx घातांक 10 से प्रारंभ होता है, जिसका महत्व 100m से है
अग्रणी बिट (उपर्युक्त में) साइन बिट है, और निम्नलिखित बिट्स (ऊपर में xxx) अतिरिक्त घातांक बिट्स और शेष सबसे महत्वपूर्ण अंक को एन्कोड करते हैं, किन्तु उपयोग किए गए एन्कोडिंग विकल्प के आधार पर विवरण भिन्न होते हैं।
अंतिम संयोजनों का उपयोग इन्फिनिटी और एनएएन के लिए किया जाता है, और दोनों वैकल्पिक एन्कोडिंग के लिए समान हैं:
एस 11110 x ± अनंत (विस्तारित वास्तविक संख्या रेखा देखें) एस 11111 0 शांत NaN (साइन बिट पर ध्यान नहीं दिया गया) एस 11111 1 सिग्नलिंग NaN (साइन बिट अनदेखा)
बाद के मामलों में, एन्कोडिंग के अन्य सभी बिट्स को अनदेखा कर दिया जाता है। इस प्रकार, सरणी को NaNs में बाइट मान से भरकर प्रारंभ करना संभव है।
बाइनरी पूर्णांक महत्व क्षेत्र
यह प्रारूप 0 से 10 तक बाइनरी महत्व का उपयोग करता हैपी−1. उदाहरण के लिए, दशमलव32 महत्व 10 तक हो सकता है7−1 = 9999999 = कट लाइन16 = 1001100010010110011111112. जबकि एन्कोडिंग बड़े महत्व का प्रतिनिधित्व कर सकता है, वे अवैध हैं और इनपुट पर सामना होने पर मानक को 0 के रूप में व्यवहार करने के लिए कार्यान्वयन की आवश्यकता होती है।
जैसा कि ऊपर बताया गया है, एन्कोडिंग इस बात पर निर्भर करती है कि महत्व के सबसे महत्वपूर्ण 4 बिट्स 0 से 7 (0000) की सीमा में हैं या नहीं2 0111 के लिए2), या उच्चतर (10002 या 10012).
यदि साइन बिट के बाद के 2 बिट 00, 01, या 10 हैं, तो घातांक फ़ील्ड में साइन बिट के बाद 8 बिट होते हैं (उल्लेखित 2 बिट प्लस घातांक निरंतरता क्षेत्र के 6 बिट), और महत्व शेष 23 है बिट्स, अंतर्निहित 0 बिट के साथ, यहाँ कोष्ठकों में दिखाया गया है:
<पूर्व>
s 00eeeeee (0)ttt ttttttttttttttttttttttttttttttttttttttttttttt s 01eeeeee (0)ttt ttttttttttttttttttttttttttttttttttttttttttttt एस 10eeeeee (0)ttt tttttttttttttttttttttttttttttttttttttttttttt
</पूर्व>
इसमें उपसामान्य संख्याएं सम्मिलित हैं जहां प्रमुख महत्व और अंक 0 है।
यदि साइन बिट के बाद 2 बिट्स 11 हैं, तो 8-बिट घातांक फ़ील्ड को 2 बिट्स को दाईं ओर स्थानांतरित कर दिया जाता है (साइन बिट और उसके बाद 11 बिट्स दोनों के बाद), और प्रतिनिधित्व महत्व शेष 21 बिट्स में है। इस स्थितियों में वास्तविक महत्व में 3-बिट अनुक्रम 100 का अंतर्निहित (जो संग्रहीत नहीं है) है:
<पूर्व>
एस 1100eeeeee (100) टी ttttttttttttttttttttttttttttttttttttttttttttt एस 1101eeeeee (100) टी tttttttttt ttttttttttt एस 1110eeeeee (100) टी tttttttttt ttttttttttt
</पूर्व>
साइन बिट के बाद 11 2-बिट अनुक्रम इंगित करता है कि महत्व के लिए अंतर्निहित 100 3-बिट उपसर्ग है।
ध्यान दें कि महत्व क्षेत्र के प्रमुख बिट्स सबसे महत्वपूर्ण दशमलव अंक को एनकोड नहीं करते हैं; वे बस बड़ी शुद्ध-द्विआधारी संख्या का हिस्सा हैं। उदाहरण के लिए, का महत्व 8000000 बाइनरी के रूप में एन्कोड किया गया है 011110100001001000000000अग्रणी 4 बिट्स एन्कोडिंग 7 के साथ; पहला महत्व जिसके लिए 24 बिट की आवश्यकता होती है (और इस प्रकार दूसरा एन्कोडिंग फॉर्म) 2 है23 = 8388608.
उपरोक्त मामलों में, प्रतिनिधित्व मान है:
- (−1)साइन करें × 10घातांक−101 × महत्व
दशमलव64 और दशमलव128 समान रूप से कार्य करते हैं, किन्तु बड़े घातांक निरंतरता और महत्व क्षेत्रों के साथ। दशमलव128 के लिए, दूसरा एन्कोडिंग फॉर्म वास्तव में कभी उपयोग नहीं किया जाता है; 10 का सबसे बड़ा वैध महत्व34−1 = 1ED09BEAD87C0378D8E63FFFFFFFF16 113 बिट्स में प्रदर्शित किया जा सकता है।
घनी पैक दशमलव महत्व क्षेत्र
इस संस्करण में, महत्व को दशमलव अंकों की श्रृंखला के रूप में संग्रहीत किया जाता है। अग्रणी अंक 0 और 9 (3 या 4 बाइनरी बिट्स) के बीच है, और शेष महत्व घनी पैक दशमलव (DPD) एन्कोडिंग का उपयोग करता है।
प्रतिपादक के अग्रणी 2 बिट्स और महत्व के अग्रणी अंक (3 या 4 बिट्स) को पांच बिट्स में जोड़ा जाता है जो साइन बिट का पालन करते हैं। इसके बाद फिक्स्ड-ऑफसेट घातांक कंटीन्यूअस फील्ड आता है।
अंत में, महत्व निरंतरता क्षेत्र 2, 5, या 11 10-बिट डिलेट (कंप्यूटिंग) से बना है, प्रत्येक 3 दशमलव अंकों को कूटबद्ध करता है।[7] <पूर्व>
कंघा। घातांक महत्व एस 00 टीटीटी (00) eeeeee (0TTT) [ttttttttt] [tttttttttt] एस 01 टीटीटी (01) eeeeee (0TTT) [ttttttttt] [tttttttttt] एस 10 टीटीटी (10) eeeeee (0TTT) [ttttttttt] [tttttttttt]
</पूर्व> यदि साइन बिट के बाद पहले दो बिट 11 हैं, तो दूसरे दो बिट घातांक के अग्रणी बिट हैं, और अंतिम बिट को 100 के साथ अग्रणी दशमलव अंक (8 या 9) बनाने के लिए उपसर्ग किया जाता है:
<पूर्व>
कंघा। घातांक महत्व एस 1100 टी (00) eeeeee (100 टी) [ttttttttt] [tttttttttt] एस 1101 टी (01) eeeeee (100T) [ttttttttt] [tttttttttt] एस 1110 टी (10) eeeeee (100T) [ttttttttt] [tttttttttt]
</पूर्व> 5-बिट फ़ील्ड के शेष दो संयोजन (11110 और 11111) क्रमशः ± अनंत और एनएएनs का प्रतिनिधित्व करने के लिए उपयोग किए जाते हैं।
फ़्लोटिंग-पॉइंट अंकगणितीय ऑपरेशन
फ़्लोटिंग-पॉइंट अंकगणित करने का सामान्य नियम यह है कि सटीक गणितीय मान की गणना की जाती है,[8] और फिर परिणाम को निर्दिष्ट सटीकता में निकटतम प्रतिनिधित्व योग्य मान पर गोल किया जाता है। यह वास्तव में सामान्य राउंडिंग व्यवहार के तहत और असाधारण स्थितियों की अनुपस्थिति में आईईईई-अनुपालन कंप्यूटर हार्डवेयर के लिए अनिवार्य व्यवहार है।
प्रस्तुति और समझ में आसानी के लिए, उदाहरणों में 7 अंकों की सटीकता का उपयोग किया जाएगा। मौलिक सिद्धांत किसी भी परिशुद्धता में समान हैं।
जोड़
फ़्लोटिंग-पॉइंट नंबर जोड़ने का सरल तरीका यह है कि पहले उन्हें उसी घातांक के साथ प्रदर्शित किया जाए। नीचे दिए गए उदाहरण में, दूसरी संख्या को 3 अंकों से दाईं ओर स्थानांतरित कर दिया गया है। हम सामान्य जोड़ विधि के साथ आगे बढ़ते हैं:
निम्न उदाहरण दशमलव है, जिसका सीधा अर्थ है कि आधार 10 है।
123456.7 = 1.234567 × 105 101.7654 = 1.017654 × 102 = 0.001017654 × 105
इस प्रकार:
123456.7 + 101.7654 = (1.234567 × 105) + (1.017654 × 102) = (1.234567 × 105) + (0.001017654 × 105) = 105 × (1.234567 + 0.001017654) = 105 × 1.235584654
यह वैज्ञानिक संकेतन में परिवर्तित होने के अलावा और कुछ नहीं है। विस्तार से:
ई = 5; एस = 1.234567 (123456.7) + ई = 2; एस = 1.017654 (101.7654)
ई = 5; एस = 1.234567 + ई = 5; s=0.001017654 (शिफ्टिंग के बाद) -------------------- ई = 5; s=1.235584654 (सही योग: 123558.4654)
यह सही परिणाम है, ऑपरेंड का सटीक योग। इसे 7 अंकों तक गोल किया जाएगा और यदि आवश्यक हो तो सामान्य किया जाएगा। अंतिम परिणाम है:
ई = 5; s=1.235585 (अंतिम योग: 123558.5)
ध्यान दें कि दूसरे ऑपरेंड (654) के निम्न 3 अंक अनिवार्य रूप से खो गए हैं। यह राउंड-ऑफ त्रुटि है। चरम मामलों में, दो गैर-शून्य संख्याओं का योग उनमें से के बराबर हो सकता है:
ई = 5; एस = 1.234567 + ई = -3; एस = 9.876543
ई = 5; एस = 1.234567 + ई = 5; s=0.00000009876543 (शिफ्टिंग के बाद) ---------------------- ई = 5; s=1.23456709876543 (सही योग) ई = 5; s=1.234567 (पूर्णांक/सामान्यीकरण के बाद)
महत्व के नुकसान की और समस्या तब होती है जब दो लगभग समान संख्याओं के सन्निकटन को घटाया जाता है। निम्नलिखित उदाहरण में ई = 5; एस = 1.234571 और ई = 5; s=1.234567 परिमेय 123457.1467 और 123456.659 के अनुमान हैं।
ई = 5; एस = 1.234571 - ई = 5; एस = 1.234567 ---------------- ई = 5; एस = 0.000004 ई = -1; s=4.000000 (राउंडिंग और सामान्यीकरण के बाद)
फ़्लोटिंग-पॉइंट अंतर की गणना पूर्णतः इसलिए की जाती है क्योंकि संख्याएँ करीब होती हैं- डाई बेंज लेम्मा इसकी गारंटी देता है, यहां तक कि अंडरफ़्लो की स्थितियों में भी जब क्रमिक अंडरफ़्लो समर्थित होता है। इसके बावजूद, मूल संख्याओं का अंतर e=−1 है; s = 4.877000, जो अंतर e = −1 से 20% से अधिक भिन्न है; s= 4.000000 सन्निकटन। चरम मामलों में, सटीकता के सभी महत्वपूर्ण अंक खो सकते हैं।[9][10]यह आपत्तिजनक निरस्तीकरण यह मानने के खतरे को दर्शाता है कि गणना किए गए परिणाम के सभी अंक अर्थपूर्ण हैं। इन त्रुटियों के परिणामों से निपटना संख्यात्मक विश्लेषण का विषय है; #सटीकता की समस्याएं भी देखें।
गुणा
गुणा करने के लिए, महत्व को गुणा किया जाता है, जबकि घातांक जोड़े जाते हैं, और परिणाम को गोल और सामान्यीकृत किया जाता है।
ई = 3; एस = 4.734612 × ई = 5; एस = 5.417242 -------------------------------------- ई = 8; s=25.648538980104 (वास्तविक गुणनफल) ई = 8; s=25.64854 (पूर्ण करने के बाद) ई = 9; एस = 2.564854 (सामान्यीकरण के बाद)
विभाजन इसी प्रकार किया जाता है, किन्तु वह अधिक जटिल है।
गुणन या विभाजन के साथ रद्दीकरण या अवशोषण की कोई समस्या नहीं है, चूंकि छोटी त्रुटियां जमा हो सकती हैं क्योंकि संचालन बार-बार किया जाता है। व्यवहार में, जिस प्रकार से डिजिटल लॉजिक में ये ऑपरेशन किए जाते हैं वह काफी जटिल हो सकता है।
यह भी देखें
- बाइनरी-कोडित दशमलव (बीसीडी)
संदर्भ
- ↑ Beebe, Nelson H. F. (2017-08-22). "Chapter H. Historical floating-point architectures". The Mathematical-Function Computation Handbook - Programming Using the MathCW Portable Software Library (1 ed.). Salt Lake City, UT, USA: Springer International Publishing AG. p. 948. doi:10.1007/978-3-319-64110-2. ISBN 978-3-319-64109-6. LCCN 2017947446.
- ↑ 2.0 2.1 2.2 Savard, John J. G. (2018) [2007]. "The Decimal Floating-Point Standard". quadibloc. Archived from the original on 2018-07-03. Retrieved 2018-07-16.
- ↑ "IBM z9 EC and z9 BC — Delivering greater value for everyone" (PDF). 306.ibm.com. Retrieved 7 July 2018.
- ↑ "Arithmetic IPs for Financial Applications - SilMinds". Silminds.com.
- ↑ "Chapter 4. Data Formats". Sparc64 X/X+ Specification. Nakahara-ku, Kawasaki, Japan. January 2015. p. 13.
{{cite book}}
: CS1 maint: location missing publisher (link) - ↑ "Decimal floating point in .NET". Yoda.arachsys.com.
- ↑ Muller, Jean-Michel; Brisebarre, Nicolas; de Dinechin, Florent; Jeannerod, Claude-Pierre; Lefèvre, Vincent; Melquiond, Guillaume; Revol, Nathalie; Stehlé, Damien; Torres, Serge (2010). फ़्लोटिंग-प्वाइंट अंकगणित की पुस्तिका (1 ed.). Birkhäuser. doi:10.1007/978-0-8176-4705-6. ISBN 978-0-8176-4704-9. LCCN 2009939668.</रेफरी> यदि साइन बिट के बाद के पहले दो बिट 00 , 01 , या 10 हैं, तो वे एक्सपोनेंट के अग्रणी बिट हैं, और उसके बाद के तीन बिट्स को अग्रणी दशमलव अंक (0 से 7) के रूप में समझा जाता है: रेफरी>दशमलव एन्कोडिंग विशिष्टता, संस्करण 1.00, आईबीएम से
- ↑ Computer hardware doesn't necessarily compute the exact value; it simply has to produce the equivalent rounded result as though it had computed the infinitely precise result.
- ↑ Goldberg, David (March 1991). "What Every Computer Scientist Should Know About Floating-Point Arithmetic" (PDF). ACM Computing Surveys. 23 (1): 5–48. doi:10.1145/103162.103163. S2CID 222008826. Retrieved 2016-01-20. ([1], [2], [3])
- ↑ US patent 3037701A, Huberto M Sierra, "Floating decimal point arithmetic control means for calculator", issued 1962-06-05
आगे की पढाई
- Decimal Floating-Point: Algorism for Computers, Proceedings of the 16th IEEE Symposium on Computer Arithmetic (Cowlishaw, Mike F., 2003)