दशमलव128 फ़्लोटिंग-पॉइंट प्रारूप
Floating-point formats |
---|
IEEE 754 |
|
Other |
दशमलव128 दशमलव फ़्लोटिंग-पॉइंट कंप्यूटर नंबर प्रारूप है जो कंप्यूटर मेमोरी में 128 बिट का अवलोकन करता है। इसे आधिकारिक रूप से आईईईई 754-2008 में प्रस्तुत किया गया था,[1] इसका उद्देश्य वित्तीय और कर गणनाओं जैसे कार्यों में दशमलव गोलाई को त्रुटिहीन से अनुकरण करने की आवश्यकता होने पर है। Cowlishaw, Mike (2007). "दशमलव अंकगणित अक्सर पूछे जाने वाले प्रश्न - भाग 1 - सामान्य प्रश्न". speleotrove.com. IBM Corporation. Retrieved 2022-07-29.
दशमलव128 महत्व के 34 दशमलव अंकों का समर्थन करता है और घटाव का सीमा -6143 से +6144 तक का समर्थित होता है, अर्थात ±0.000000000000000000000000000000000×10 −6143 से ±9.999999999999999999999999999999999×10 6144तक। क्योंकि महत्व सामान्यीकृत नहीं होता है, तब 34 से कम महत्वपूर्ण अंकों वाले अधिकांश मूल्यों में कई संभावित प्रतिनिधित्व होते हैं; 1 × 102=0.1 × 103=0.01 × 104, आदि। शून्य के 12288 संभावित प्रतिनिधित्व होते हैं (ऋणात्मक शून्य सहित 24576)।
दशमलव128 मानों का निरूपण
संकेत | संयोजन | महत्वपूर्ण निरंतरता |
---|---|---|
1 बिट | 17 बिट्स | 110 बिट्स |
s | mmmmmmmmmmmmmmmmm | cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc |
आईईईई 754 दशमलव128 मानों के लिए दो वैकल्पिक प्रतिनिधित्व विधियों की अनुमति देता है। मानक यह निर्दिष्ट नहीं करता है कि यह कैसे संकेत किया जाए कि किस प्रतिनिधित्व का उपयोग किया जाता है, उदाहरण के लिए ऐसी स्थिति में जहां सिस्टम के बीच दशमलव128 मान संचारित होते हैं।
बाइनरी पूर्णांक दशमलव (बीआईडी) के आधार पर प्रतिनिधित्व विधि में, महत्व को बाइनरी कोडित धनात्मक पूर्णांक के रूप में दर्शाया जाता है।
अन्य, वैकल्पिक, प्रतिनिधित्व विधि अधिकांश महत्व (सबसे महत्वपूर्ण अंक को छोड़कर) के लिए सघन रूप से पैक दशमलव (डीपीडी) पर आधारित है।
दोनों विकल्प प्रतिनिधित्व योग्य संख्याओं की बिल्कुल समान श्रेणी प्रदान करते हैं: महत्व के 34 अंक और 3 × 212 = 12288 संभावित घातांक मान।
दोनों स्थितियों में, महत्व के सबसे महत्वपूर्ण 4 बिट्स (जिनमें वास्तव में केवल 10 संभावित मान होते हैं) को संयोजन फील्ड में 5 बिट्स के 32 संभावित मानों में से 30 का उपयोग करने के लिए घातांक के सबसे महत्वपूर्ण 2 बिट्स (3 संभावित मान) के साथ जोड़ा जाता है। बचे हुए कटिबद्धनें अनंतताओं NaNs को कोड करती हैं।
संयोजन फील्ड | प्रतिपादक | महत्वपूर्ण और एमएसबिट्स | अन्य |
---|---|---|---|
00mmmmmmmmmmmmmmm | 00xxxxxxxxxxxx | 0ccc | — |
01mmmmmmmmmmmmmmm | 01xxxxxxxxxxxx | 0ccc | — |
10mmmmmmmmmmmmmmm | 10xxxxxxxxxxxx | 0ccc | — |
1100mmmmmmmmmmmmm | 00xxxxxxxxxxxx | 100c | — |
1101mmmmmmmmmmmmm | 01xxxxxxxxxxxx | 100c | — |
1110mmmmmmmmmmmmm | 10xxxxxxxxxxxx | 100c | — |
11110mmmmmmmmmmmm | — | — | ±अनंत |
11111mmmmmmmmmmmm | — | — | NaN . संकेत बिट को नजरअंदाज कर दिया गया। संयोजन फील्ड का छठा बिट यह निर्धारित करता है कि NaN सिग्नलिंग कर रहा है या नहीं। |
अनंतता और NaN के स्थितियों में, एन्कोडिंग के अन्य सभी बिट्स को अनदेखा कर दिया जाता है। इस प्रकार, किसी सरणी को बाइट मान से भरकर अनंतताओं या NaNs के साथ प्रारम्भ किया जा सकता है।
बाइनरी पूर्णांक महत्व फ़ील्ड
यह प्रारूप 0 से 1034 − 1 से लेकर बाइनरी महत्व का उपयोग करता है, जिससे बड़े संख्याओं को निम्न रूप से प्रतिनिधित किया जा सकता है: 9999999999999999999999999999999999 = 1ED09BEAD87C0378D8E63FFFFFFFF16 =0111101101000010011011111010101101100001111100000000110111100011011000111001100011111111111111111111111111111111112.
एन्कोडिंग 10 × 2110 − 1 = 12980742146337069071326240823050239 तक बाइनरी महत्व का प्रतिनिधित्व कर सकता है, लेकिन 1034 − 1 से अधिक मानें अवैध होती हैं (और मानक कारण शृंखला इन्हें इम्प्लिमेंटेशन द्वारा 0 के रूप में व्यवहारित करने की आवश्यकता होती है, यदि इन्हें इनपुट पर प्राप्त किया जाए)।
जैसा कि ऊपर वर्णित किया गया है, कोडिंग उन उपयोगों के आधार पर भिन्न होती है, जिसमें अर्थविंश के सबसे महत्वपूर्ण 4 बिट 0 से 7 तक (00002 to 01112) हैं, या इससे अधिक (10002 or 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 प्रारूप के लिए, ये सभी महत्व वैध सीमा से बाहर हैं (वे 2113 > 1.038 × 1034 इससे प्रारंभ होते हैं), और इस प्रकार शून्य के रूप में डिकोड किया जाता है, लेकिन पैटर्न दशमलव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 बिट) को संकेत बिट का अनुसरण करने वाले पांच बिट्स में संयोजित किया जाता है।
इसके बाद के 12 बिट्स घातांक निरंतरता फील्ड होते हैं, जो घातांक के कम-महत्वपूर्ण बिट्स प्रदान करते हैं।
अंतिम 110 बिट महत्वपूर्ण निरंतरता फील्ड होते हैं, जिसमें ग्यारह 10-बिट डिक्लेट (कंप्यूटिंग) सम्मिलित हैं।[2] प्रत्येक दशमलवेंट में तीन दशमलव अंक को दशमलव (DPD) कोडिंग का उपयोग करके प्रतिनिधित किया जाता है।[2]
यदि संकेत बिट के बाद के पहले दो बिट "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 (Not a Number) को प्रतिनिधित करने के लिए किया जाता है।
दशमलवेंट के लिए 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 और 210 = 1024.)
उपरोक्त स्थितियों में, जहां सच्चा अर्थविंश दशमलव अंकों की श्रृंखला के रूप में डिकोड किया जाता है, प्रतिनिधित मूल्य होता है
यह भी देखें
- आईएसओ/आईईसी 10967, भाषा स्वतंत्र अंकगणित
- आदिम डेटा प्रकार
- क्यू संकेतन (वैज्ञानिक संकेतन)
संदर्भ
- ↑ IEEE Computer Society (2008-08-29). फ़्लोटिंग-पॉइंट अंकगणित के लिए आईईईई मानक. IEEE. doi:10.1109/IEEESTD.2008.4610935. ISBN 978-0-7381-5753-5. IEEE Std 754-2008.
- ↑ 2.0 2.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.