दशमलव64 फ़्लोटिंग-पॉइंट प्रारूप

कम्प्यूटिंग में, दशमलव 64 एक दशमलव फ़्लोटिंग-पॉइंट कंप्यूटर क्रमांकन प्रारूप है जो कंप्यूटर मेमोरी में 8 बाइट्स (64 बिट्स) रखता है। यह उन अनुप्रयोगों के लिए है जहां दशमलव पूर्णांक का सटीक अनुकरण करना आवश्यक है, जैसे कि वित्तीय और कर गणना।

दशमलव64 महत्व के 16 दशमलव अंकों और −383 से +384 की घातांक सीमा का समर्थन करता है, यानी। ±0.000 000  000  000  000 को ±9.999  999  999  999  999. (समान रूप से, ±0 000  000  000  000  000 को ±9  999  999  999  999  999.) इसके विपरीत, संबंधित बाइनरी प्रारूप, जो सबसे अधिक इस्तेमाल किया जाने वाला प्रकार है, की अनुमानित सीमा होती है ±0.000  000  000  000  001 को ±1.797  693  134  862  315. क्योंकि महत्व सामान्यीकृत नहीं है, 16 से कम महत्वपूर्ण अंकों वाले अधिकांश मूल्यों में कई संभावित प्रतिनिधित्व होते हैं; 1 × 102 =  0.1 × 103  =  0.01 × 104, आदि। शून्य में 768 संभावित प्रतिनिधित्व हैं (1536 यदि दोनों हस्ताक्षरित शून्य शामिल हैं)।

डेसीमल64 फ़्लोटिंग पॉइंट एक अपेक्षाकृत नया दशमलव फ़्लोटिंग-पॉइंट प्रारूप है, जिसे औपचारिक रूप से आईईईई 754-2008 में पेश किया गया है। आईईईई 754 के साथ-साथ आईएसओ/आईईसी/आईईईई 60559:2011 के साथ।

दशमलव64 मानों का निरूपण
आईईईई 754 दशमलव64 मानों के लिए दो वैकल्पिक प्रतिनिधित्व विधियों की अनुमति देता है। मानक यह निर्दिष्ट नहीं करता है कि यह कैसे दर्शाया जाए कि किस प्रतिनिधित्व का उपयोग किया जाता है, उदाहरण के लिए ऐसी स्थिति में जहां दशमलव 64 मान सिस्टम के बीच संप्रेषित होते हैं:


 * #बाइनरी पूर्णांक महत्व क्षेत्र में, 16-अंकीय महत्व को बाइनरी पूर्णांक दशमलव (बीआईडी) के आधार पर बाइनरी कोडित सकारात्मक पूर्णांक के रूप में दर्शाया जाता है।
 * # सघन रूप से पैक किए गए दशमलव महत्व क्षेत्र में, 16-अंकीय महत्व को दशमलव कोडित सकारात्मक पूर्णांक के रूप में दर्शाया जाता है, जो सघन रूप से पैक किए गए दशमलव (डीपीडी) पर आधारित होता है, जिसमें 3 अंकों के 5 समूह होते हैं (विशेष रूप से एन्कोड किए गए सबसे महत्वपूर्ण अंक को छोड़कर) प्रत्येक को डिकलेट्स (10-बिट अनुक्रम) में दर्शाया जाता है। यह काफी कुशल है, क्योंकि 210 = 1024, 0 से 999 तक की सभी संख्याओं को समाहित करने के लिए आवश्यकता से थोड़ा ही अधिक है।

दोनों विकल्प प्रतिनिधित्व योग्य संख्याओं की बिल्कुल समान श्रेणी प्रदान करते हैं: महत्व के 16 अंक और $3 × 2^{8} = 768$संभावित दशमलव घातांक मान। (बाइनरी64 संख्या में संग्रहीत सभी संभावित दशमलव घातांक मान दशमलव64 में दर्शाए जा सकते हैं, और बाइनरी64 के महत्व के अधिकांश बिट्स को महत्व में दशमलव अंकों की लगभग समान संख्या रखते हुए संग्रहीत किया जाता है।)

दोनों मामलों में, महत्व के सबसे महत्वपूर्ण 4 बिट्स (जिनमें वास्तव में केवल 10 संभावित मान हैं) को 5-बिट फ़ील्ड के 32 संभावित मानों में से 30 का उपयोग करने के लिए घातांक के सबसे महत्वपूर्ण 2 बिट्स (3 संभावित मान) के साथ जोड़ा जाता है। शेष संयोजन अनन्तता और NaNs को कूटबद्ध करते हैं।

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

