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

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

दशमलव32 महत्व के 7 दशमलव अंकों और −95 से +96 की घातांक सीमा का समर्थन करता है, यानी। ±0.000 000 से ±9.999  999. (समान रूप से, ±0 000  001 को ±9  999  999.) क्योंकि महत्व सामान्यीकृत नहीं है (कोई अंतर्निहित अग्रणी 1 नहीं है), 7 से कम महत्वपूर्ण अंकों वाले अधिकांश मानों में कई संभावित प्रतिनिधित्व होते हैं; 1 × 102  =  0.1 × 103  =  0.01 × 104, आदि। शून्य में 192 संभावित प्रतिनिधित्व हैं (384 जब दोनों हस्ताक्षरित शून्य शामिल हैं)।

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

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

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

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

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

दोनों एन्कोडिंग, बीआईडी ​​और डीपीडी में, 2 सबसे महत्वपूर्ण घातांक बिट्स और महत्व के 4 सबसे महत्वपूर्ण बिट्स को 5 बिट्स में संयोजित किया जाता है। संयोजन क्षेत्र में 5 बिट्स की स्थिति भिन्न होती है, लेकिन अन्यथा एन्कोडिंग समान होती है। 6 के बजाय 5 बिट्स पर्याप्त हैं, क्योंकि घातांक से 2 एमएसबी केवल 0 से 2 (3 संभावित मान) तक मानों को एन्कोड करते हैं, और महत्व के 4 एमएसबी 0 और 9 (10 संभावित मान) के बीच एक दशमलव अंक का प्रतिनिधित्व करते हैं। कुल मिलाकर हमारे पास है 3*10 = 30 एक एन्कोडिंग में संयुक्त होने पर संभावित मान, जिसे 5 बिट्स में दर्शाया जा सकता है ($11 bits$).

बीआईडी ​​एन्कोडिंग के लिए, पूर्ण बाइनरी महत्व अनुगामी महत्व क्षेत्र से बिट्स को महत्व के एमएसबी में जोड़कर प्राप्त किया जाता है, जैसा कि ऊपर बीआईडी ​​तालिका में दिखाया गया है। परिणामी महत्व 24 बिट्स का एक सकारात्मक बाइनरी पूर्णांक है, जिसे व्यक्तिगत दशमलव अंक प्राप्त करने के लिए बार-बार 10 से विभाजित करना पड़ता है।

डीपीडी एन्कोडिंग के लिए, ऊपर दी गई डीपीडी तालिका दिखाती है कि महत्व के एमएसबी से महत्व का अग्रणी दशमलव अंक कैसे प्राप्त किया जाए। अनुगामी महत्व और दशमलव अंक प्राप्त करने के लिए, महत्वपूर्ण अनुगामी क्षेत्र को डीपीडी नियमों के अनुसार डिकोड करना होगा (नीचे देखें)। पूर्ण दशमलव महत्व तब अग्रणी और अनुगामी दशमलव अंकों को जोड़कर प्राप्त किया जाता है।

±अनंत के लिए, साइन बिट के अलावा, शेष सभी बिट्स को नजरअंदाज कर दिया जाता है (यानी, घातांक और महत्व दोनों क्षेत्रों का कोई प्रभाव नहीं पड़ता है)। NaNs के लिए साइन बिट का मानक में कोई अर्थ नहीं है, और इसे अनदेखा कर दिया जाता है। इसलिए, हस्ताक्षरित और अहस्ताक्षरित NaN समतुल्य हैं, भले ही कुछ प्रोग्राम NaN को हस्ताक्षरित के रूप में दिखाएंगे। बिट g5 यह निर्धारित करता है कि NaN शांत है (0) या सिग्नलिंग (1)। महत्व के बिट्स NaN के पेलोड हैं और उपयोगकर्ता परिभाषित डेटा को पकड़ सकते हैं (उदाहरण के लिए, यह पहचानने के लिए कि NaN कैसे उत्पन्न हुए थे)। सामान्य महत्व की तरह, NaN का पेलोड या तो BID या DPD एन्कोडिंग में हो सकता है।

बाइनरी पूर्णांक महत्व फ़ील्ड
यह प्रारूप 0 से लेकर बाइनरी महत्व का उपयोग करता है $10^{7} − 1 = 9 999 999 = 98967F_{16} = 1001  1000100101  1001111111_{2}.$ एन्कोडिंग तक बाइनरी महत्व का प्रतिनिधित्व कर सकता है $10 × 2^{20} − 1 = 10 485 759 = 9FFFFF_{16} = 1001  1111111111  1111111111_{2},$ लेकिन मान इससे बड़ा है $10^{7} − 1$ अवैध हैं (और इनपुट पर सामने आने पर मानक को उन्हें 0 के रूप में मानने के लिए कार्यान्वयन की आवश्यकता होती है)।

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

यदि $20 bits$ साइन बिट 00, 01 , या 10 होने के बाद प्रतिपादक क्षेत्र में शामिल हैं $2^5=32$ साइन बिट का अनुसरण करते हुए, और महत्व शेष है $2 bits$, एक अंतर्निहित अग्रणी 0 बिट के साथ:

s 00eeeeee (0)tttt tttttttttttttttttt s 01eeeeee (0)tttt tttttttttttttttttt s 10eeeeee (0) ttt ttttttttttt tttttttttttttt

इसमें असामान्य संख्याएँ शामिल हैं जहाँ अग्रणी महत्व अंक 0 है।

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

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

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

महत्व क्षेत्र के अग्रणी बिट्स सबसे महत्वपूर्ण दशमलव अंक को एन्कोड नहीं करते हैं; वे बस एक बड़ी शुद्ध-बाइनरी संख्या का हिस्सा हैं। उदाहरण के लिए, का एक महत्व 8 000  000 को बाइनरी के रूप में एन्कोड किया गया है 0111  1010000100  1000000000, अग्रणी के साथ $2 bits$ एन्कोडिंग 7; पहला महत्व जिसके लिए 24वें बिट की आवश्यकता होती है $2^{23} = 8 388 608$

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



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

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

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

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

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

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

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

s 00 TTT (00)eeeeee (0TTT)[tttttttttt][tttttttttt] एस 01 टीटीटी (01)ईईईईईई (0टीटीटी)[ट्टट्टट्टट्ट][ट्टट्टट्टट्ट] एस 10 टीटीटी (10)ईईईईईई (0टीटीटी)[ट्टट्टट्टट्ट][ट्टट्टट्टट्ट]

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

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

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

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

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

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


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

यह भी देखें

 * वैज्ञानिक संकेतन