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

From Vigyanwiki

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

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

दशमलव32 महत्व के 7 दशमलव अंकों और −95 से +96 की घातांक सीमा का समर्थन करता है, अर्ताथ ±0.000000×10^−95 से ±9.999999×10^96 समान रूप से, ±0000001×10^−101 को ±9999999×10^90) का समर्थन करता हैं। क्योंकि इसका महत्व सामान्यीकृत नहीं है, इसके लिए अंतर्निहित अग्रणी का मान 1 नहीं है, इसके अतिरिक्त 7 से कम महत्वपूर्ण अंकों वाले अधिकांश मानों में कई संभावित प्रतिनिधित्व होते हैं, इस प्रकार 1 × 102=0.1 × 103=0.01 × 104, आदि मान उपयोग में लाए जाते हैं। इसके लिए शून्य में 192 संभावित प्रतिनिधित्व करते हैं, इस प्रकार 384 जब दोनों हस्ताक्षरित शून्य सम्मिलित हैं।

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

दशमलव32 मानों का निरूपण

सामान्य एन्कोडिंग
संकेत संयोजन अनुगामी महत्व क्षेत्र
1 bit 11 bits 20 bits
s ggggggggggg tttttttttttttttttttt

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

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

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

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

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

संयोजन क्षेत्र की बीआईडी ​​एन्कोडिंग
संयोजन क्षेत्र MSBs of एलएसबी

के प्रतिपादक

विवरण
g10 g9 g8 g7 g6 g5 g4 g3 g2 g1 g0 प्रतिपादक महत्व
0 0 d e f g h i a b c 00 0abc defghi Finite number
full binary significand = 0abctttttttttttttttttttt
0 1 01
1 0 10
1 1 0 0 d e f g h i c 00 100c Finite number
full binary significand = 100ctttttttttttttttttttt
1 1 0 1 01
1 1 1 0 10
1 1 1 1 0 ±Infinity
1 1 1 1 1 NaN (with payload in Significand)
संयोजन क्षेत्र की डीपीडी एन्कोडिंग
संयोजन क्षेत्र MSBs of एलएसबी

के प्रतिपादक

सिग्निफ़िकैंड का नेतृत्व

दशमलव अंक

विवरण
g10 g9 g8 g7 g6 g5 g4 g3 g2 g1 g0 प्रतिपादक महत्व
0 0 a b c d e f g h i 00 0abc defghi 4*a + 2*b + c Finite number with
0 1 01
1 0 10
1 1 0 0 c 00 100c 8 + c Finite number with
1 1 0 1 01
1 1 1 0 10
1 1 1 1 0 ±Infinity
1 1 1 1 1 NaN (with payload in Significand)

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

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

±अनंत के लिए, साइन बिट के अलावा, शेष सभी बिट्स को नजरअंदाज कर दिया जाता है, अर्ताथ, घातांक और महत्व दोनों क्षेत्रों का कोई प्रभाव नहीं पड़ता है।

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

बाइनरी पूर्णांक महत्व फ़ील्ड

यह प्रारूप 0 से लेकर बाइनरी महत्व का उपयोग करता है, इस प्रकार 107 − 1 = 9999999 = 98967F16 = 1001100010010110011111112. की एन्कोडिंग तक बाइनरी 10 × 220 − 1 = 10485759 = 9FFFFF16 = 1001111111111111111111112, के महत्व का प्रतिनिधित्व कर सकता है, अपितु मान इससे बड़ा है, जिसका मान 107 − 1 के लिए अवैध हैं और इनपुट पर सामने आने पर मानक को उन्हें 0 के रूप में मानने के लिए कार्यान्वयन की आवश्यकता होती है।

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

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

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

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

यदि 2 bits साइन बिट 11 होने के पश्चात 8-बिट एक्सपोनेंट फ़ील्ड को स्थानांतरित कर दिया जाता है, इस प्रकार 2 bits दाईं ओर (साइन बिट और उसके बाद 11 बिट दोनों के बाद), और दर्शाया गया महत्व 21 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 बिट घातांक फ़ील्ड का भाग हैं।

