दशमलव चल बिन्दु: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(16 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Short description|Decimal representation of real numbers in computing}}
{{Short description|Decimal representation of real numbers in computing}}{{Computer architecture bit widths}}
'''दशमलव चल-बिन्दु (डीऍफ़पी)''' अंकगणित दशमलव डेटा प्रकार चल-बिन्दु संख्याओं पर प्रतिनिधित्व और संचालन दोनों को संदर्भित करता है। दशमलव (आधार-10) अंशों के साथ सीधे कार्य करने से राउंडिंग त्रुटियों से बचा जा सकता है जो सामान्यतः दशमलव अंशों (मानव-प्रविष्ट डेटा में सामान्य, जैसे माप या वित्तीय जानकारी) और बाइनरी (आधार-2) अंशों के बीच परिवर्तित करते समय होती हैं।


{{floating-point}}
दशमलव फिक्स्ड-बिन्दु और पूर्णांक प्रतिनिधित्व पर दशमलव चल-बिन्दु प्रतिनिधित्व का लाभ यह है कि यह मानों की विस्तृत श्रृंखला का समर्थन करता है। उदाहरण के लिए, जबकि 8 दशमलव अंक और 2 दशमलव स्थान आवंटित करने वाला निश्चित-बिंदु प्रतिनिधित्व संख्या 123456.78, 8765.43, 123.00, का प्रतिनिधित्व कर सकता है, और इसी प्रकार 8 दशमलव अंकों के साथ चल-बिन्दु प्रतिनिधित्व 1.2345678, 1234567.8, 0.000012345678, 12345678000000000, और इसी प्रकार का प्रतिनिधित्व कर सकता है। यह व्यापक रेंज क्रमिक गणनाओं के समय राउंडिंग त्रुटियों के संचय को बनावटी रूप से धीमा कर सकती है; उदाहरण के लिए, कहन योग एल्गोरिथम का उपयोग चल बिन्दु में कई संख्याओं को जोड़ने के लिए किया जा सकता है, जिसमें पूर्णन त्रुटि का कोई एसिम्प्टोटिक संचय नहीं होता है।
{{Computer architecture bit widths}}
== कार्यान्वयन ==
दशमलव [[तैरनेवाला स्थल]] (DFP) अंकगणित [[दशमलव डेटा प्रकार]] फ़्लोटिंग-पॉइंट नंबरों पर एक प्रतिनिधित्व और संचालन दोनों को संदर्भित करता है। दशमलव (आधार-10) अंशों के साथ सीधे काम करने से राउंडिंग त्रुटियों से बचा जा सकता है जो आमतौर पर दशमलव अंशों (मानव-प्रविष्ट डेटा में सामान्य, जैसे माप या वित्तीय जानकारी) और बाइनरी (आधार-2) अंशों के बीच परिवर्तित करते समय होती हैं।
अबेकस, स्लाइड नियम, स्मॉलवुड कैलकुलेटर और कुछ अन्य कैलकुलेटर में दशमलव चल बिन्दु के  प्रारंभिक यांत्रिक के उपयोग स्पष्ट हैं जो [[वैज्ञानिक संकेतन]] में प्रविष्टियों का समर्थन करते हैं। मैकेनिकल कैलकुलेटर की स्थितियों में, घातांक को अधिकांश साइड इनफॉर्मेशन के रूप में माना जाता है जिसे अलग से गणना किया जाता है।


दशमलव [[फिक्स्ड-पॉइंट अंकगणित]] पर दशमलव फ़्लोटिंग-पॉइंट प्रतिनिधित्व का लाभ | फिक्स्ड-पॉइंट और इंटेगर (कंप्यूटर साइंस) प्रतिनिधित्व यह है कि यह मूल्यों की एक व्यापक श्रेणी का समर्थन करता है। उदाहरण के लिए, जबकि 8 दशमलव अंक और 2 दशमलव स्थान आवंटित करने वाला एक निश्चित-बिंदु प्रतिनिधित्व 123456.78, 8765.43, 123.00, और इसी तरह संख्या का प्रतिनिधित्व कर सकता है, 8 दशमलव अंकों के साथ एक फ़्लोटिंग-पॉइंट प्रतिनिधित्व भी 1.2345678, 1234567.8, 0.000012345678 का प्रतिनिधित्व कर सकता है। 12345678000000000, और इसी तरह। यह व्यापक रेंज क्रमिक गणनाओं के दौरान राउंडिंग त्रुटियों के संचय को नाटकीय रूप से धीमा कर सकती है; उदाहरण के लिए, [[कहान योग एल्गोरिथम]] का उपयोग फ़्लोटिंग पॉइंट में कई संख्याओं को जोड़ने के लिए किया जा सकता है, जिसमें राउंडिंग एरर का कोई एसिम्प्टोटिक संचय नहीं होता है।
[[आईबीएम 650]] कंप्यूटर ने 1953 में 8-अंकीय दशमलव चल-बिन्दु प्रारूप का समर्थन किया था।<ref name="Beebe_2017"/> अन्यथा बाइनरी [[वांग वी.एस]] मशीन ने 1977 में 64-बिट दशमलव फ्लोटिंग-बिन्दु प्रारूप का समर्थन किया था।<ref name="Savard_2018"/> [[मोटोरोला 68040]] प्रोसेसर के लिए फ्लोटिंग-बिन्दु सपोर्ट लाइब्रेरी ने 1990 में 96-बिट दशमलव फ्लोटिंग-बिन्दु स्टोरेज फॉर्मेट प्रदान किया था।<ref name="Savard_2018"/>


== कार्यान्वयन ==
कुछ [[कंप्यूटर भाषा|कंप्यूटर भाषाओं]] में दशमलव चल-बिन्दु अंकगणित का कार्यान्वयन होता है, जिसमें पीएल/आई, C# (प्रोग्रामिंग लैंग्वेज), [[जावा (प्रोग्रामिंग भाषा)]] सहित बिगडिसीमल, कैल्क के साथ एमएसीएस और पायथन (प्रोग्रामिंग लैंग्वेज) के दशमलव मॉड्यूल सहित दशमलव फ्लोटिंग-बिन्दु अंकगणित का कार्यान्वयन है।
[[अबेकस]], [[स्लाइड नियम]], स्मॉलवुड [[कैलकुलेटर]] और कुछ अन्य कैलकुलेटर जो [[वैज्ञानिक संकेतन]] में प्रविष्टियों का समर्थन करते हैं, में दशमलव फ़्लोटिंग पॉइंट के प्रारंभिक यांत्रिक उपयोग स्पष्ट हैं। मैकेनिकल कैलकुलेटर के मामले में, एक्सपोनेंट को अक्सर साइड इनफॉर्मेशन के रूप में माना जाता है जिसे अलग से हिसाब किया जाता है।


[[आईबीएम 650]] कंप्यूटर ने 1953 में 8-अंकीय दशमलव फ़्लोटिंग-पॉइंट प्रारूप का समर्थन किया।<ref name="Beebe_2017"/>अन्यथा बाइनरी [[वांग वी.एस]] मशीन ने 1977 में 64-बिट दशमलव फ्लोटिंग-पॉइंट प्रारूप का समर्थन किया।<ref name="Savard_2018"/>[[मोटोरोला 68040]] प्रोसेसर के लिए फ्लोटिंग-पॉइंट सपोर्ट लाइब्रेरी ने 1990 में 96-बिट दशमलव फ्लोटिंग-पॉइंट स्टोरेज फॉर्मेट प्रदान किया।<ref name="Savard_2018"/>
1987 में, [[IEEE|आईईई]] ने [[IEEE 854|आईईई 854]] जारी किया, दशमलव चल बिन्दु के साथ कंप्यूटिंग के लिए मानक, जिसमें चल-बिन्दु डेटा को अन्य प्रणाली के साथ इंटरचेंज के लिए कैसे एन्कोड किया जाना चाहिए, इसके लिए विनिर्देश का अभाव था। इसे बाद में [[IEEE 754-2008|आईईई 754-2008]] में संबोधित किया गया, जिसने दशमलव चल-बिन्दु डेटा के एन्कोडिंग को दो अलग-अलग वैकल्पिक विधियों के साथ मानकीकृत किया।


