बाइनरी पूर्णांक दशमलव: Difference between revisions
(Text) |
(Text) |
||
Line 1: | Line 1: | ||
{{floating-point}} | {{floating-point}} | ||
[[IEEE 754-2008|आईईईई 754-2008]] मानक में दशमलव फ़्लोटिंग-पॉइंट संख्या प्रारूप सम्मिलित हैं जिसमें [[महत्व|अपूर्णांश]] और घातांक (और [[NaN| | [[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 25: | Line 25: | ||
s 1110eeeeee (100)m mmmmmmmmmm mmmmmmmmmm | s 1110eeeeee (100)m mmmmmmmmmm mmmmmmmmmm | ||
* अनंत, क्वाइट [ | * अनंत, क्वाइट [[नेन]] और सिग्नलिंग नेन <code>s 1111</code> से आरंभ होने वाले एन्कोडिंग का उपयोग करते हैं : | ||
s 11110 xxxxxxxxxxxxxxxxxxxxxxxxxx | s 11110 xxxxxxxxxxxxxxxxxxxxxxxxxx | ||
s 111110 xxxxxxxxxxxxxxxxxxxxxxxxx | s 111110 xxxxxxxxxxxxxxxxxxxxxxxxx | ||
Line 97: | Line 97: | ||
==प्रदर्शन== | ==प्रदर्शन== | ||
दशमलव-एन्कोडेड डेटा, जैसे स्ट्रिंग्स ([[एएससीआईआई]], [[यूनिकोड]], आदि) और [[बाइनरी-कोडित दशमलव|बीसीडी]] से रूपांतरण के लिए बाइनरी एन्कोडिंग स्वाभाविक रूप से कम कुशल है। इसलिए बाइनरी एन्कोडिंग को केवल तभी चुना जाता है जब डेटा दशमलव के बजाय बाइनरी हो। आईबीएम ने कुछ असत्यापित प्रदर्शन डेटा प्रकाशित किया है।<ref>{{Cite web|url=http://speleotrove.com/decimal/decperf.html|title = Decimal Library Performance - 1.01}}</ref> | |||
Revision as of 16:50, 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, 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]
यह भी देखें
संदर्भ
- ↑ "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.