बाइनरी पूर्णांक दशमलव: Difference between revisions
No edit summary |
No edit summary |
||
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 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> | ||
दोनों प्रारूप एक संख्या को एक साइन बिट ''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 दशमलव अंकों की एक श्रृंखला के रूप में एन्कोड किया गया ([[घनीभूत दशमलव|डेंसली पैक्ड दशमलव]] (डीपीडी) एन्कोडिंग का उपयोग करके) है। यह दशमलव रूप में रूपांतरण को कुशल बनाता है, लेकिन प्रक्रिया के लिए एक विशेष दशमलव [[अंकगणितीय तर्क इकाई|एएलयू]] की आवश्यकता होती है। '''बाइनरी पूर्णांक दशमलव ('बीआईडी')''' एन्कोडिंग में, इसे बाइनरी संख्या के रूप में एन्कोड किया गया है। | |||
दोनों प्रारूप एक संख्या को एक साइन बिट | |||
==प्रारूप== | ==प्रारूप== | ||
इस तथ्य का उपयोग करते हुए कि 2<sup>10</sup> = 1024, 10 से थोड़ा ही अधिक है<sup>3</sup> = 1000, 3एन-अंकीय दशमलव संख्याओं को कुशलतापूर्वक 10एन बाइनरी बिट्स में पैक किया जा सकता है। हालाँकि, IEEE प्रारूप में 3n+1 अंकों का | इस तथ्य का उपयोग करते हुए कि 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 दशमलव अंकों के | यह कुशल नहीं होगा, क्योंकि अतिरिक्त 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 बिट्स में फिट हो जाता है: | ||
एस 00ईईईईई (0)ममममममममममममममममममममममममममममममममममममममममममममममम | एस 00ईईईईई (0)ममममममममममममममममममममममममममममममममममममममममममममममम | ||
एस 01ईईईईई (0)ममममममममममममममममममममममममममममममममममममममममममममममममम | एस 01ईईईईई (0)ममममममममममममममममममममममममममममममममममममममममममममममममम | ||
एस 10ईईईईई (0)मममममममममममममममममममममममममममममममममममममममममममममम | एस 10ईईईईई (0)मममममममममममममममममममममममममममममममममममममममममममममम | ||
* यदि | * यदि अपूर्णांश से शुरू होता है <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 बिट | दशमलव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 के | प्रस्तावित 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
Floating-point formats |
---|
IEEE 754 |
|
Other |
आईईईई 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]
यह भी देखें
संदर्भ
- ↑ "DRAFT Standard for Floating Point Arithmetic P754" (PDF). 2006-10-04. Retrieved 2007-07-01.[permanent dead link]
- ↑ "Decimal Library Performance - 1.01".
अग्रिम पठन
- Savard, John J. G. (2018) [2007]. "The Decimal Floating-Point Standard". quadibloc. Archived from the original on 2018-07-03. Retrieved 2018-07-16.