दशमलव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 का अंतर्निहित (अर्थात संग्रहीत नहीं) अग्रणी है।

S 1100EEEEE (100)T TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT S 1101EEEEE (100)T TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT S 1110EEEEE (100)T TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT

साइन बिट के पश्चात 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   ±infinity s 11111 0x...x   a quiet NaN s 11111 1x...x   a signalling 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] s 01 TTT (01)eeeeee (0TTT)[tttttttttt][tttttttttt]

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

s 1100 T (00)eeeeee (100T)[tttttttttt][tttttttttt] s 1101 T (01)eeeeee (100T)[tttttttttt][tttttttttt]

s 1110 T (10)eeeeee (100T)[tttttttttt][tttttttttt] बिट फ़ील्ड के शेष दो संयोजन (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}$$

यह भी देखें

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