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

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{Use dmy dates|date=May 2019|cs1-dates=y}}
 
{{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 7: Line 7:
  |accessdate=2007-07-01  
  |accessdate=2007-07-01  
}}{{dead link|date=November 2016 |bot=InternetArchiveBot |fix-attempted=yes }}</ref>
}}{{dead link|date=November 2016 |bot=InternetArchiveBot |fix-attempted=yes }}</ref>
<!-- Not sure why this next one is here?  Proprietary/trade marks and propaganda articles not scientific, surely? Arith18 paper would be much better
 
The binary encoding format is referred to by Intel<ref>
दोनों प्रारूप एक संख्या को एक साइन बिट ''s'', एक घातांक ''q'' (''q<sub>min</sub>'' और ''q''<sub>max</sub>के बीच), और एक अपूर्णांश ''c'' (0 और 10<sup>''p''</sup>−1 के बीच) है) में तोड़ते हैं। एन्कोड किया गया मान (−1)<sup>''s''</sup>×10<sup>''q''</sup>×''c'' है।दोनों प्रारूपों में संभावित मानों की सीमा समान है, लेकिन अपूर्णांश c को दर्शाने के तरीके में वे भिन्न हैं। दशमलव एन्कोडिंग में, इसे p दशमलव अंकों की एक श्रृंखला के रूप में एन्कोड किया गया ([[घनीभूत दशमलव|डेंसली पैक्ड दशमलव]] (डीपीडी) एन्कोडिंग का उपयोग करके) है। यह दशमलव रूप में रूपांतरण को कुशल बनाता है, लेकिन प्रक्रिया के लिए एक विशेष दशमलव [[अंकगणितीय तर्क इकाई|एएलयू]] की आवश्यकता होती है। '''बाइनरी पूर्णांक दशमलव ('बीआईडी')''' एन्कोडिंग में, इसे बाइनरी संख्या के रूप में एन्कोड किया गया है।
{{cite web
  | title = IEEE 754R Decimal Floating-Point Arithmetic: Reliable and Efficient Implementation for Intel Architecture Platforms
  | publisher = Intel
  | date =  2007-02-15
  | url = http://www.intel.com/technology/itj/2007/v11i1/s2-decimal/1-sidebar.htm
  | accessdate = 2007-07-01 }}
</ref> and others as Binary Integer Decimal (BID).
-->
दोनों प्रारूप एक संख्या को एक साइन बिट एस, एक प्रतिपादक क्यू (क्यू के बीच) में तोड़ते हैं<sub>min</sub> और क्यू<sub>max</sub>), और एक पी-अंक का महत्व सी (0 और 10 के बीच) है<sup></sup>−1). एन्कोड किया गया मान (−1) है<sup></sup>×10<sup>क्यू</sup>×सी. दोनों प्रारूपों में संभावित मानों की सीमा समान है, लेकिन महत्व c को दर्शाने के तरीके में वे भिन्न हैं। दशमलव एन्कोडिंग में, इसे पी दशमलव अंकों की एक श्रृंखला के रूप में एन्कोड किया गया है ([[घनीभूत दशमलव]] (डीपीडी) एन्कोडिंग का उपयोग करके)यह दशमलव रूप में रूपांतरण को कुशल बनाता है, लेकिन प्रक्रिया के लिए एक विशेष दशमलव [[अंकगणितीय तर्क इकाई]] की आवश्यकता होती है। 'बाइनरी पूर्णांक दशमलव' ('बीआईडी') एन्कोडिंग में, इसे बाइनरी संख्या के रूप में एन्कोड किया गया है।


==प्रारूप==
==प्रारूप==
इस तथ्य का उपयोग करते हुए कि 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एन बाइनरी बिट्स में पैक किया जा सकता है। हालाँकि, IEEE प्रारूप में 3n+1 अंकों का अपूर्णांश है, जिसे दर्शाने के लिए आम तौर पर 10n+4 बाइनरी बिट्स की आवश्यकता होगी।


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


* यदि महत्व से शुरू होता है <code>0mmm</code>, अग्रणी 0 बिट को छोड़ने से महत्व 23 बिट्स में फिट हो जाता है:
* यदि अपूर्णांश से शुरू होता है <code>0mmm</code>, अग्रणी 0 बिट को छोड़ने से अपूर्णांश 23 बिट्स में फिट हो जाता है:
  एस 00ईईईईई (0)ममममममममममममममममममममममममममममममममममममममममममममममम
  एस 00ईईईईई (0)ममममममममममममममममममममममममममममममममममममममममममममममम
  एस 01ईईईईई (0)ममममममममममममममममममममममममममममममममममममममममममममममममम
  एस 01ईईईईई (0)ममममममममममममममममममममममममममममममममममममममममममममममममम
  एस 10ईईईईई (0)मममममममममममममममममममममममममममममममममममममममममममममम
  एस 10ईईईईई (0)मममममममममममममममममममममममममममममममममममममममममममममम
* यदि महत्व से शुरू होता है <code>100m</code>, अग्रणी 100 बिट्स को छोड़ने से महत्व 21 बिट्स में फिट हो जाता है। घातांक को 2 बिट्स पर स्थानांतरित किया जाता है, और ए <code>11</code> बिट जोड़ी दर्शाती है कि इस फॉर्म का उपयोग किया जा रहा है:
* यदि अपूर्णांश से शुरू होता है <code>100m</code>, अग्रणी 100 बिट्स को छोड़ने से अपूर्णांश 21 बिट्स में फिट हो जाता है। घातांक को 2 बिट्स पर स्थानांतरित किया जाता है, और ए <code>11</code> बिट जोड़ी दर्शाती है कि इस फॉर्म का उपयोग किया जा रहा है:
  एस 1100ईईईईई (100)एम म्म्म्म्म्म्म्म म्म्म्म्म्म्म्म
  एस 1100ईईईईई (100)एम म्म्म्म्म्म्म्म म्म्म्म्म्म्म्म
  एस 1101ईईईईईई (100)एम म्म्म्म्म्म्म्म म्म्म्म्म्म्म्म
  एस 1101ईईईईईई (100)एम म्म्म्म्म्म्म्म म्म्म्म्म्म्म्म
Line 39: Line 30:
कोष्ठक में दिखाए गए बिट्स अंतर्निहित हैं: वे डेसीमल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 पूरे दशमलव अंकों की संख्या है जिसे उपलब्ध बिट्स में संग्रहीत किया जा सकता है ताकि दशमलव गोलाई सही ढंग से प्रभावित हो।
प्रस्तावित IEEE 754r मानक संख्याओं की सीमा को फॉर्म 10 के अपूर्णांश तक सीमित करता है<sup>n</sup>−1, जहां n पूरे दशमलव अंकों की संख्या है जिसे उपलब्ध बिट्स में संग्रहीत किया जा सकता है ताकि दशमलव गोलाई सही ढंग से प्रभावित हो।
{| class="wikitable" style="text-align:right"
{| class="wikitable" style="text-align:right"
|-
|-

Revision as of 05:54, 20 July 2023

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

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

प्रारूप

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

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

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

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

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

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

समूह

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

रेंज

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

32 bit 64 bit 128 bit
Storage bits 32 64 128
Trailing Significand bits 20 50 110
Significand bits 23/24 53/54 113
Significand digits 7 16 34
Combination bits 11 13 17
Exponent bits 8 10 14
Bias 101 398 6176
Standard emax 96 384 6144
Standard emin −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".


अग्रिम पठन