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

दशमलव128 दशमलव फ़्लोटिंग-पॉइंट कंप्यूटर नंबर प्रारूप है जो स्मृति में 128 बिट्स रखता है। आईईईई 754-2008 में औपचारिक रूप से पेश किया गया, यह उन अनुप्रयोगों के लिए है जहां दशमलव पूर्णांकन का बिल्कुल अनुकरण करना आवश्यक है, जैसे कि वित्तीय और कर गणना। रेफरी>

दशमलव128 महत्व के 34 दशमलव अंकों और −6143 से +6144 की घातांक सीमा का समर्थन करता है, यानी। ±0.000 000  000  000  000  000  000  000  000  000  000 को ±9.999  999  999  999  999  999  999  999  999  999  999. क्योंकि महत्व सामान्यीकृत नहीं है, 34 से कम महत्वपूर्ण अंकों वाले अधिकांश मूल्यों में कई संभावित प्रतिनिधित्व होते हैं; 1 × 102 =  0.1 × 103  =  0.01 × 104, आदि। शून्य के 12288 संभावित निरूपण हैं (नकारात्मक शून्य सहित 24576)।

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

बाइनरी पूर्णांक दशमलव (बीआईडी) के आधार पर प्रतिनिधित्व विधि में, महत्व को बाइनरी कोडित सकारात्मक पूर्णांक के रूप में दर्शाया जाता है।

अन्य, वैकल्पिक, प्रतिनिधित्व विधि अधिकांश महत्व (सबसे महत्वपूर्ण अंक को छोड़कर) के लिए सघन रूप से पैक दशमलव (डीपीडी) पर आधारित है।

दोनों विकल्प प्रतिनिधित्व योग्य संख्याओं की बिल्कुल समान श्रेणी प्रदान करते हैं: महत्व के 34 अंक और $3 × 2^{12} = 12,288$ संभावित घातांक मान।

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

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

बाइनरी पूर्णांक महत्व फ़ील्ड
यह प्रारूप 0 से लेकर बाइनरी महत्व का उपयोग करता है $10^{34} − 1$ = 9 999  999  999  999  999  999  999  999  999  999  999 = 1ED09BEAD87C0378D8E63FFFFFFFF16 = 0111 1011010000  1001101111  1010101101  1000011111  0000000011  0111100011  0110001110  0110001111  1111111111  1111111111  11111111112. एन्कोडिंग तक बाइनरी महत्व का प्रतिनिधित्व कर सकता है $10 × 2^{110} − 1$ = 12  980  742  146  337  069  071  326  240  823  050  239 लेकिन मान इससे बड़ा है $10^{34} − 1$ अवैध हैं (और इनपुट पर सामने आने पर मानक को उन्हें 0 के रूप में मानने के लिए कार्यान्वयन की आवश्यकता होती है)।

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

यदि साइन बिट के बाद के 2 बिट 00, 01, या 10 हैं, तो एक्सपोनेंट फ़ील्ड में साइन बिट के बाद 14 बिट्स होते हैं, और महत्व शेष 113 बिट है, जिसमें अंतर्निहित अग्रणी 0 बिट है: s 00eeeeeeeeeeee  (0)ttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt s 01eeeeeeeeeeee  (0)ttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt s 10eeeeeeeeeeee  (0)ttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt इसमें असामान्य संख्याएँ शामिल हैं जहाँ अग्रणी महत्व अंक 0 है।

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

s 1100eeeeeeeeeeee (100)t tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt s 1101eeeeeeeeeeee (100)t tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt s 1110eeeeeeeeeeee (100)t tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt tttttttttt

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

दशमलव128 प्रारूप के लिए, ये सभी महत्व वैध सीमा से बाहर हैं (वे इससे शुरू होते हैं) $2^{113} > 1.038 × 10^{34}$), और इस प्रकार शून्य के रूप में डिकोड किया जाता है, लेकिन पैटर्न दशमलव32 और दशमलव64 के समान है।

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


 * (−1)साइन×10प्रतिपादक−6176 × महत्व

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

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

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

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

इसके बाद के बारह बिट्स घातांक निरंतरता फील्ड हैं, जो घातांक के कम-महत्वपूर्ण बिट्स प्रदान करते हैं।

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

यदि साइन बिट के बाद पहले दो बिट्स 00, 01, या 10 हैं, तो वे घातांक के अग्रणी बिट्स हैं, और उसके बाद के तीन बिट्स को अग्रणी दशमलव अंक (0 से 7) के रूप में समझा जाता है: s 00 TTT (00)eeeeeeeeeeee (0TTT)[tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt] s 01 TTT (01)eeeeeeeeeeee (0TTT)[tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt] s 10 TTT (10)eeeeeeeeeeee (0TTT)[tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt] यदि साइन बिट के बाद पहले दो बिट्स 11 हैं, तो दूसरे दो बिट्स घातांक के अग्रणी बिट्स हैं, और अंतिम बिट को 100 के साथ उपसर्ग करके अग्रणी दशमलव अंक (8 या 9) बनाया जाता है: s 1100 T (00)eeeeeeeeeeee (100T)[tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt] s 1101 T (01)eeeeeeeeeeee (100T)[tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt] s 1110 T (10)eeeeeeeeeeee (100T)[tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt][tttttttttt] 5-बिट फ़ील्ड के शेष दो संयोजन (11110 और 11111)। क्रमशः ±अनंत और NaN का प्रतिनिधित्व करने के लिए उपयोग किया जाता है।

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

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

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


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

यह भी देखें

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