बाइनरी पूर्णांक महत्व फ़ील्ड
यह प्रारूप 0 से लेकर बाइनरी महत्व का उपयोग करता है $10^{16} − 1 = 9 999 999  999  999  999 = 2386F26FC0FFFF_{16} = 1000  1110000110  1111001001  1011111100  0000111111  1111111111_{2}.$

एन्कोडिंग, पूरी तरह से 64 बिट्स पर संग्रहीत, तक बाइनरी महत्व का प्रतिनिधित्व कर सकती है $10 × 2^{50} − 1 = 11 258 999  068  426  239 = 27FFFFFFFFFFFF_{16},$ लेकिन मान इससे बड़ा है $10^{16} − 1$ अवैध हैं (और इनपुट पर सामने आने पर मानक को उन्हें 0 के रूप में मानने के लिए कार्यान्वयन की आवश्यकता होती है)।

जैसा कि ऊपर वर्णित है, एन्कोडिंग इस पर निर्भर करती है कि क्या सबसे महत्वपूर्ण है $4 bits$ का महत्व 0 से 7 (0000) के बीच है2 0111 पर2), या उच्चतर (10002 या 10012).

यदि साइन बिट के बाद 2 00, 01, या 10 हैं, तो घातांक फ़ील्ड में शामिल हैं $10 bits$ साइन बिट का अनुसरण करते हुए, और महत्व शेष है $53 bits$, एक अंतर्निहित अग्रणी के साथ $0 bit$:

एस 00ईईईईईईई (0)टीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटी s 01eeeeeeee (0)tttt tttttttttttttttttttttttttttttttttttttt एस 10ईईईईईईई (0)टीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटी इसमें असामान्य संख्याएँ शामिल हैं जहाँ अग्रणी महत्व अंक 0 है।

यदि $2 bits$ साइन बिट 11 होने के बाद, 10-बिट एक्सपोनेंट फ़ील्ड को स्थानांतरित कर दिया जाता है $2 bits$ दाईं ओर (साइन बिट और उसके बाद 11 बिट दोनों के बाद), और दर्शाया गया महत्व शेष में है $51 bits$. इस मामले में वास्तविक महत्व के अधिकांश बिट्स के लिए एक अंतर्निहित (अर्थात, संग्रहीत नहीं) अग्रणी 3-बिट अनुक्रम 100 है (महत्व के शेष निचले बिट्स ttt...ttt में, सभी संभावित मानों का उपयोग नहीं किया जाता है)।

एस 1100ईईईईईईई (100)टी टीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटी एस 1101ईईईईईईईई (100)टी टीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटी एस 1110ईईईईईईई (100)टी टीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटी

साइन बिट के बाद 2-बिट अनुक्रम 11 इंगित करता है कि महत्व के लिए एक अंतर्निहित 3-बिट उपसर्ग 100 है। बाइनरी प्रारूपों के लिए सामान्य मानों के महत्व में एक अंतर्निहित 1-बिट उपसर्ग 1 की तुलना करें। साइन बिट के बाद 2-बिट अनुक्रम 00, 01, या 10 घातांक फ़ील्ड का हिस्सा हैं।

महत्व क्षेत्र के अग्रणी बिट्स सबसे महत्वपूर्ण दशमलव अंक को एन्कोड नहीं करते हैं; वे बस एक बड़ी शुद्ध-बाइनरी संख्या का हिस्सा हैं। उदाहरण के लिए, का एक महत्व 8 000  000  000  000  000 को बाइनरी के रूप में एन्कोड किया गया है 0111  0001101011  1111010100  1001100011  0100000000  00000000002, अग्रणी के साथ $4 bits$ एन्कोडिंग 7; पहला महत्व जिसके लिए 54वें बिट की आवश्यकता है वह है $2^{53} = 9 007 199  254  740  992.$ उच्चतम वैध सार्थक है 9  999  999  999  999  999जिसकी बाइनरी एन्कोडिंग है (100)0 1110000110  1111001001  1011111100  0000111111  11111111112 (3 सबसे महत्वपूर्ण बिट्स (100) संग्रहीत नहीं हैं लेकिन ऊपर दिखाए गए अनुसार अंतर्निहित हैं; और वैध एन्कोडिंग में अगला बिट हमेशा शून्य होता है)।

