दशमलव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 बिट्स 0 से 7 (00002 से 01112), या उच्चतर (10002 या 10012) की सीमा में हैं।

यदि साइन बिट के बाद के 2 "00", "01" या "10" हैं, तो घातांक क्षेत्र में साइन बिट के बाद के $10 bits$ होते हैं, और महत्व शेष $53 bits$ होता है, जिसमें अंतर्निहित $0 bit$ होता है : इसमें असामान्य संख्याएँ सम्मिलित हैं जहाँ अग्रणी महत्वपूर्ण अंक 0 है।

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

महत्व क्षेत्र के अग्रणी बिट्स सबसे महत्वपूर्ण दशमलव अंक को एन्कोड नहीं करते हैं; वह बस एक बड़ी शुद्ध-बाइनरी संख्या का भाग हैं। उदाहरण के लिए, 8 000  000  000  000  000 का महत्व बाइनरी 0111  0001101011  1111010100  1001100011  0100000000  00000000002 के रूप में एन्कोड किया गया है, इस प्रकार जिसमें अग्रणी 4 बिट एन्कोडिंग 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 है, जैसा कि ऊपर वर्णित है:

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

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

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

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

यदि साइन बिट के बाद पहले दो बिट 00, 01, या 10 हैं, तो वह घातांक के अग्रणी बिट हैं, और उसके बाद के तीन बिट टीटीटी को अग्रणी दशमलव अंक (0 से 7) के रूप में समझा जाता है: यदि साइन बिट के बाद पहले दो बिट्स 11 हैं, तो दूसरे 2-बिट्स घातांक के अग्रणी बिट्स हैं, और अगले बिट t को प्रमुख दशमलव अंक (8 या 9) बनाने के लिए अंतर्निहित बिट्स 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}$$

यह भी देखें

 * ISO/IEC 10967, भाषा स्वतंत्र अंकगणित
 * मौलिक डेटा प्रकार
 * डी नोटेशन (वैज्ञानिक नोटेशन)