कुछ [[कंप्यूटर भाषा]]ओं में पीएल/आई, सी शार्प (प्रोग्रामिंग लैंग्वेज) | सी #, [[जावा (प्रोग्रामिंग भाषा)]] सहित बिगडिसीमल, कैल्क के साथ एमएसीएस और पायथन (प्रोग्रामिंग लैंग्वेज) के दशमलव मॉड्यूल सहित दशमलव फ्लोटिंग-पॉइंट अंकगणित का कार्यान्वयन है।
आईबीएम् [[POWER6|पॉवर6]] और नए पॉवर प्रोसेसर में हार्डवेयर में डीऍफ़पी सम्मिलित है, जैसा कि [[IBM System z9|आईबीएम् प्रणाली जेड9]]<ref>{{cite web |url=http://www-306.ibm.com/common/ssi/rep_ca/0/897/ENUS107-190/ENUS107190.PDF |title=IBM z9 EC and z9 BC — Delivering greater value for everyone |website=306.ibm.com |access-date=7 July 2018}}</ref> (और बाद में जेडसीरीज मशीनें) में है। सिलमाइंडस सिलक्स, विन्यास योग्य वेक्टर डीऍफ़पी सहसंसाधक प्रदान करता है।<ref>{{cite web |url=http://www.silminds.com/decimal-products/accelerator-cards/76 |title=Arithmetic IPs for Financial Applications - SilMinds |website=Silminds.com}}</ref> आईईई 754-2008 इसे और अधिक विस्तार से परिभाषित करता है। [[Fujitsu|फुजित्सु]] में हार्डवेयर में डीऍफ़पी के साथ 64-बिट [[स्पार्क]] प्रोसेसर भी हैं।<ref name="Fujitsu_2015" /><ref name="Savard_2018" />
1987 में, [[IEEE]] ने [[IEEE 854]] जारी किया, दशमलव फ़्लोटिंग पॉइंट के साथ कंप्यूटिंग के लिए एक मानक, जिसमें फ़्लोटिंग-पॉइंट डेटा को अन्य सिस्टम के साथ इंटरचेंज के लिए कैसे एन्कोड किया जाना चाहिए, इसके लिए एक विनिर्देश का अभाव था। इसे बाद में [[IEEE 754-2008]] में संबोधित किया गया, जिसने दशमलव फ़्लोटिंग-पॉइंट डेटा के एन्कोडिंग को मानकीकृत किया, हालांकि दो अलग-अलग वैकल्पिक तरीकों के साथ।


IBM [[POWER6]] और नए POWER प्रोसेसर में हार्डवेयर में DFP शामिल है, जैसा कि [[IBM System z9]] में है<ref>{{cite web |url=http://www-306.ibm.com/common/ssi/rep_ca/0/897/ENUS107-190/ENUS107190.PDF |title=IBM z9 EC and z9 BC — Delivering greater value for everyone |website=306.ibm.com |access-date=7 July 2018}}</ref> (और बाद में zSeries मशीनें)। SilMinds SilAx, एक विन्यास योग्य वेक्टर DFP सहसंसाधक प्रदान करता है।<ref>{{cite web |url=http://www.silminds.com/decimal-products/accelerator-cards/76 |title=Arithmetic IPs for Financial Applications - SilMinds |website=Silminds.com}}</ref> IEEE 754-2008 इसे और अधिक विस्तार से परिभाषित करता है। [[Fujitsu]] में हार्डवेयर में DFP के साथ 64-बिट [[स्पार्क]] प्रोसेसर भी हैं।<ref name="Fujitsu_2015"/><ref name="Savard_2018"/>
माइक्रोसॉफ्ट सी #, या . नेट, प्रणाली.दशमलव का उपयोग करता है।<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 एन्कोडिंग ==


Microsoft C#, या .NET Framework|.NET, System.Decimal का उपयोग करता है।<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 मानक 32-, 64- और 128-बिट दशमलव चल-बिन्दु प्रस्तुतियों को परिभाषित करता है। बाइनरी चल-बिन्दु स्वरूपों के प्रकार, संख्या को चिन्ह, प्रतिपादक और [[महत्व]] में विभाजित किया जाता है। बाइनरी चल-बिन्दु के विपरीत, संख्याएँ आवश्यक रूप से सामान्यीकृत नहीं होती हैं; कुछ [[महत्वपूर्ण अंक]] वाले मानों के कई संभावित प्रतिनिधित्व हैं: 1×10<sup>2</sup>=0.1×10<sup>3</sup>=0.01×10<sup>4</sup>, आदि। जब महत्व शून्य है, तो घातांक का कोई भी मान हो सकता है।
== आईईईई 754-2008 एन्कोडिंग ==
IEEE 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"
{| class="wikitable" style="text-align:center"
|+IEEE 754-2008 decimal floating-point formats
|+आईईई 754-2008 दशमलव चल-बिन्दु प्रारूप
! [[decimal32 floating-point format|decimal32]] !! [[decimal64 floating-point format|decimal64]] !! [[decimal128 floating-point format|decimal128]] !! decimal(32''k'') !!align=left| Format
! दशमलव32 !! दशमलव64 !! दशमलव128 !! दशमलव (32k) !! align="left" |प्रारूप
|-
|-
| 1 || 1 || 1 || 1
| 1 || 1 || 1 || 1
! Sign field (bits)
!साइन फ़ील्ड (बिट्स)
|-
|-
| 5 || 5 || 5 || 5
| 5 || 5 || 5 || 5
! Combination field (bits)
!संयोजन क्षेत्र (बिट्स)
|-
|-
| 6 || 8 || 12 || ''w'' = 2×''k'' + 4
| 6 || 8 || 12 || ''w'' = 2×''k'' + 4
! Exponent continuation field (bits)
!प्रतिपादक निरंतरता क्षेत्र (बिट्स)
|-
|-
| 20 || 50 || 110 || ''t'' = 30×''k''−10
| 20 || 50 || 110 || ''t'' = 30×''k''−10
! Coefficient continuation field (bits)
!गुणांक निरंतरता क्षेत्र (बिट्स)
|-
|-
| 32 || 64 || 128 || 32×''k''
| 32 || 64 || 128 || 32×''k''
! Total size (bits)
!कुल आकार (बिट्स)
|-
|-
| 7 || 16 || 34 || ''p'' = 3×''t''/10+1 = 9×''k''−2
| 7 || 16 || 34 || ''p'' = 3×''t''/10+1 = 9×''k''−2
! Coefficient size (decimal digits)
!गुणांक आकार (दशमलव अंक)
|-
|-
| 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>
! Exponent range
!घातांक रेंज
|-
|-
| 96 || 384 || 6144 || Emax = 3×2<sup>''w''−1</sup>
| 96 || 384 || 6144 || Emax = 3×2<sup>''w''−1</sup>
! Largest value is 9.99...×10<sup>Emax</sup>
! अधिकतम मान 9.99...×10<sup>Emax</sup> है
|-
|-
| −95 || −383 || −6143 || Emin = 1−Emax
| −95 || −383 || −6143 || Emin = 1−Emax
! Smallest normalized value is 1.00...×10<sup>Emin</sup>
! न्यूनतम सामान्यीकृत मान 1.00...×10<sup>Emin</sup> है
|-
|-
| −101 || −398 || −6176 || Etiny = 2−p−Emax
| −101 || −398 || −6176 || Etiny = 2−p−Emax
! Smallest non-zero value is 1×10<sup>Etiny</sup>
! सबसे छोटा शून्येतर मान 1×10<sup>Etiny</sup> है
|}
|}
प्रतिपादक श्रेणियों को चुना गया ताकि सामान्यीकृत मानों के लिए उपलब्ध सीमा लगभग सममित हो। चूंकि यह संभावित एक्सपोनेंट मानों की एक समान संख्या के साथ नहीं किया जा सकता है, अतिरिक्त मान Emax को दिया गया था।
प्रतिपादक श्रेणियों को चुना गया जिससे सामान्यीकृत मानों के लिए उपलब्ध सीमा लगभग सममित हो सके। चूंकि यह संभावित घातांक मानों की समान संख्या के साथ नहीं किया जा सकता है, इसलिए Emax को अतिरिक्त मान दिया गया था।


दो अलग-अलग अभ्यावेदन परिभाषित किए गए हैं:
दो अलग-अलग अभ्यावेदन परिभाषित किए गए हैं:
* एक द्विआधारी पूर्णांक महत्व क्षेत्र के साथ 0 और 10 के बीच एक बड़े द्विआधारी पूर्णांक के रूप में महत्व को कूटबद्ध करता है<sup>पी</sup>−1. बाइनरी [[अंकगणितीय तर्क इकाई]] का उपयोग करके सॉफ्टवेयर कार्यान्वयन के लिए यह अधिक सुविधाजनक होने की उम्मीद है।
* एक द्विआधारी पूर्णांक महत्व क्षेत्र के साथ 0 और 10<sup>''p''</sup>−1 के बीच बड़े द्विआधारी पूर्णांक के रूप में महत्व को कूटबद्ध करता है। बाइनरी [[अंकगणितीय तर्क इकाई]] का उपयोग करके सॉफ्टवेयर कार्यान्वयन के लिए यह अधिक सुविधाजनक होने का विश्वाश है।
* 'सघन रूप से पैक किए गए दशमलव महत्व क्षेत्र' के साथ एक और दशमलव अंकों को अधिक सीधे एन्कोड करता है। यह बाइनरी फ्लोटिंग-पॉइंट फॉर्म से और तेजी से रूपांतरण करता है, लेकिन कुशलता से हेरफेर करने के लिए विशेष हार्डवेयर की आवश्यकता होती है। हार्डवेयर कार्यान्वयन के लिए यह अधिक सुविधाजनक होने की उम्मीद है।
* 'सघन रूप से भरे किए गए दशमलव महत्व क्षेत्र' के साथ और दशमलव अंकों को अधिक सीधे कूटबद्ध करता है। यह बाइनरी फ्लोटिंग-बिन्दु फॉर्म से और तेजी से रूपांतरण करता है, किन्तु कुशलता से परिवर्तन करने के लिए विशेष हार्डवेयर की आवश्यकता होती है। हार्डवेयर कार्यान्वयन के लिए यह अधिक सुविधाजनक होने का विश्वाश है।


दोनों विकल्प प्रतिनिधित्व योग्य मूल्यों की बिल्कुल समान श्रेणी प्रदान करते हैं।
दोनों विकल्प प्रतिनिधित्व योग्य मानों की पूर्णतः समान श्रेणी प्रदान करते हैं।


प्रतिपादक के सबसे महत्वपूर्ण दो बिट 0−2 की सीमा तक सीमित हैं, और महत्व के सबसे महत्वपूर्ण 4 बिट 0−9 की सीमा तक सीमित हैं। अनंत और NaN के लिए विशेष रूपों के साथ, 30 संभावित संयोजनों को 5-बिट फ़ील्ड में एन्कोड किया गया है।
प्रतिपादक के सबसे महत्वपूर्ण दो बिट 0−2 की सीमा तक सीमित हैं, और महत्व के सबसे महत्वपूर्ण 4 बिट 0−9 की सीमा तक सीमित हैं। अनंत और एनएएन के लिए विशेष रूपों के साथ, 30 संभावित संयोजनों को 5-बिट फ़ील्ड में एन्कोड किया गया है।


यदि महत्व के सबसे महत्वपूर्ण 4 बिट 0 और 7 के बीच हैं, तो एन्कोडेड मान निम्[[नेन]]ुसार शुरू होता है:
यदि महत्व के सबसे महत्वपूर्ण 4 बिट 0 और 7 के बीच हैं, तो एन्कोडेड मान निम्[[नेन]] सार प्रारंभ होता है:<syntaxhighlight lang="d">
s 00mmm xxx  Exponent begins with 00, significand with 0mmm
s 01mmm xxx  Exponent begins with 01, significand with 0mmm
s 10mmm xxx  Exponent begins with 10, significand with 0mmm
</syntaxhighlight>यदि महत्व के अग्रणी 4 बिट बाइनरी 1000 या 1001 (दशमलव 8 या 9) हैं, तो संख्या इस प्रकार प्रारंभ होती है:<syntaxhighlight lang="d">
s 1100m xxx  Exponent begins with 00, significand with 100m
s 1101m xxx  Exponent begins with 01, significand with 100m
s 1110m xxx  Exponent begins with 10, significand with 100m
</syntaxhighlight>अग्रणी बिट (उपर्युक्त में) साइन बिट है, और निम्नलिखित बिट्स (ऊपर में xxx) अतिरिक्त घातांक बिट्स और शेष सबसे महत्वपूर्ण अंक को एन्कोड करते हैं, किन्तु उपयोग किए गए एन्कोडिंग विकल्प के आधार पर विवरण भिन्न होते हैं।


s 00mmm xxx घातांक 00 से शुरू होता है, जिसका महत्व 0mmm है
अंतिम संयोजनों का उपयोग इन्फिनिटी और एनएएन के लिए किया जाता है, और दोनों वैकल्पिक एन्कोडिंग के लिए समान हैं:<syntaxhighlight lang="d">
s 01mmm xxx घातांक 01 से शुरू होता है, जिसका महत्व 0mmm है
s 11110 x   ±Infinity (see Extended real number line)
s 10mmmm xxx घातांक 10 से शुरू होता है, महत्व 0mmm से
s 11111 0   quiet NaN (sign bit ignored)
 
s 11111 1   signaling NaN (sign bit ignored)
यदि महत्व के अग्रणी 4 बिट बाइनरी 1000 या 1001 (दशमलव 8 या 9) हैं, तो संख्या इस प्रकार शुरू होती है:
</syntaxhighlight>बाद के मामलों में, एन्कोडिंग के अन्य सभी बिट्स को उपेक्षित कर दिया जाता है। इस प्रकार एक बाइट मान के साथ भरकर एक सरणी को NaNs में प्रारंभ करना संभव है।
 
s 1100m xxx घातांक 00 से शुरू होता है, जिसका महत्व 100m से है
s 1101m xxx घातांक 01 से शुरू होता है, जिसका महत्व 100m से है
s 1110m xxx घातांक 10 से शुरू होता है, जिसका महत्व 100m से है
 
अग्रणी बिट (उपर्युक्त में) एक साइन बिट है, और निम्नलिखित बिट्स (ऊपर में xxx) अतिरिक्त एक्सपोनेंट बिट्स और शेष सबसे महत्वपूर्ण अंक को एन्कोड करते हैं, लेकिन उपयोग किए गए एन्कोडिंग विकल्प के आधार पर विवरण भिन्न होते हैं।
 
अंतिम संयोजनों का उपयोग इन्फिनिटी और NaN के लिए किया जाता है, और दोनों वैकल्पिक एन्कोडिंग के लिए समान हैं:
 
एस 11110 x ± अनंत ([[विस्तारित वास्तविक संख्या रेखा]] देखें)
एस 11111 0 शांत NaN (साइन बिट पर ध्यान नहीं दिया गया)
एस 11111 1 सिग्नलिंग NaN (साइन बिट अनदेखा)
 
बाद के मामलों में, एन्कोडिंग के अन्य सभी बिट्स को अनदेखा कर दिया जाता है। इस प्रकार, एक सरणी को NaNs में एक बाइट मान से भरकर प्रारंभ करना संभव है।


=== बाइनरी पूर्णांक महत्व क्षेत्र ===
=== बाइनरी पूर्णांक महत्व क्षेत्र ===
यह प्रारूप 0 से 10 तक बाइनरी महत्व का उपयोग करता है<sup>पी</sup>−1. उदाहरण के लिए, दशमलव32 महत्व 10 तक हो सकता है<sup>7</sup>−1 = {{gaps|9|999|999}} = कट लाइन<sub>16</sub> = {{gaps|1001|1000100101|1001111111<sub>2</sub>}}. जबकि एन्कोडिंग बड़े महत्व का प्रतिनिधित्व कर सकता है, वे अवैध हैं और इनपुट पर सामना होने पर मानक को 0 के रूप में व्यवहार करने के लिए कार्यान्वयन की आवश्यकता होती है।
यह प्रारूप 0 से 10<sup>p</sup>−1 तक बाइनरी महत्व का उपयोग करता है. उदाहरण के लिए, दशमलव32 महत्व 10<sup>7</sup>−1 = {{gaps|9|999|999}} = 98967F<sub>16</sub> = {{gaps|1001|1000100101|1001111111<sub>2</sub>}} तक हो सकता है। जबकि एन्कोडिंग बड़े महत्व का प्रतिनिधित्व कर सकता है, वे अवैध हैं और इनपुट पर सामना होने पर मानक को 0 के रूप में व्यवहार करने के लिए कार्यान्वयन की आवश्यकता होती है।
 
जैसा कि ऊपर बताया गया है, एन्कोडिंग इस बात पर निर्भर करती है कि महत्व के सबसे महत्वपूर्ण 4 बिट्स 0 से 7 (0000) की सीमा में हैं या नहीं<sub>2</sub> 0111 के लिए<sub>2</sub>), या उच्चतर (1000<sub>2</sub> या 1001<sub>2</sub>).
 
यदि साइन बिट के बाद के 2 बिट 00, 01, या 10 हैं, तो घातांक फ़ील्ड में साइन बिट के बाद 8 बिट होते हैं (उल्लेखित 2 बिट प्लस घातांक निरंतरता क्षेत्र के 6 बिट), और महत्व शेष 23 है बिट्स, एक अंतर्निहित 0 बिट के साथ, यहाँ कोष्ठकों में दिखाया गया है:


<पूर्व>
जैसा कि ऊपर बताया गया है, एन्कोडिंग इस बात पर निर्भर करती है कि महत्व के सबसे महत्वपूर्ण 4 बिट्स 0 से 7 (0000<sub>2</sub> से 0111<sub>2</sub>), या उच्चतर (1000<sub>2</sub> या 1001<sub>2</sub>) की सीमा में हैं।
s 00eeeeee (0)ttt ttttttttttttttttttttttttttttttttttttttttttttt
s 01eeeeee (0)ttt ttttttttttttttttttttttttttttttttttttttttttttt
एस 10eeeeee (0)ttt tttttttttttttttttttttttttttttttttttttttttttt
</पूर्व>


इसमें उपसामान्य संख्याएं शामिल हैं जहां प्रमुख महत्व और अंक 0 है।
यदि साइन बिट के बाद के 2 बिट्स 00, 01, या 10 हैं, तो घातांक फ़ील्ड में साइन बिट के बाद 8 बिट्स होते हैं (2 बिट्स का उल्लेख किया गया है और "घातांक  निरंतरता क्षेत्र" के 6 बिट्स), और महत्व शेष 23 है बिट्स हैं, जिसमे अंतर्निहित अग्रणी 0 बिट है, जो यहां कोष्ठकों में दिखाया गया है:<syntaxhighlight lang="d">
s 00eeeeee  (0)ttt tttttttttt tttttttttt
s 01eeeeee  (0)ttt tttttttttt tttttttttt
s 10eeeeee  (0)ttt tttttttttt tttttttttt
</syntaxhighlight>इसमें उपसामान्य संख्याएं सम्मिलित हैं जहां प्रमुख महत्व और अंक 0 है।


यदि साइन बिट के बाद 2 बिट्स 11 हैं, तो 8-बिट एक्सपोनेंट फ़ील्ड को 2 बिट्स को दाईं ओर स्थानांतरित कर दिया जाता है (साइन बिट और उसके बाद 11 बिट्स दोनों के बाद), और प्रतिनिधित्व महत्व शेष 21 बिट्स में है। इस मामले में वास्तविक महत्व में 3-बिट अनुक्रम 100 का एक अंतर्निहित (जो संग्रहीत नहीं है) है:
यदि साइन बिट के बाद 2 बिट्स 11 हैं, तो 8-बिट घातांक फ़ील्ड को 2 बिट्स को दाईं ओर स्थानांतरित कर दिया जाता है (साइन बिट और उसके बाद 11 बिट्स दोनों के बाद), और प्रतिनिधित्व महत्व शेष 21 बिट्स में है। इस स्थितियों में वास्तविक महत्व में 3-बिट अनुक्रम 100 का अंतर्निहित (जो संग्रहीत नहीं है) है:<syntaxhighlight lang="d">
s 1100eeeeee (100)t tttttttttt tttttttttt
s 1101eeeeee (100)t tttttttttt tttttttttt
s 1110eeeeee (100)t tttttttttt tttttttttt
</syntaxhighlight>साइन बिट के बाद 11 2-बिट अनुक्रम निरुपित करता है कि महत्व के लिए अंतर्निहित 100 3-बिट उपसर्ग है।


<पूर्व>
ध्यान दें कि महत्व क्षेत्र के प्रमुख बिट्स सबसे महत्वपूर्ण दशमलव अंक को एनकोड नहीं करते हैं; वे बस बड़ी शुद्ध-द्विआधारी संख्या का भाग हैं। उदाहरण के लिए, {{gaps|8|000|000}} के महत्व को बाइनरी {{gaps|0111|1010000100|1000000000}} के रूप में एन्कोड किया गया है जिसमे अग्रणी 4 बिट्स एन्कोडिंग 7 के साथ हैं; पहला महत्व जिसके लिए 24 बिट की आवश्यकता होती है (और इस प्रकार दूसरा एन्कोडिंग फॉर्म) वह 2<sup>23</sup> = {{gaps|8|388|608}} है.
एस 1100eeeeee (100) टी ttttttttttttttttttttttttttttttttttttttttttttt
एस 1101eeeeee (100) टी tttttttttt ttttttttttt
एस 1110eeeeee (100) टी tttttttttt ttttttttttt
</पूर्व>


साइन बिट के बाद 11 2-बिट अनुक्रम इंगित करता है कि महत्व के लिए एक अंतर्निहित 100 3-बिट उपसर्ग है।
उपरोक्त मामलों में, प्रतिनिधित्व मान है:


ध्यान दें कि महत्व क्षेत्र के प्रमुख बिट्स सबसे महत्वपूर्ण दशमलव अंक को एनकोड नहीं करते हैं; वे बस एक बड़ी शुद्ध-द्विआधारी संख्या का हिस्सा हैं। उदाहरण के लिए, का महत्व {{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> × महत्व
 
दशमलव64 और दशमलव128 बड़े एक्सपोनेंट निरंतरता और महत्वपूर्ण क्षेत्रों के साथ समान रूप से संचालित होते हैं। दशमलव128 के लिए, दूसरा एन्कोडिंग फॉर्म वास्तव में कभी 10<sup>34</sup>−1 = 1ED09BEAD87C0378D8E63FFFFFFFF<sub>16</sub> का सबसे बड़ा वैध महत्व113 बिट्स में प्रदर्शित किया जा सकता है।
उपरोक्त मामलों में, प्रतिनिधित्व मूल्य है:
 
: (−1)<sup>साइन करें</sup> × 10<sup>घातांक−101</sup> × महत्व <!-- Remember, significand is defined as an integer: 0 <= significand < 10^8 -->
दशमलव64 और दशमलव128 समान रूप से कार्य करते हैं, लेकिन बड़े घातांक निरंतरता और महत्व क्षेत्रों के साथ। Decimal128 के लिए, दूसरा एन्कोडिंग फॉर्म वास्तव में कभी उपयोग नहीं किया जाता है; 10 का सबसे बड़ा वैध महत्व<sup>34</sup>−1 = 1ED09BEAD87C0378D8E63FFFFFFFF<sub>16</sub> 113 बिट्स में प्रदर्शित किया जा सकता है।


=== घनी पैक दशमलव महत्व क्षेत्र ===
=== घनी पैक दशमलव महत्व क्षेत्र ===
इस संस्करण में, महत्व को दशमलव अंकों की एक श्रृंखला के रूप में संग्रहीत किया जाता है। अग्रणी अंक 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}}</रेफरी>


यदि साइन बिट के बाद के पहले दो बिट 00 , 01 , या 10 हैं, तो वे एक्सपोनेंट के अग्रणी बिट हैं, और उसके बाद के तीन बिट्स को अग्रणी दशमलव अंक (0 से 7) के रूप में समझा जाता है:
यदि साइन बिट के बाद के पहले दो बिट 00 , 01 , या 10 हैं, तो वे एक्सपोनेंट के अग्रणी बिट हैं, और उसके बाद के तीन बिट्स को अग्रणी दशमलव अंक (0 से 7) के रूप में समझा जाता है:
रेफरी>[http://speleotrove.com/decimal/dbspec.html दशमलव एन्कोडिंग विशिष्टता, संस्करण 1.00], आईबीएम से</ref>
रेफरी>[http://speleotrove.com/decimal/dbspec.html दशमलव एन्कोडिंग विशिष्टता, संस्करण 1.00], आईबीएम से</ref><syntaxhighlight lang="d">
<पूर्व>
  Comb.  Exponent          Significand
    कंघा। एक्सपोनेंट महत्व
  s 00 TTT (00)eeeeee (0TTT)[tttttttttt][tttttttttt]
  एस 00 टीटीटी (00) eeeeee (0TTT) [ttttttttt] [tttttttttt]
  s 01 TTT (01)eeeeee (0TTT)[tttttttttt][tttttttttt]
  एस 01 टीटीटी (01) eeeeee (0TTT) [ttttttttt] [tttttttttt]
  s 10 TTT (10)eeeeee (0TTT)[tttttttttt][tttttttttt]
  एस 10 टीटीटी (10) eeeeee (0TTT) [ttttttttt] [tttttttttt]
</syntaxhighlight>यदि साइन बिट के बाद पहले दो बिट 11 हैं, तो दूसरे दो बिट घातांक के अग्रणी बिट हैं, और अंतिम बिट को 100 के साथ अग्रणी दशमलव अंक (8 या 9) बनाने के लिए उपसर्ग किया जाता है:<syntaxhighlight lang="d">
</पूर्व>
    Comb.  Exponent          Significand
यदि साइन बिट के बाद पहले दो बिट 11 हैं, तो दूसरे दो बिट एक्सपोनेंट के अग्रणी बिट हैं, और अंतिम बिट को 100 के साथ अग्रणी दशमलव अंक (8 या 9) बनाने के लिए उपसर्ग किया जाता है:
s 1100 T (00)eeeeee (100T)[tttttttttt][tttttttttt]
s 1101 T (01)eeeeee (100T)[tttttttttt][tttttttttt]
s 1110 T (10)eeeeee (100T)[tttttttttt][tttttttttt]
</syntaxhighlight>5-बिट फ़ील्ड के शेष दो संयोजन (11110 और 11111) क्रमशः ± अनंत और एनएएनएस का प्रतिनिधित्व करने के लिए उपयोग किए जाते हैं।
== चल-बिन्दु अंकगणितीय ऑपरेशन ==
चल-बिन्दु अंकगणित करने का सामान्य नियम यह है कि त्रुटिहीन गणितीय मान की गणना की जाती है,<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 अंकों की शुद्धता का उपयोग किया जाएगा। मौलिक सिद्धांत किसी भी परिशुद्धता में समान हैं।
    कंघा। एक्सपोनेंट महत्व
एस 1100 टी (00) eeeeee (100 टी) [ttttttttt] [tttttttttt]
एस 1101 टी (01) eeeeee (100T) [ttttttttt] [tttttttttt]
एस 1110 टी (10) eeeeee (100T) [ttttttttt] [tttttttttt]
</पूर्व>
5-बिट फ़ील्ड के शेष दो संयोजन (11110 और 11111) क्रमशः ± अनंत और NaNs का प्रतिनिधित्व करने के लिए उपयोग किए जाते हैं।
 
== फ़्लोटिंग-पॉइंट अंकगणितीय ऑपरेशन ==
फ़्लोटिंग-पॉइंट अंकगणित करने का सामान्य नियम यह है कि सटीक गणितीय मान की गणना की जाती है,<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 अंकों की सटीकता का उपयोग किया जाएगा। मौलिक सिद्धांत किसी भी परिशुद्धता में समान हैं।


=== जोड़ ===
=== जोड़ ===
फ़्लोटिंग-पॉइंट नंबर जोड़ने का एक सरल तरीका यह है कि पहले उन्हें उसी एक्सपोनेंट के साथ प्रदर्शित किया जाए। नीचे दिए गए उदाहरण में, दूसरी संख्या को 3 अंकों से दाईं ओर स्थानांतरित कर दिया गया है। हम सामान्य जोड़ विधि के साथ आगे बढ़ते हैं:
चल-बिन्दु नंबर जोड़ने का सरल विधि यह है कि पहले उन्हें उसी घातांक के साथ प्रदर्शित किया जाए। नीचे दिए गए उदाहरण में, दूसरी संख्या को 3 अंकों से दाईं ओर स्थानांतरित कर दिया गया है। हम सामान्य जोड़ विधि के साथ आगे बढ़ते हैं:


निम्न उदाहरण दशमलव है, जिसका सीधा अर्थ है कि आधार 10 है।
निम्न उदाहरण दशमलव है, जिसका सीधा अर्थ है कि आधार 10 है।
Line 156: Line 134:
   123456.7 = 1.234567 × 10<sup>5</sup>
   123456.7 = 1.234567 × 10<sup>5</sup>
   101.7654 = 1.017654 × 10<sup>2</sup> = 0.001017654 × 10<sup>5</sup>
   101.7654 = 1.017654 × 10<sup>2</sup> = 0.001017654 × 10<sup>5</sup>
इस तरह:
इस प्रकार:
   123456.7 + 101.7654 = (1.234567 × 10<sup>5</sup>) + (1.017654 × 10<sup>2</sup>)
   123456.7 + 101.7654 = (1.234567 × 10<sup>5</sup>) + (1.017654 × 10<sup>2</sup>)
                       = (1.234567 × 10<sup>5</sup>) + (0.001017654 × 10<sup>5</sup>)
                       = (1.234567 × 10<sup>5</sup>) + (0.001017654 × 10<sup>5</sup>)
                       = 10<sup>5</sup> × (1.234567 + 0.001017654)
                       = 10<sup>5</sup> × (1.234567 + 0.001017654)
                       = 10<sup>5</sup> × 1.235584654
                       = 10<sup>5</sup> × 1.235584654
यह वैज्ञानिक संकेतन में परिवर्तित होने के अलावा और कुछ नहीं है।
यह वैज्ञानिक संकेतन में परिवर्तित होने के अतिरिक्त और कुछ नहीं है।
 
विस्तार से:
विस्तार से:


   = 5; एस = 1.234567 (123456.7)
   e = 5; s = 1.234567 (123456.7)
  + = 2; एस = 1.017654 (101.7654)
  + e = 2; s = 1.017654 (101.7654)


   = 5; एस = 1.234567
   e = 5; s = 1.234567
  + = 5; s=0.001017654 (शिफ्टिंग के बाद)
  + e = 5; s=0.001017654 (after shifting)
  --------------------
  --------------------
   = 5; s=1.235584654 (सही योग: 123558.4654)
   e = 5; s=1.235584654 (true sum: 123558.4654)


यह सही परिणाम है, ऑपरेंड का सटीक योग। इसे 7 अंकों तक गोल किया जाएगा और यदि आवश्यक हो तो सामान्य किया जाएगा। अंतिम परिणाम है:
यह सही परिणाम है जो ऑपरेंड का त्रुटिहीन योग है। इसे 7 अंकों तक गोल किया जाएगा और यदि आवश्यक हो तो सामान्य किया जाएगा। अंतिम परिणाम है:
   = 5; s=1.235585 (अंतिम योग: 123558.5)
   e = 5; s=1.235585 (final sum: 123558.5)


ध्यान दें कि दूसरे ऑपरेंड (654) के निम्न 3 अंक अनिवार्य रूप से खो गए हैं। यह [[राउंड-ऑफ त्रुटि]] है। चरम मामलों में, दो गैर-शून्य संख्याओं का योग उनमें से एक के बराबर हो सकता है:
ध्यान दें कि दूसरे ऑपरेंड (654) के निम्न 3 अंक अनिवार्य रूप से लुप्त गए हैं। यह [[राउंड-ऑफ त्रुटि]] है। अत्यधिक मामलों में, दो गैर-शून्य संख्याओं का योग उनमें से के बराबर हो सकता है:


   = 5; एस = 1.234567
   e = 5; s = 1.234567
  + = -3; एस = 9.876543
  + e =-3;s = 9.876543


   = 5; एस = 1.234567
   e = 5; s = 1.234567
  + = 5; s=0.00000009876543 (शिफ्टिंग के बाद)
  + e = 5; s=0.00000009876543 (after shifting)
  ----------------------
  ----------------------
   = 5; s=1.23456709876543 (सही योग)
   e = 5; s=1.23456709876543 (true sum)
   = 5; s=1.234567 (पूर्णांक/सामान्यीकरण के बाद)
   e = 5; s=1.234567         (after rounding/normalization)


महत्व के नुकसान की एक और समस्या तब होती है जब दो लगभग समान संख्याओं के सन्निकटन को घटाया जाता है। निम्नलिखित उदाहरण में = 5; एस = 1.234571 और = 5; s=1.234567 परिमेय 123457.1467 और 123456.659 के अनुमान हैं।
महत्व के हानि की और समस्या तब होती है जब दो लगभग समान संख्याओं के सन्निकटन को घटाया जाता है। निम्नलिखित उदाहरण में e = 5; s = 1.234571 और e = 5; s=1.234567 परिमेय 123457.1467 और 123456.659 के अनुमान हैं।


   = 5; एस = 1.234571
   e = 5; s = 1.234571
  - = 5; एस = 1.234567
  - e = 5; s = 1.234567
  ----------------
  ----------------
   = 5; एस = 0.000004
   e = 5; s = 0.000004
   = -1; s=4.000000 (राउंडिंग और सामान्यीकरण के बाद)
   e =-1;s=4.000000 (after rounding and normalization)


फ़्लोटिंग-पॉइंट अंतर की गणना बिल्कुल इसलिए की जाती है क्योंकि संख्याएँ करीब होती हैं- [[डाई बेंज लेम्मा]] इसकी गारंटी देता है, यहां तक ​​कि अंडरफ़्लो के मामले में भी जब क्रमिक अंडरफ़्लो समर्थित होता है। इसके बावजूद, मूल संख्याओं का अंतर e=−1 है; s = 4.877000, जो अंतर e = −1 से 20% से अधिक भिन्न है; s= 4.000000 सन्निकटन। चरम मामलों में, सटीकता के सभी महत्वपूर्ण अंक खो सकते हैं।<ref name="Goldberg_1991"/><ref name="Sierra_1962"/>यह आपत्तिजनक निरस्तीकरण यह मानने के खतरे को दर्शाता है कि गणना किए गए परिणाम के सभी अंक अर्थपूर्ण हैं। इन त्रुटियों के परिणामों से निपटना [[संख्यात्मक विश्लेषण]] का विषय है; #सटीकता की समस्याएं भी देखें।
चल-बिन्दु अंतर की गणना बिल्कुल इसलिए की जाती है क्योंकि संख्याएँ निकट होती हैं - [[डाई बेंज लेम्मा]] इसकी गारंटी देता है, यहां तक ​​कि अंडरफ़्लो की स्थितियों में भी जब क्रमिक अंडरफ़्लो समर्थित होता है। इसके अतिरिक्त, मूल संख्याओं का अंतर e=−1, s = 4.877000 है; जो अंतर e = −1 से s= 4.000000अनुमानों के 20% से अधिक भिन्न है। चरम मामलों में, शुद्धता के सभी महत्वपूर्ण अंक लुप्त हो सकते हैं।<ref name="Goldberg_1991" /><ref name="Sierra_1962" /> यह निरस्तीकरण यह मानने के खतरे को दर्शाता है कि गणना किए गए परिणाम के सभी अंक अर्थपूर्ण हैं। इन त्रुटियों के परिणामों से निपटना [[संख्यात्मक विश्लेषण]] का विषय है; शुद्धता की समस्याएं भी देखें।


=== गुणा ===
=== गुणा ===
गुणा करने के लिए, महत्व को गुणा किया जाता है, जबकि घातांक जोड़े जाते हैं, और परिणाम को गोल और सामान्यीकृत किया जाता है।
गुणा करने के लिए, महत्व को गुणा किया जाता है, चूंकि घातांक जोड़े जाते हैं, और परिणाम को गोल और सामान्यीकृत किया जाता है।


   = 3; एस = 4.734612
   e = 3; s = 4.734612
  × = 5; एस = 5.417242
  × e = 5; s = 5.417242
  --------------------------------------
  --------------------------------------
   = 8; s=25.648538980104 (वास्तविक गुणनफल)
   e = 8; s=25.648538980104 (true product)
   = 8; s=25.64854 (पूर्ण करने के बाद)
   e = 8; s=25.64854         (after rounding)
   = 9; एस = 2.564854 (सामान्यीकरण के बाद)
   e = 9; s = 2.564854       (after normalization)
 
विभाजन इसी प्रकार किया जाता है, लेकिन वह अधिक जटिल है।


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


{{further|Booth's multiplication algorithm|Division algorithm}}
गुणन या विभाजन के साथ निरस्त्रीकरण या अवशोषण की कोई समस्या नहीं है, चूंकि छोटी त्रुटियां जमा हो सकती हैं क्योंकि संचालन बार-बार किया जाता है। व्यवहार में, जिस प्रकार से डिजिटल लॉजिक में ये ऑपरेशन किए जाते हैं वह अधिक जटिल हो सकता है।
== यह भी देखें ==
== यह भी देखें ==
* [[बाइनरी-कोडित दशमलव]] (बीसीडी)
* [[बाइनरी-कोडित दशमलव]] (बीसीडी)
Line 224: Line 201:
== आगे की पढाई ==
== आगे की पढाई ==
* [http://speleotrove.com/decimal/IEEE-cowlishaw-arith16.pdf Decimal Floating-Point: Algorism for Computers], Proceedings of the [[16th IEEE Symposium on Computer Arithmetic]] ([[Mike Cowlishaw|Cowlishaw, Mike F.]], 2003)
* [http://speleotrove.com/decimal/IEEE-cowlishaw-arith16.pdf Decimal Floating-Point: Algorism for Computers], Proceedings of the [[16th IEEE Symposium on Computer Arithmetic]] ([[Mike Cowlishaw|Cowlishaw, Mike F.]], 2003)
{{DEFAULTSORT:Decimal Floating Point}}[[Category: कंप्यूटर अंकगणित]] [[Category: तैरनेवाला स्थल]] [[Category: 10 (संख्या)]]
{{DEFAULTSORT:Decimal Floating Point}}
 
 


[[Category: Machine Translated Page]]
[[Category:10 (संख्या)|Decimal Floating Point]]
[[Category:Created On 28/01/2023]]
[[Category:Articles with hatnote templates targeting a nonexistent page|Decimal Floating Point]]
[[Category:Created On 28/01/2023|Decimal Floating Point]]
[[Category:Lua-based templates|Decimal Floating Point]]
[[Category:Machine Translated Page|Decimal Floating Point]]
[[Category:Pages with script errors|Decimal Floating Point]]
[[Category:Short description with empty Wikidata description|Decimal Floating Point]]
[[Category:Templates Vigyan Ready|Decimal Floating Point]]
[[Category:Templates that add a tracking category|Decimal Floating Point]]
[[Category:Templates that generate short descriptions|Decimal Floating Point]]
[[Category:Templates using TemplateData|Decimal Floating Point]]
[[Category:कंप्यूटर अंकगणित|Decimal Floating Point]]
[[Category:तैरनेवाला स्थल|Decimal Floating Point]]

Latest revision as of 12:42, 20 October 2023

दशमलव चल-बिन्दु (डीऍफ़पी) अंकगणित दशमलव डेटा प्रकार चल-बिन्दु संख्याओं पर प्रतिनिधित्व और संचालन दोनों को संदर्भित करता है। दशमलव (आधार-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, आदि। जब महत्व शून्य है, तो घातांक का कोई भी मान हो सकता है।

आईईई 754-2008 दशमलव चल-बिन्दु प्रारूप
दशमलव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   Exponent begins with 00, significand with 0mmm
s 01mmm xxx   Exponent begins with 01, significand with 0mmm
s 10mmm xxx   Exponent begins with 10, significand with 0mmm

यदि महत्व के अग्रणी 4 बिट बाइनरी 1000 या 1001 (दशमलव 8 या 9) हैं, तो संख्या इस प्रकार प्रारंभ होती है:

s 1100m xxx   Exponent begins with 00, significand with 100m
s 1101m xxx   Exponent begins with 01, significand with 100m
s 1110m xxx   Exponent begins with 10, significand with 100m

अग्रणी बिट (उपर्युक्त में) साइन बिट है, और निम्नलिखित बिट्स (ऊपर में xxx) अतिरिक्त घातांक बिट्स और शेष सबसे महत्वपूर्ण अंक को एन्कोड करते हैं, किन्तु उपयोग किए गए एन्कोडिंग विकल्प के आधार पर विवरण भिन्न होते हैं। अंतिम संयोजनों का उपयोग इन्फिनिटी और एनएएन के लिए किया जाता है, और दोनों वैकल्पिक एन्कोडिंग के लिए समान हैं:

s 11110 x   ±Infinity (see Extended real number line)
s 11111 0   quiet NaN (sign bit ignored)
s 11111 1   signaling NaN (sign bit ignored)

बाद के मामलों में, एन्कोडिंग के अन्य सभी बिट्स को उपेक्षित कर दिया जाता है। इस प्रकार एक बाइट मान के साथ भरकर एक सरणी को NaNs में प्रारंभ करना संभव है।

बाइनरी पूर्णांक महत्व क्षेत्र

यह प्रारूप 0 से 10p−1 तक बाइनरी महत्व का उपयोग करता है. उदाहरण के लिए, दशमलव32 महत्व 107−1 = 9999999 = 98967F16 = 1001100010010110011111112 तक हो सकता है। जबकि एन्कोडिंग बड़े महत्व का प्रतिनिधित्व कर सकता है, वे अवैध हैं और इनपुट पर सामना होने पर मानक को 0 के रूप में व्यवहार करने के लिए कार्यान्वयन की आवश्यकता होती है।

जैसा कि ऊपर बताया गया है, एन्कोडिंग इस बात पर निर्भर करती है कि महत्व के सबसे महत्वपूर्ण 4 बिट्स 0 से 7 (00002 से 01112), या उच्चतर (10002 या 10012) की सीमा में हैं।

यदि साइन बिट के बाद के 2 बिट्स 00, 01, या 10 हैं, तो घातांक फ़ील्ड में साइन बिट के बाद 8 बिट्स होते हैं (2 बिट्स का उल्लेख किया गया है और "घातांक निरंतरता क्षेत्र" के 6 बिट्स), और महत्व शेष 23 है बिट्स हैं, जिसमे अंतर्निहित अग्रणी 0 बिट है, जो यहां कोष्ठकों में दिखाया गया है:

s 00eeeeee   (0)ttt tttttttttt tttttttttt
s 01eeeeee   (0)ttt tttttttttt tttttttttt
s 10eeeeee   (0)ttt tttttttttt tttttttttt

इसमें उपसामान्य संख्याएं सम्मिलित हैं जहां प्रमुख महत्व और अंक 0 है। यदि साइन बिट के बाद 2 बिट्स 11 हैं, तो 8-बिट घातांक फ़ील्ड को 2 बिट्स को दाईं ओर स्थानांतरित कर दिया जाता है (साइन बिट और उसके बाद 11 बिट्स दोनों के बाद), और प्रतिनिधित्व महत्व शेष 21 बिट्स में है। इस स्थितियों में वास्तविक महत्व में 3-बिट अनुक्रम 100 का अंतर्निहित (जो संग्रहीत नहीं है) है:

s 1100eeeeee (100)t tttttttttt tttttttttt
s 1101eeeeee (100)t tttttttttt tttttttttt
s 1110eeeeee (100)t tttttttttt tttttttttt

साइन बिट के बाद 11 2-बिट अनुक्रम निरुपित करता है कि महत्व के लिए अंतर्निहित 100 3-बिट उपसर्ग है।

ध्यान दें कि महत्व क्षेत्र के प्रमुख बिट्स सबसे महत्वपूर्ण दशमलव अंक को एनकोड नहीं करते हैं; वे बस बड़ी शुद्ध-द्विआधारी संख्या का भाग हैं। उदाहरण के लिए, 8000000 के महत्व को बाइनरी 011110100001001000000000 के रूप में एन्कोड किया गया है जिसमे अग्रणी 4 बिट्स एन्कोडिंग 7 के साथ हैं; पहला महत्व जिसके लिए 24 बिट की आवश्यकता होती है (और इस प्रकार दूसरा एन्कोडिंग फॉर्म) वह 223 = 8388608 है.

उपरोक्त मामलों में, प्रतिनिधित्व मान है:

(−1)साइन × 10घातांक−101 × महत्व

दशमलव64 और दशमलव128 बड़े एक्सपोनेंट निरंतरता और महत्वपूर्ण क्षेत्रों के साथ समान रूप से संचालित होते हैं। दशमलव128 के लिए, दूसरा एन्कोडिंग फॉर्म वास्तव में कभी 1034−1 = 1ED09BEAD87C0378D8E63FFFFFFFF16 का सबसे बड़ा वैध महत्व113 बिट्स में प्रदर्शित किया जा सकता है।

घनी पैक दशमलव महत्व क्षेत्र

इस संस्करण में, महत्व को दशमलव अंकों की श्रृंखला के रूप में संग्रहीत किया जाता है। अग्रणी अंक 0 और 9 (3 या 4 बाइनरी बिट्स) के बीच है, और शेष महत्व सघन पैक दशमलव (DPD) एन्कोडिंग का उपयोग करता है।

प्रतिपादक के अग्रणी 2 बिट्स और महत्व के अग्रणी अंक (3 या 4 बिट्स) को पांच बिट्स में जोड़ा जाता है जो साइन बिट का पालन करते हैं। इसके बाद फिक्स्ड-ऑफसेट घातांक निरंतर क्षेत्र आता है।

अंत में, महत्व निरंतरता क्षेत्र 2, 5, या 11 10-बिट डिलेट (कंप्यूटिंग) से बना है, प्रत्येक 3 दशमलव अंकों को कूटबद्ध करता है।[7]

   Comb.  Exponent          Significand
 s 00 TTT (00)eeeeee (0TTT)[tttttttttt][tttttttttt]
 s 01 TTT (01)eeeeee (0TTT)[tttttttttt][tttttttttt]
 s 10 TTT (10)eeeeee (0TTT)[tttttttttt][tttttttttt]

यदि साइन बिट के बाद पहले दो बिट 11 हैं, तो दूसरे दो बिट घातांक के अग्रणी बिट हैं, और अंतिम बिट को 100 के साथ अग्रणी दशमलव अंक (8 या 9) बनाने के लिए उपसर्ग किया जाता है:

    Comb.  Exponent          Significand
 s 1100 T (00)eeeeee (100T)[tttttttttt][tttttttttt]
 s 1101 T (01)eeeeee (100T)[tttttttttt][tttttttttt]
 s 1110 T (10)eeeeee (100T)[tttttttttt][tttttttttt]

5-बिट फ़ील्ड के शेष दो संयोजन (11110 और 11111) क्रमशः ± अनंत और एनएएनएस का प्रतिनिधित्व करने के लिए उपयोग किए जाते हैं।

चल-बिन्दु अंकगणितीय ऑपरेशन

चल-बिन्दु अंकगणित करने का सामान्य नियम यह है कि त्रुटिहीन गणितीय मान की गणना की जाती है,[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

यह वैज्ञानिक संकेतन में परिवर्तित होने के अतिरिक्त और कुछ नहीं है।

विस्तार से:

  e = 5; s = 1.234567 (123456.7)
+ e = 2; s = 1.017654 (101.7654)
  e = 5; s = 1.234567
+ e = 5; s=0.001017654 (after shifting)
--------------------
  e = 5; s=1.235584654 (true sum: 123558.4654)

यह सही परिणाम है जो ऑपरेंड का त्रुटिहीन योग है। इसे 7 अंकों तक गोल किया जाएगा और यदि आवश्यक हो तो सामान्य किया जाएगा। अंतिम परिणाम है:

  e = 5; s=1.235585 (final sum: 123558.5)

ध्यान दें कि दूसरे ऑपरेंड (654) के निम्न 3 अंक अनिवार्य रूप से लुप्त गए हैं। यह राउंड-ऑफ त्रुटि है। अत्यधिक मामलों में, दो गैर-शून्य संख्याओं का योग उनमें से के बराबर हो सकता है:

  e = 5; s = 1.234567
+ e =-3;s = 9.876543
  e = 5; s = 1.234567
+ e = 5; s=0.00000009876543 (after shifting)
----------------------
  e = 5; s=1.23456709876543 (true sum)
  e = 5; s=1.234567         (after rounding/normalization)

महत्व के हानि की और समस्या तब होती है जब दो लगभग समान संख्याओं के सन्निकटन को घटाया जाता है। निम्नलिखित उदाहरण में e = 5; s = 1.234571 और e = 5; s=1.234567 परिमेय 123457.1467 और 123456.659 के अनुमान हैं।

  e = 5; s = 1.234571
- e = 5; s = 1.234567
----------------
  e = 5; s = 0.000004
  e =-1;s=4.000000 (after rounding and normalization)

चल-बिन्दु अंतर की गणना बिल्कुल इसलिए की जाती है क्योंकि संख्याएँ निकट होती हैं - डाई बेंज लेम्मा इसकी गारंटी देता है, यहां तक ​​कि अंडरफ़्लो की स्थितियों में भी जब क्रमिक अंडरफ़्लो समर्थित होता है। इसके अतिरिक्त, मूल संख्याओं का अंतर e=−1, s = 4.877000 है; जो अंतर e = −1 से s= 4.000000अनुमानों के 20% से अधिक भिन्न है। चरम मामलों में, शुद्धता के सभी महत्वपूर्ण अंक लुप्त हो सकते हैं।[9][10] यह निरस्तीकरण यह मानने के खतरे को दर्शाता है कि गणना किए गए परिणाम के सभी अंक अर्थपूर्ण हैं। इन त्रुटियों के परिणामों से निपटना संख्यात्मक विश्लेषण का विषय है; शुद्धता की समस्याएं भी देखें।

गुणा

गुणा करने के लिए, महत्व को गुणा किया जाता है, चूंकि घातांक जोड़े जाते हैं, और परिणाम को गोल और सामान्यीकृत किया जाता है।

  e = 3; s = 4.734612
× e = 5; s = 5.417242
--------------------------------------
  e = 8; s=25.648538980104  (true product)
  e = 8; s=25.64854         (after rounding)
  e = 9; s = 2.564854       (after normalization)

विभाजन इसी प्रकार किया जाता है, किन्तु वह अधिक जटिल है।

गुणन या विभाजन के साथ निरस्त्रीकरण या अवशोषण की कोई समस्या नहीं है, चूंकि छोटी त्रुटियां जमा हो सकती हैं क्योंकि संचालन बार-बार किया जाता है। व्यवहार में, जिस प्रकार से डिजिटल लॉजिक में ये ऑपरेशन किए जाते हैं वह अधिक जटिल हो सकता है।

यह भी देखें

संदर्भ

  1. 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. 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.
  3. "IBM z9 EC and z9 BC — Delivering greater value for everyone" (PDF). 306.ibm.com. Retrieved 7 July 2018.
  4. "Arithmetic IPs for Financial Applications - SilMinds". Silminds.com.
  5. "Chapter 4. Data Formats". Sparc64 X/X+ Specification. Nakahara-ku, Kawasaki, Japan. January 2015. p. 13.{{cite book}}: CS1 maint: location missing publisher (link)
  6. "Decimal floating point in .NET". Yoda.arachsys.com.
  7. 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, आईबीएम से
  8. 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.
  9. 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])
  10. US patent 3037701A, Huberto M Sierra, "Floating decimal point arithmetic control means for calculator", issued 1962-06-05 

आगे की पढाई