उपरोक्त मामलों में, दर्शाया गया मान है



यदि साइन बिट के बाद के चार बिट 1111 हैं तो मान अनंत या NaN है, जैसा कि ऊपर वर्णित है:

s 11110 xx...x ±अनंत s 11111 0x...x एक शांत NaN s 11111 1x...x एक सिग्नलिंग NaN

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

सबसे आगे वाला $2 bits$ घातांक और अग्रणी अंक (3 या $4 bits$) महत्व को पांच बिट्स में संयोजित किया जाता है जो साइन बिट का अनुसरण करते हैं।

उसके बाद के आठ बिट्स घातांक निरंतरता क्षेत्र हैं, जो घातांक के कम-महत्वपूर्ण बिट्स प्रदान करते हैं।

अंतिम $50 bits$महत्वपूर्ण निरंतरता क्षेत्र हैं, जिसमें पांच 10-बिट डिकलेट (कंप्यूटिंग) शामिल हैं। प्रत्येक डिकलेट तीन दशमलव अंकों को कूटबद्ध करता है डीपीडी एन्कोडिंग का उपयोग करना।

यदि साइन बिट के बाद पहले दो बिट 00, 01, या 10 हैं, तो वे घातांक के अग्रणी बिट हैं, और उसके बाद के तीन बिट टीटीटी को अग्रणी दशमलव अंक (0 से 7) के रूप में समझा जाता है:

एस 00 टीटीटी (00)ईईईईईईईई (0टीटीटी)[ट्टट्टट्टट्ट][ट्टट्टट्ट][ट्टट्टट्टट्ट][ट्टट्टट्टट्ट][ट्टट्टट्टट्ट] एस 01 टीटीटी (01)ईईईईईईईईई (0टीटीटी)[ट्टट्टट्टट्ट][ट्टट्टट्ट][ट्टट्टट्टट्ट][ट्टट्टट्टट्ट][ट्टट्टट्टट्ट] एस 10 टीटीटी (10)ईईईईईईईई (0टीटीटी)[ट्टट्टट्टट्ट][ट्टट्टट्टट्ट][ट्टट्टट्टट्ट][ट्टट्टट्टट्ट][ट्टट्टट्टट्ट]

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

एस 1100 टी (00)ईईईईईईईई (100टी)[ट्टट्टट्टट्ट][ट्टट्टट्ट][ट्टट्टट्ट][ट्टट्टट्ट][ट्टट्टट्ट] एस 1101 टी (01)ईईईईईईईई (100टी)[ट्टट्टट्टट्ट][ट्टट्टट्ट][ट्टट्टट्ट][ट्टट्टट्ट][ट्टट्टट्ट] एस 1110 टी (10)ईईईईईईईई (100टी)[ट्टट्टट्टट्ट][ट्टट्टट्ट][ट्टट्टट्ट][ट्टट्टट्ट][ट्टट्टट्ट]

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

डिकलेट्स के लिए DPD/3BCD ट्रांसकोडिंग निम्न तालिका द्वारा दी गई है। b9...b0 DPD के बिट्स हैं, और d2...d0 तीन BCD अंक हैं।

8 दशमलव मान जिनके सभी अंक 8 या 9 हैं, उनमें से प्रत्येक में चार कोडिंग हैं। उपरोक्त तालिका में x चिह्नित बिट्स इनपुट पर ध्यान नहीं देते हैं, लेकिन गणना किए गए परिणामों में हमेशा 0 होंगे। ( वह $(−1)^{sign} × 10^{exponent−398} × significand$ गैर-मानक एन्कोडिंग बीच के अंतर को भरते हैं $8 × 3 = 24$)

उपरोक्त मामलों में, दशमलव अंकों के डिकोड किए गए अनुक्रम के वास्तविक महत्व के साथ, दर्शाया गया मान है


 * $$(-1)^\text{signbit}\times 10^{\text{exponentbits}_2-398_{10}}\times \text{truesignificand}_{10}$$

यह भी देखें

 * आईएसओ/आईईसी 10967, भाषा स्वतंत्र अंकगणित
 * आदिम डेटा प्रकार
 * डी संकेतन (वैज्ञानिक संकेतन)