दशमलव32 फ़्लोटिंग-पॉइंट प्रारूप
Floating-point formats |
---|
IEEE 754 |
|
Other |
कम्प्यूटिंग में, दशमलव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 मानों का निरूपण
Sign | Combination | Trailing significand field |
---|---|---|
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 बिट्स में दर्शाया जा सकता है ().
Combination Field | MSBs of | LSBs of Exponent |
Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
g10 | g9 | g8 | g7 | g6 | g5 | g4 | g3 | g2 | g1 | g0 | Exponent | Significand | |||
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) |
Combination Field | MSBs of | LSBs of Exponent |
Significand's Leading Decimal Digit |
Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
g10 | g9 | g8 | g7 | g6 | g5 | g4 | g3 | g2 | g1 | g0 | Exponent | Significand | ||||
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 का एक अंतर्निहित (अर्थात संग्रहीत नहीं) अग्रणी है।
एस 1100ईईईईई (100)टी टीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटी एस 1101ईईईईईई (100)टी टीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटी एस 1110ईईईईई (100)टी टीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटीटी
साइन बिट के बाद 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 ±अनंत s 11111 0x...x एक शांत NaN s 11111 1x...x एक सिग्नलिंग 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] एस 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 अंक हैं।
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.)
उपरोक्त मामलों में, दशमलव अंकों के डिकोड किए गए अनुक्रम के वास्तविक महत्व के साथ, दर्शाया गया मान है
यह भी देखें
संदर्भ
- ↑ 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.
- ↑ "आईएसओ/आईईसी/आईईईई 60559:2011". 2011. Retrieved 2016-02-08.
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ 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.
- ↑ 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.