महत्व क्षेत्र के अग्रणी बिट्स सबसे महत्वपूर्ण दशमलव अंक को एन्कोड नहीं करते हैं, वे बस बड़ी शुद्ध-बाइनरी संख्या का भाग हैं। उदाहरण के लिए, का महत्व 8000000 को बाइनरी 011110100001001000000000 के रूप में एन्कोड किया गया है, जिसके लिए इसके आगे लिखे हुए मान के साथ 4 bits एन्कोडिंग का मान 7 हैं, जिसका पहला महत्व इसके लिए 24वें बिट 223 = 8388608 की आवश्यकता होती है।

उपरोक्त स्थिति में, दर्शाया गया मान इस प्रकार है-

(−1)sign × 10exponent−101 × significand

यदि साइन बिट के बाद के चार बिट 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 बाइनरी बिट्स) के बीच है, और शेष महत्व सघन रूप से पैक दशमलव (डीपीडी) एन्कोडिंग का उपयोग करता है।

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

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

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

यदि साइन बिट के बाद पहले दो बिट्स 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 अंक हैं।

Densely packed decimal encoding rules[4]
DPD encoded value Decimal digits
Code space (1024 states) b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 d2 d1 d0 Values encoded Description Occurrences (1000 states)
50.0% (512 states) a b c d e f 0 g h i 0abc 0def 0ghi (0–7) (0–7) (0–7) Three small digits 51.2% (512 states)
37.5% (384 states) a b c d e f 1 0 0 i 0abc 0def 100i (0–7) (0–7) (8–9) Two small digits,
one large
38.4% (384 states)
a b c g h f 1 0 1 i 0abc 100f 0ghi (0–7) (8–9) (0–7)
g h c d e f 1 1 0 i 100c 0def 0ghi (8–9) (0–7) (0–7)
9.375% (96 states) g h c 0 0 f 1 1 1 i 100c 100f 0ghi (8–9) (8–9) (0–7) One small digit,
two large
9.6% (96 states)
d e c 0 1 f 1 1 1 i 100c 0def 100i (8–9) (0–7) (8–9)
a b c 1 0 f 1 1 1 i 0abc 100f 100i (0–7) (8–9) (8–9)
3.125% (32 states, 8 used) x x c 1 1 f 1 1 1 i 100c 100f 100i (8–9) (8–9) (8–9) Three large digits, bits b9 and b8 are don't care 0.8% (8 states)

8 दशमलव मान जिनके सभी अंक 8 या 9 हैं, उनमें से प्रत्येक में चार कोडिंग हैं।

उपरोक्त सूची में x चिह्नित बिट्स इनपुट पर ध्यान नहीं देते हैं, अपितु गणना किए गए परिणामों में सदैव 0 प्राप्त होंगे।

( इसका मान 8 × 3 = 24 गैर-मानक एन्कोडिंग बीच के अंतर को 103 = 1000 and 210 = 1024. भरते हैं।)

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

यह भी देखें

संदर्भ

  1. IEEE Computer Society (2008-08-29). फ़्लोटिंग-पॉइंट अंकगणित के लिए आईईईई मानक. IEEE. doi:10.1109/IEEESTD.2008.4610935. ISBN 978-0-7381-5753-5. IEEE Std 754-2008. Retrieved 2016-02-08.
  2. "आईएसओ/आईईसी/आईईईई 60559:2011". 2011. Retrieved 2016-02-08. {{cite journal}}: Cite journal requires |journal= (help)
  3. 3.0 3.1 Muller, Jean-Michel; Brisebarre, Nicolas; de Dinechin, Florent; Jeannerod, Claude-Pierre; Lefèvre, Vincent; Melquiond, Guillaume; Revol, Nathalie; Stehlé, Damien; Torres, Serge (2010). फ़्लोटिंग-पॉइंट अंकगणित की पुस्तिका (1 ed.). Birkhäuser. doi:10.1007/978-0-8176-4705-6. ISBN 978-0-8176-4704-9. LCCN 2009939668.
  4. Cowlishaw, Michael Frederic (2007-02-13) [2000-10-03]. "A Summary of Densely Packed Decimal encoding". IBM. Archived from the original on 2015-09-24. Retrieved 2016-02-07.