बाइनरी पूर्णांक दशमलव: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{floating-point}}
{{floating-point}}
[[IEEE 754-2008|आईईईई 754-2008]] मानक में दशमलव फ़्लोटिंग-पॉइंट संख्या प्रारूप सम्मिलित हैं जिसमें [[महत्व|अपूर्णांश]] और घातांक (और [[NaN|एनएएन]] के पेलोड) को दो तरीकों से एन्कोड किया जा सकता है, जिन्हें '''बाइनरी एन्कोडिंग''' और ''दशमलव एन्कोडिंग'' कहा जाता है।<ref>{{cite web
[[IEEE 754-2008|आईईईई 754-2008]] मानक में दशमलव फ़्लोटिंग-पॉइंट संख्या प्रारूप सम्मिलित हैं जिसमें [[महत्व|अपूर्णांश]] और घातांक (और [[NaN|नेन]] के पेलोड) को दो तरीकों से एन्कोड किया जा सकता है, जिन्हें '''बाइनरी एन्कोडिंग''' और ''दशमलव एन्कोडिंग'' कहा जाता है।<ref>{{cite web
  |title=DRAFT Standard for Floating Point Arithmetic P754  
  |title=DRAFT Standard for Floating Point Arithmetic P754  
  |date=2006-10-04  
  |date=2006-10-04  
Line 11: Line 10:


==प्रारूप==
==प्रारूप==
इस तथ्य का उपयोग करते हुए कि 2<sup>10</sup> = 1024, 10 से थोड़ा ही अधिक है<sup>3</sup> = 1000, 3एन-अंकीय दशमलव संख्याओं को कुशलतापूर्वक 10एन बाइनरी बिट्स में पैक किया जा सकता है। हालाँकि, IEEE प्रारूप में 3n+1 अंकों का अपूर्णांश है, जिसे दर्शाने के लिए आम तौर पर 10n+4 बाइनरी बिट्स की आवश्यकता होगी।
इस तथ्य का उपयोग करते हुए कि 2<sup>10</sup> = 1024, 10<sup>3</sup> = 1000 से थोड़ा ही अधिक है, 3एन-अंकीय दशमलव संख्याओं को कुशलतापूर्वक 10''n'' बाइनरी बिट्स में पैक किया जा सकता है। हालाँकि, आईईईई प्रारूप में 3''n''+1 अंकों का अपूर्णांश है, जिसे दर्शाने के लिए प्रायः 10''n''+4 बाइनरी बिट्स की आवश्यकता होगी।
 
यह कुशल नहीं होगा, क्योंकि अतिरिक्त 4 बिट्स के 16 संभावित मानों में से केवल 10 की आवश्यकता है। एक अधिक कुशल एन्कोडिंग को इस तथ्य का उपयोग करके डिज़ाइन किया जा सकता है कि घातांक सीमा 3×2<sup>''k''</sup> के रूप में है, इसलिए घातांक कभी भी <code>11</code> से आरंभ होता है। एक उदाहरण के रूप में दशमलव32 एन्कोडिंग (3*2+1 दशमलव अंकों के अपूर्णांश के साथ) का उपयोग करना (<code>e</code> का अर्थ घातांक है, <code>m</code> मंटिसा के लिए, यानी अपूर्णांश) है:
 
* यदि अपूर्णांश <code>0mmm</code>से प्रारम्भ होता है , अग्रणी 0 बिट को छोड़ने से अपूर्णांश 23 बिट्स में फिट हो जाता है:
s 00eeeeee  (0)mmm mmmmmmmmmm mmmmmmmmmm
s 01eeeeee  (0)mmm mmmmmmmmmm mmmmmmmmmm


यह कुशल नहीं होगा, क्योंकि अतिरिक्त 4 बिट्स के 16 संभावित मानों में से केवल 10 की आवश्यकता है। एक अधिक कुशल एन्कोडिंग को इस तथ्य का उपयोग करके डिज़ाइन किया जा सकता है कि घातांक सीमा 3×2 के रूप में है<sup>क</sup>, इसलिए घातांक कभी भी आरंभ नहीं करता <code>11</code>. एक उदाहरण के रूप में दशमलव32 एन्कोडिंग (3*2+1 दशमलव अंकों के अपूर्णांश के साथ) का उपयोग करना (<code>e</code> प्रतिपादक के लिए खड़ा है, <code>m</code> मंटिसा के लिए, यानी अपूर्णांश):
s 10eeeeee  (0)mmm mmmmmmmmmm mmmmmmmmmm
* यदि अपूर्णांश<code>100m</code>से प्रारम्भ होता है, अग्रणी 100 बिट्स को छोड़ने से अपूर्णांश 21 बिट्स में फिट हो जाता है। घातांक को 2 बिट्स पर स्थानांतरित किया जाता है, और ए <code>11</code> बिट जोड़ी दर्शाती है कि इस फॉर्म का उपयोग किया जा रहा है:
s 1100eeeeee (100)m mmmmmmmmmm mmmmmmmmmm
s 1101eeeeee (100)m mmmmmmmmmm mmmmmmmmmm


* यदि अपूर्णांश से शुरू होता है <code>0mmm</code>, अग्रणी 0 बिट को छोड़ने से अपूर्णांश 23 बिट्स में फिट हो जाता है:
  s 1110eeeeee (100)m mmmmmmmmmm mmmmmmmmmm
  एस 00ईईईईई (0)ममममममममममममममममममममममममममममममममममममममममममममममम
* अनंत, क्वाइट [[नेन]] और सिग्नलिंग नेन <code>s 1111</code> से आरंभ होने वाले एन्कोडिंग का उपयोग करते हैं :
एस 01ईईईईई (0)ममममममममममममममममममममममममममममममममममममममममममममममममम
  s 11110 xxxxxxxxxxxxxxxxxxxxxxxxxx
एस 10ईईईईई (0)मममममममममममममममममममममममममममममममममममममममममममममम
  s 111110 xxxxxxxxxxxxxxxxxxxxxxxxx
* यदि अपूर्णांश से शुरू होता है <code>100m</code>, अग्रणी 100 बिट्स को छोड़ने से अपूर्णांश 21 बिट्स में फिट हो जाता है। घातांक को 2 बिट्स पर स्थानांतरित किया जाता है, और <code>11</code> बिट जोड़ी दर्शाती है कि इस फॉर्म का उपयोग किया जा रहा है:
  s 111111 xxxxxxxxxxxxxxxxxxxxxxxxx
एस 1100ईईईईई (100)एम म्म्म्म्म्म्म्म म्म्म्म्म्म्म्म
एस 1101ईईईईईई (100)एम म्म्म्म्म्म्म्म म्म्म्म्म्म्म्म
एस 1110ईईईईई (100)एम म्म्म्म्म्म्म्म म्म्म्म्म्म्म्म
* अनंत, शांत NaN और सिग्नलिंग NaN से शुरू होने वाले एन्कोडिंग का उपयोग करते हैं <code>s 1111</code>:
  एस 11110 xxxxxxxxxxxxxxxxxxxxxxxxxxx
  एस 111110 xxxxxxxxxxxxxxxxxxxxxxxxxxx
  एस 111111 xxxxxxxxxxxxxxxxxxxxxxxxx


कोष्ठक में दिखाए गए बिट्स अंतर्निहित हैं: वे डेसीमल32 एन्कोडिंग के 32 बिट्स में सम्मिलित नहीं हैं, लेकिन साइन बिट के बाद दो बिट्स द्वारा निहित हैं।
कोष्ठक में दिखाए गए बिट्स ''अंतर्निहित'' हैं: वे डेसीमल32 एन्कोडिंग के 32 बिट्स में सम्मिलित नहीं हैं, लेकिन साइन बिट के बाद दो बिट्स द्वारा निहित हैं।


दशमलव64 और दशमलव128 एन्कोडिंग में बड़े घातांक और अपूर्णांश क्षेत्र हैं, लेकिन वे समान तरीके से काम करते हैं।
दशमलव64 और दशमलव128 एन्कोडिंग में बड़े घातांक और अपूर्णांश क्षेत्र हैं, लेकिन वे समान तरीके से काम करते हैं।


दशमलव128 एन्कोडिंग के लिए, 113 बिट अपूर्णांश वास्तव में 34 दशमलव अंकों को एन्कोड करने के लिए पर्याप्त है, और दूसरे फॉर्म की वास्तव में कभी आवश्यकता नहीं होती है।
दशमलव128 एन्कोडिंग के लिए, 113 बिट अपूर्णांश सचमुच में 34 दशमलव अंकों को एन्कोड करने के लिए पर्याप्त है, और दूसरे फॉर्म की सचमुच में कभी आवश्यकता नहीं होती है।


==समूह==
==कोहोर्ट==
एक दशमलव फ़्लोटिंग पॉइंट संख्या को कई तरीकों से एन्कोड किया जा सकता है, विभिन्न तरीके अलग-अलग सटीकता का प्रतिनिधित्व करते हैं, उदाहरण के लिए 100.0 को 1000×10 के रूप में एन्कोड किया गया है<sup>−1</sup>, जबकि 100.00 को 10000×10 के रूप में एन्कोड किया गया है<sup>−2</sup>. समान संख्यात्मक मान के संभावित एन्कोडिंग के सेट को मानक में एक समूह कहा जाता है। यदि गणना का परिणाम सटीक नहीं है, तो सबसे बड़े पूर्णांक वाले कोहोर्ट सदस्य का चयन करके अपूर्णांशपूर्ण डेटा की सबसे बड़ी मात्रा को संरक्षित किया जाता है, जिसे आवश्यक घातांक के साथ अपूर्णांश में संग्रहीत किया जा सकता है।
एक दशमलव फ़्लोटिंग पॉइंट संख्या को कई तरीकों से एन्कोड किया जा सकता है, विभिन्न तरीके अलग-अलग सटीकता का प्रतिनिधित्व करते हैं, उदाहरण के लिए 100.0 को 1000×10<sup>−1</sup> के रूप में एन्कोड किया गया है, जबकि 100.00 को 10000×10<sup>−2</sup> के रूप में एन्कोड किया गया है। समान संख्यात्मक मान के संभावित एन्कोडिंग के सेट को मानक में एक कोहोर्ट कहा जाता है। यदि गणना का परिणाम सटीक नहीं है, तो सबसे बड़े पूर्णांक वाले ''कोहोर्ट'' सदस्य का चयन करके महत्वपूर्ण डेटा की सबसे बड़ी मात्रा को संरक्षित किया जाता है, जिसे आवश्यक घातांक के साथ अपूर्णांश में संग्रहीत किया जा सकता है।


==रेंज==
==रेंज==
प्रस्तावित IEEE 754r मानक संख्याओं की सीमा को फॉर्म 10 के अपूर्णांश तक सीमित करता है<sup>n</sup>−1, जहां n पूरे दशमलव अंकों की संख्या है जिसे उपलब्ध बिट्स में संग्रहीत किया जा सकता है ताकि दशमलव गोलाई सही ढंग से प्रभावित हो।
प्रस्तावित आईईईई 754r मानक संख्याओं की सीमा को फॉर्म 10<sup>n</sup>−1 के अपूर्णांश तक सीमित करता है, जहां n पूरे दशमलव अंकों की संख्या है जिसे उपलब्ध बिट्स में संग्रहीत किया जा सकता है ताकि दशमलव रॉउंडिंग सही ढंग से प्रभावित हो।
 
{| class="wikitable" style="text-align:right"
{| class="wikitable" style="text-align:right"
|-
|-
|
|
! 32 bit
! 32 बिट
! 64 bit
! 64 बिट
! 128 bit
! 128 बिट
|-
|-
! Storage bits
! स्टोरेज बिट्स
| 32
| 32
| 64
| 64
| 128
| 128
|-
|-
! Trailing Significand bits
! अनुगामी अपूर्णांश बिट्स
| 20
| 20
| 50
| 50
| 110
| 110
|-
|-
! Significand bits
! अपूर्णांश बिट्स
| 23/24
| 23/24
| 53/54
| 53/54
| 113
| 113
|-
|-
! Significand digits
! अपूर्णांश अंक
| 7
| 7
| 16
| 16
| 34
| 34
|-
|-
! Combination bits
! संयोजन बिट्स
| 11
| 11
| 13
| 13
| 17
| 17
|-
|-
! Exponent bits
! घातांक बिट्स
| 8
| 8
| 10
| 10
| 14
| 14
|-
|-
! Bias
! पूर्वाग्रह
| 101
| 101
| 398
| 398
| 6176
| 6176
|-
|-
! Standard emax
! मानक इमैक्स
| 96
| 96
| 384
| 384
| 6144
| 6144
|-
|-
! Standard emin
! मानक इमिन
| −95
| −95
| −383
| −383
Line 94: Line 96:


==प्रदर्शन==
==प्रदर्शन==
बाइनरी एन्कोडिंग दशमलव-एन्कोडेड डेटा, जैसे स्ट्रिंग्स ([[एएससीआईआई]], [[यूनिकोड]], आदि) और [[बाइनरी-कोडित दशमलव]] में या उससे रूपांतरण के लिए स्वाभाविक रूप से कम कुशल है। इसलिए बाइनरी एन्कोडिंग को केवल तभी चुना जाता है जब डेटा दशमलव के बजाय बाइनरी हो। आईबीएम ने कुछ असत्यापित प्रदर्शन डेटा प्रकाशित किया है।<ref>{{Cite web|url=http://speleotrove.com/decimal/decperf.html|title = Decimal Library Performance - 1.01}}</ref>
दशमलव-एन्कोडेड डेटा, जैसे स्ट्रिंग्स ([[एएससीआईआई]], [[यूनिकोड]], आदि) और [[बाइनरी-कोडित दशमलव|बीसीडी]] से रूपांतरण के लिए बाइनरी एन्कोडिंग स्वाभाविक रूप से कम कुशल है। इसलिए बाइनरी एन्कोडिंग को केवल तभी चुना जाता है जब डेटा दशमलव के बजाय बाइनरी हो। आईबीएम ने कुछ असत्यापित प्रदर्शन डेटा प्रकाशित किया है।<ref>{{Cite web|url=http://speleotrove.com/decimal/decperf.html|title = Decimal Library Performance - 1.01}}</ref>




Line 106: Line 108:
==अग्रिम पठन==
==अग्रिम पठन==
* {{cite web |title=The Decimal Floating-Point Standard |author-first=John J. G. |author-last=Savard |date=2018 |orig-year=2007 |work=quadibloc |url=http://www.quadibloc.com/comp/cp020302.htm |access-date=2018-07-16 |url-status=live |archive-url=https://web.archive.org/web/20180703002322/http://www.quadibloc.com/comp/cp020302.htm |archive-date=2018-07-03}}
* {{cite web |title=The Decimal Floating-Point Standard |author-first=John J. G. |author-last=Savard |date=2018 |orig-year=2007 |work=quadibloc |url=http://www.quadibloc.com/comp/cp020302.htm |access-date=2018-07-16 |url-status=live |archive-url=https://web.archive.org/web/20180703002322/http://www.quadibloc.com/comp/cp020302.htm |archive-date=2018-07-03}}
[[Category: कंप्यूटर अंकगणित]]


[[Category: Machine Translated Page]]
[[Category:All articles with dead external links]]
[[Category:Articles with dead external links from November 2016]]
[[Category:Articles with permanently dead external links]]
[[Category:Created On 11/07/2023]]
[[Category:Created On 11/07/2023]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Templates Vigyan Ready]]
[[Category:कंप्यूटर अंकगणित]]

Latest revision as of 17:09, 29 July 2023

आईईईई 754-2008 मानक में दशमलव फ़्लोटिंग-पॉइंट संख्या प्रारूप सम्मिलित हैं जिसमें अपूर्णांश और घातांक (और नेन के पेलोड) को दो तरीकों से एन्कोड किया जा सकता है, जिन्हें बाइनरी एन्कोडिंग और दशमलव एन्कोडिंग कहा जाता है।[1]

दोनों प्रारूप एक संख्या को एक साइन बिट s, एक घातांक q (qmin और qmaxके बीच), और एक अपूर्णांश c (0 और 10p−1 के बीच) है) में तोड़ते हैं। एन्कोड किया गया मान (−1)s×10q×c है।दोनों प्रारूपों में संभावित मानों की सीमा समान है, लेकिन अपूर्णांश c को दर्शाने के तरीके में वे भिन्न हैं। दशमलव एन्कोडिंग में, इसे p दशमलव अंकों की एक श्रृंखला के रूप में एन्कोड किया गया (डेंसली पैक्ड दशमलव (डीपीडी) एन्कोडिंग का उपयोग करके) है। यह दशमलव रूप में रूपांतरण को कुशल बनाता है, लेकिन प्रक्रिया के लिए एक विशेष दशमलव एएलयू की आवश्यकता होती है। बाइनरी पूर्णांक दशमलव ('बीआईडी') एन्कोडिंग में, इसे बाइनरी संख्या के रूप में एन्कोड किया गया है।

प्रारूप

इस तथ्य का उपयोग करते हुए कि 210 = 1024, 103 = 1000 से थोड़ा ही अधिक है, 3एन-अंकीय दशमलव संख्याओं को कुशलतापूर्वक 10n बाइनरी बिट्स में पैक किया जा सकता है। हालाँकि, आईईईई प्रारूप में 3n+1 अंकों का अपूर्णांश है, जिसे दर्शाने के लिए प्रायः 10n+4 बाइनरी बिट्स की आवश्यकता होगी।

यह कुशल नहीं होगा, क्योंकि अतिरिक्त 4 बिट्स के 16 संभावित मानों में से केवल 10 की आवश्यकता है। एक अधिक कुशल एन्कोडिंग को इस तथ्य का उपयोग करके डिज़ाइन किया जा सकता है कि घातांक सीमा 3×2k के रूप में है, इसलिए घातांक कभी भी 11 से आरंभ होता है। एक उदाहरण के रूप में दशमलव32 एन्कोडिंग (3*2+1 दशमलव अंकों के अपूर्णांश के साथ) का उपयोग करना (e का अर्थ घातांक है, m मंटिसा के लिए, यानी अपूर्णांश) है:

  • यदि अपूर्णांश 0mmmसे प्रारम्भ होता है , अग्रणी 0 बिट को छोड़ने से अपूर्णांश 23 बिट्स में फिट हो जाता है:
s 00eeeeee   (0)mmm mmmmmmmmmm mmmmmmmmmm
s 01eeeeee   (0)mmm mmmmmmmmmm mmmmmmmmmm
s 10eeeeee   (0)mmm mmmmmmmmmm mmmmmmmmmm
  • यदि अपूर्णांश100mसे प्रारम्भ होता है, अग्रणी 100 बिट्स को छोड़ने से अपूर्णांश 21 बिट्स में फिट हो जाता है। घातांक को 2 बिट्स पर स्थानांतरित किया जाता है, और ए 11 बिट जोड़ी दर्शाती है कि इस फॉर्म का उपयोग किया जा रहा है:
s 1100eeeeee (100)m mmmmmmmmmm mmmmmmmmmm
s 1101eeeeee (100)m mmmmmmmmmm mmmmmmmmmm
s 1110eeeeee (100)m mmmmmmmmmm mmmmmmmmmm
  • अनंत, क्वाइट नेन और सिग्नलिंग नेन s 1111 से आरंभ होने वाले एन्कोडिंग का उपयोग करते हैं :
s 11110 xxxxxxxxxxxxxxxxxxxxxxxxxx
s 111110 xxxxxxxxxxxxxxxxxxxxxxxxx
s 111111 xxxxxxxxxxxxxxxxxxxxxxxxx

कोष्ठक में दिखाए गए बिट्स अंतर्निहित हैं: वे डेसीमल32 एन्कोडिंग के 32 बिट्स में सम्मिलित नहीं हैं, लेकिन साइन बिट के बाद दो बिट्स द्वारा निहित हैं।

दशमलव64 और दशमलव128 एन्कोडिंग में बड़े घातांक और अपूर्णांश क्षेत्र हैं, लेकिन वे समान तरीके से काम करते हैं।

दशमलव128 एन्कोडिंग के लिए, 113 बिट अपूर्णांश सचमुच में 34 दशमलव अंकों को एन्कोड करने के लिए पर्याप्त है, और दूसरे फॉर्म की सचमुच में कभी आवश्यकता नहीं होती है।

कोहोर्ट

एक दशमलव फ़्लोटिंग पॉइंट संख्या को कई तरीकों से एन्कोड किया जा सकता है, विभिन्न तरीके अलग-अलग सटीकता का प्रतिनिधित्व करते हैं, उदाहरण के लिए 100.0 को 1000×10−1 के रूप में एन्कोड किया गया है, जबकि 100.00 को 10000×10−2 के रूप में एन्कोड किया गया है। समान संख्यात्मक मान के संभावित एन्कोडिंग के सेट को मानक में एक कोहोर्ट कहा जाता है। यदि गणना का परिणाम सटीक नहीं है, तो सबसे बड़े पूर्णांक वाले कोहोर्ट सदस्य का चयन करके महत्वपूर्ण डेटा की सबसे बड़ी मात्रा को संरक्षित किया जाता है, जिसे आवश्यक घातांक के साथ अपूर्णांश में संग्रहीत किया जा सकता है।

रेंज

प्रस्तावित आईईईई 754r मानक संख्याओं की सीमा को फॉर्म 10n−1 के अपूर्णांश तक सीमित करता है, जहां n पूरे दशमलव अंकों की संख्या है जिसे उपलब्ध बिट्स में संग्रहीत किया जा सकता है ताकि दशमलव रॉउंडिंग सही ढंग से प्रभावित हो।

32 बिट 64 बिट 128 बिट
स्टोरेज बिट्स 32 64 128
अनुगामी अपूर्णांश बिट्स 20 50 110
अपूर्णांश बिट्स 23/24 53/54 113
अपूर्णांश अंक 7 16 34
संयोजन बिट्स 11 13 17
घातांक बिट्स 8 10 14
पूर्वाग्रह 101 398 6176
मानक इमैक्स 96 384 6144
मानक इमिन −95 −383 −6143


प्रदर्शन

दशमलव-एन्कोडेड डेटा, जैसे स्ट्रिंग्स (एएससीआईआई, यूनिकोड, आदि) और बीसीडी से रूपांतरण के लिए बाइनरी एन्कोडिंग स्वाभाविक रूप से कम कुशल है। इसलिए बाइनरी एन्कोडिंग को केवल तभी चुना जाता है जब डेटा दशमलव के बजाय बाइनरी हो। आईबीएम ने कुछ असत्यापित प्रदर्शन डेटा प्रकाशित किया है।[2]


यह भी देखें

संदर्भ

  1. "DRAFT Standard for Floating Point Arithmetic P754" (PDF). 2006-10-04. Retrieved 2007-07-01.[permanent dead link]
  2. "Decimal Library Performance - 1.01".


अग्रिम पठन