आईबीएम हेक्साडेसिमल फ़्लोटिंग-पॉइंट: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{Short description|Number representation}}
{{Short description|Number representation}}
{{Floating-point}}
{{Floating-point}}
[[हेक्साडेसिमल]] [[फ़्लोटिंग-पॉइंट अंकगणित]] (जिसे अब [[आईबीएम]] द्वारा एचएफपी कहा जाता है) फ़्लोटिंग-पॉइंट संख्याओं को एन्कोड करने का प्रारूप है जिसे पहली बार आईबीएम आईबीएम सिस्टम/360|सिस्टम/360 कंप्यूटरों पर पेश किया गया था, और उस आर्किटेक्चर के आधार पर बाद की मशीनों पर समर्थित है,<ref>[http://www.bitsavers.org/pdf/ibm/360/princOps/A22-6821-6_360PrincOpsJan67.pdf ''IBM System/360 Principles of Operation''], IBM Publication A22-6821-6, Seventh Edition (January 13, 1967), pp.41-50</ref><ref>[http://www.bitsavers.org/pdf/ibm/370/princOps/GA22-7000-4_370_Principles_Of_Operation_Sep75.pdf ''IBM System/370 Principles of Operation''], IBM Publication GA22-7000-4, Fifth Edition (September 1, 1975), pp.157-170</ref><ref>[http://publibz.boulder.ibm.com/epubs/pdf/dz9zr001.pdf ''z/Architecture Principles of Operation''], IBM Publication SA22-7832-01, Second Edition (October, 2001), chapter 9 ff.</ref> साथ ही ऐसी मशीनें जिनका उद्देश्य सिस्टम/360 के साथ एप्लिकेशन-संगत होना था।<ref>{{cite book |last1=Xerox Data Systems |title=Xerox SIGMA 7 Computer Reference Manyal |date=Oct 1973 |page=48 |url=https://catalog.hathitrust.org/Record/000429866 |accessdate=Nov 13, 2020}}</ref><ref>{{cite book |last1=RCA |title=Spectra 70 processors: 35 45 55 |date=Mar 1966 |page=184 |url=http://bitsavers.org/pdf/rca/spectra70/model35_45_55/70-35-601_spectra70_35-55_Mar66.pdf |accessdate=Nov 13, 2020}}</ref>
'''[[हेक्साडेसिमल]] [[फ़्लोटिंग-पॉइंट अंकगणित]]''' जिसे [[आईबीएम]] द्वारा एचएफपी कहा जाता है, इन फ़्लोटिंग-पॉइंट संख्याओं को एन्कोड करने का प्रारूप है, जिसे पहली बार आईबीएम आईबीएम सिस्टम/360 या सिस्टम/360 कंप्यूटरों पर प्रस्तुत किया गया था, और उस आर्किटेक्चर के आधार पर बाद की मशीनों पर समर्थित है,<ref>[http://www.bitsavers.org/pdf/ibm/360/princOps/A22-6821-6_360PrincOpsJan67.pdf ''IBM System/360 Principles of Operation''], IBM Publication A22-6821-6, Seventh Edition (January 13, 1967), pp.41-50</ref><ref>[http://www.bitsavers.org/pdf/ibm/370/princOps/GA22-7000-4_370_Principles_Of_Operation_Sep75.pdf ''IBM System/370 Principles of Operation''], IBM Publication GA22-7000-4, Fifth Edition (September 1, 1975), pp.157-170</ref><ref>[http://publibz.boulder.ibm.com/epubs/pdf/dz9zr001.pdf ''z/Architecture Principles of Operation''], IBM Publication SA22-7832-01, Second Edition (October, 2001), chapter 9 ff.</ref> इसके साथ ही ऐसी मशीनें जिनका उद्देश्य सिस्टम/360 के साथ एप्लिकेशन-संगत होना था।<ref>{{cite book |last1=Xerox Data Systems |title=Xerox SIGMA 7 Computer Reference Manyal |date=Oct 1973 |page=48 |url=https://catalog.hathitrust.org/Record/000429866 |accessdate=Nov 13, 2020}}</ref><ref>{{cite book |last1=RCA |title=Spectra 70 processors: 35 45 55 |date=Mar 1966 |page=184 |url=http://bitsavers.org/pdf/rca/spectra70/model35_45_55/70-35-601_spectra70_35-55_Mar66.pdf |accessdate=Nov 13, 2020}}</ref>
[[आईईईई 754]] फ़्लोटिंग पॉइंट की तुलना में, एचएफपी प्रारूप का [[महत्व]] लंबा है, और एक्सपोनेंटिएशन छोटा है। सभी एचएफपी प्रारूपों में 64 के [[घातांक]] पूर्वाग्रह के साथ घातांक के 7 बिट हैं। प्रतिनिधित्व योग्य संख्याओं की सामान्यीकृत सीमा 16 से है<sup>−65</sup>से 16<sup>63</sup> (लगभग 5.39761 × 10<sup>−79</sup>से 7.237005 × 10<sup>75</sup>).


संख्या को निम्नलिखित सूत्र के रूप में दर्शाया गया है: (−1)<sup>चिन्ह</sup>× 0.<small>significand</small> × 16<sup>प्रतिपादक−64</sup>.
[[आईईईई 754]] फ़्लोटिंग पॉइंट की तुलना में, एचएफपी प्रारूप का [[महत्व]] लंबा है, और एक्सपोनेंटिएशन छोटा है। इस प्रकार की सभी एचएफपी प्रारूपों में 64 के [[घातांक]] पूर्वाग्रह के साथ घातांक के 7 बिट हैं। इस प्रतिनिधित्व में योग्य संख्याओं की सामान्यीकृत सीमा 16<sup>−65</sup>से 16<sup>63</sup> (लगभग 5.39761 × 10<sup>−79</sup> से 7.237005 × 10<sup>75</sup>) तक है।
 
इन संख्या को निम्नलिखित सूत्र के रूप में दर्शाया गया है: (−1)<sup>sign</sup> × 0.<small>significand</small> × 16<sup>exponent−64</sup>


== एकल-परिशुद्धता 32-बिट ==
== एकल-परिशुद्धता 32-बिट ==
एक [[एकल परिशुद्धता]]|एकल-परिशुद्धता एचएफपी संख्या (जिसे आईबीएम द्वारा संक्षिप्त कहा जाता है) को 32-बिट शब्द में संग्रहीत किया जाता है:
एक [[एकल परिशुद्धता]] या एकल-परिशुद्धता एचएफपी संख्या, जिसे आईबीएम द्वारा संक्षिप्त कहा जाता है, इनको 32-बिट वाले शब्दों में संग्रहीत किया जाता है:


:{|
:{|
Line 34: Line 35:
|align="left"|''(bit index)''*
|align="left"|''(bit index)''*
|-
|-
|colspan="8"| ''* IBM documentation numbers the bits from left to right, so that the most significant bit is designated as bit number 0.''
|colspan="8"| ''* आईबीएम डाॅक्यूमेंटेशन बिट्स को बाएं से दाएं तक क्रमांकित करता है, जिससे कि सबसे महत्वपूर्ण बिट को बिट संख्या 0 के रूप में निर्दिष्ट किया जा सके।''
|}
|}
इस प्रारूप में प्रारंभिक बिट को दबाया नहीं जाता है, और
इस प्रारूप में प्रारंभिक बिट को दबाया नहीं जाता है, और मूलांक (हेक्साडेसिमल) बिंदु को आईबीएम डाॅक्यूमेंट और आंकड़ों में अंश के महत्व के बाईं ओर स्थिति किया गया है।
मूलांक (हेक्साडेसिमल) बिंदु महत्व के बाईं ओर सेट है (आईबीएम दस्तावेज़ और आंकड़ों में अंश)।


चूँकि आधार 16 है, इस रूप में घातांक आईईईई 754 के समतुल्य से लगभग दोगुना बड़ा है, बाइनरी में समान घातांक सीमा रखने के लिए, 9 घातांक बिट्स की आवश्यकता होगी।
चूँकि आधार 16 है, इस रूप में घातांक आईईईई 754 के समतुल्य से लगभग दोगुना बड़ा है, इस प्रकार बाइनरी में समान घातांक सीमा रखने के लिए 9 घातांक बिट्स की आवश्यकता होगी।


=== उदाहरण ===
=== उदाहरण ===
मान -118.625 को एचएफपी एकल-परिशुद्धता फ़्लोटिंग-पॉइंट मान के रूप में एन्कोड करने पर विचार करें।
मान -118.625 को एचएफपी एकल-परिशुद्धता फ़्लोटिंग-पॉइंट मान के रूप में एन्कोड करने पर विचार करें।


मान ऋणात्मक है, इसलिए साइन बिट 1 है।
यह मान ऋणात्मक है, इसलिए साइन बिट 1 है।


मान 118.625<sub>10</sub> बाइनरी में 1110110.101 है<sub>2</sub>. यह मान मूलांक बिंदु को समय में चार बिट्स (एक हेक्साडेसिमल अंक) के बाईं ओर ले जाकर सामान्यीकृत किया जाता है जब तक कि सबसे बायां अंक शून्य न हो जाए, जिससे 0.01110110101 प्राप्त होता है<sub>2</sub>. शेष सबसे दाहिने अंक शून्य से भरे हुए हैं, जिससे .0111 0110 1010 0000 0000 0000 का 24-बिट अंश प्राप्त होता है<sub>2</sub>.
मान 118.625<sub>10</sub> बाइनरी में (1110110.101)<sub>2</sub> है, यह मान मूलांक बिंदु को समय में चार बिट्स (एक हेक्साडेसिमल अंक) के बाईं ओर ले जाकर सामान्यीकृत किया जाता है, जब तक कि सबसे बायां अंक शून्य न हो जाए, जिससे (0.01110110101)<sub>2</sub> प्राप्त होता है, जिसे शेष सबसे दाहिने अंक शून्य से भरे हुए हैं, जिससे (.0111 0110 1010 0000 0000 0000)<sub>2</sub> का 24-बिट अंश प्राप्त होता है।


सामान्यीकृत मान ने मूलांक बिंदु को दो हेक्साडेसिमल अंकों को बाईं ओर ले जाया, जिससे 16 का गुणक और घातांक प्राप्त हुआ<sup>+2</sup>. घातांक (+2) में +64 का पूर्वाग्रह जोड़ा जाता है, जिससे +66 प्राप्त होता है, जो 100 0010 है<sub>2</sub>.
सामान्यीकृत मान ने मूलांक बिंदु को दो हेक्साडेसिमल अंकों को बाईं ओर ले जाया, जिससे 16<sup>+2</sup> का गुणक और घातांक प्राप्त होता हैं। जिसके लिए घातांक (+2) में +64 का पूर्वाग्रह जोड़ा जाता है, जिससे +66 प्राप्त होता है, जिसका मान (100 0010)<sub>2</sub> है.


चिह्न, घातांक प्लस पूर्वाग्रह और सामान्यीकृत अंश का संयोजन इस एन्कोडिंग का उत्पादन करता है:
चिह्न, घातांक प्लस पूर्वाग्रह और सामान्यीकृत अंश का संयोजन इस एन्कोडिंग का उत्पादन करता है:
Line 64: Line 64:
|style="text-align:center;background-color:#FFF"|&nbsp;
|style="text-align:center;background-color:#FFF"|&nbsp;
|}
|}
दूसरे शब्दों में, प्रदर्शित संख्या −0.76A000 है<sub>16</sub> × 16<sup>66 − 64</sup> = −0.4633789… × 16<sup>+2</sup> = −118.625
दूसरे शब्दों में, प्रदर्शित संख्या −0.76A000<sub>16</sub> × 16<sup>66 − 64</sup> = −0.4633789… × 16<sup>+2</sup> = −118.625 है।


=== सबसे बड़ी प्रतिनिधित्व योग्य संख्या ===
=== सबसे बड़ी प्रतिनिधित्व योग्य संख्या ===
Line 79: Line 79:
|style="text-align:center;background-color:#FFF"|&nbsp;
|style="text-align:center;background-color:#FFF"|&nbsp;
|}
|}
प्रदर्शित संख्या +0.FFFFFF है<sub>16</sub> × 16<sup>127 − 64</sup> = (1 − 16<sup>−6</sup>) × 16<sup>63</sup> ≈ +7.2370051 × 10<sup>75</sup>
प्रदर्शित संख्या +0.FFFFFF<sub>16</sub> × 16<sup>127 − 64</sup> = (1 − 16<sup>−6</sup>) × 16<sup>63</sup> ≈ +7.2370051 × 10<sup>75</sup> है।


=== सबसे छोटी सकारात्मक सामान्यीकृत संख्या ===
=== सबसे छोटी धनात्मक सामान्यीकृत संख्या ===
:{|
:{|
|- style="text-align:center"
|- style="text-align:center"
Line 94: Line 94:
|style="text-align:center;background-color:#FFF"|&nbsp;
|style="text-align:center;background-color:#FFF"|&nbsp;
|}
|}
दर्शाई गई संख्या +0.1 है<sub>16</sub> × 16<sup> − 64 = 16<sup>−1</sup>×16<sup>−64</sup> ≈ +5.397605 × 10<sup>−79</sup>.
दर्शाई गई संख्या +0.1<sub>16</sub> × 16<sup> − 64 = 16<sup>−1×16<sup>−64 ≈ +5.397605 × 10<sup>−79 है।


=== शून्य ===
=== शून्य ===
Line 109: Line 109:
|style="text-align:center;background-color:#FFF"|&nbsp;
|style="text-align:center;background-color:#FFF"|&nbsp;
|}
|}
शून्य (0.0) को सभी शून्य बिट्स के रूप में सामान्यीकृत रूप में दर्शाया जाता है, जो अंकगणितीय रूप से मान +0.0 है<sub>16</sub> × 16<sup> − 64</sup> = +0 × 16<sup>−64</sup> ≈ +0.000000 × 10<sup>−79</sup> = 0. ऑल-बिट्स शून्य के अंश को देखते हुए, सकारात्मक या नकारात्मक साइन बिट और गैर-शून्य पक्षपाती घातांक का कोई भी संयोजन अंकगणितीय रूप से शून्य के बराबर मान प्राप्त करेगा। हालाँकि, सीपीयू हार्डवेयर द्वारा शून्य के लिए उत्पन्न सामान्यीकृत रूप सभी-बिट्स शून्य है। यह तीनों फ़्लोटिंग-पॉइंट सटीक प्रारूपों के लिए सत्य है। अन्य घातांक मानों के साथ जोड़ या घटाव परिणाम में सटीकता खो सकता है।
शून्य (0.0) को सभी शून्य बिट्स के रूप में सामान्यीकृत रूप में दर्शाया जाता है, जो अंकगणितीय रूप से मान +0.0<sub>16</sub> × 16<sup> − 64</sup> = +0 × 16<sup>−64</sup> ≈ +0.000000 × 10<sup>−79</sup> = 0 है। इस प्रकार की ऑल-बिट्स शून्य के अंश को देखते हुए धनात्मक या ऋणात्मक साइन बिट और गैर-शून्य पक्षपाती घातांक का कोई भी संयोजन अंकगणितीय रूप से शून्य के बराबर मान प्राप्त करेगा। चूंकि सीपीयू हार्डवेयर द्वारा शून्य के लिए उत्पन्न सामान्यीकृत रूप सभी-बिट्स शून्य है। यह तीनों फ़्लोटिंग-पॉइंट सटीक प्रारूपों के लिए सत्य है। अन्य घातांक मानों के साथ जोड़ या घटाव परिणाम में सटीकता खो सकता है।


== परिशुद्धता मुद्दे ==
== परिशुद्धता मुद्दे ==
चूँकि आधार 16 है, बाइनरी महत्व में अधिकतम तीन अग्रणी शून्य बिट हो सकते हैं। इसका मतलब है कि जब संख्या को बाइनरी में परिवर्तित किया जाता है, तो सटीकता के कम से कम 21 बिट हो सकते हैं। डगमगाते परिशुद्धता प्रभाव के कारण, इसके कारण कुछ गणनाएँ बहुत ग़लत हो सकती हैं। इसकी काफी आलोचना हुई.<ref name="Warren_2013">{{cite book |title=हैकर की प्रसन्नता|title-link=हैकर की प्रसन्नता|author-first=Henry S. |author-last=Warren Jr. |date=2013 |orig-year=2002 |edition=2 |chapter=The Distribution of Leading Digits|publisher=[[Addison Wesley]] - [[Pearson Education, Inc.]] |isbn=978-0-321-84268-8 |id=0-321-84268-5 |pages=385–387}}</ref>
चूँकि आधार 16 है, बाइनरी महत्व में अधिकतम तीन अग्रणी शून्य बिट हो सकते हैं। इसका अर्थ है कि जब संख्या को बाइनरी में परिवर्तित किया जाता है, तो सटीकता के कम से कम 21 बिट हो सकते हैं। इस प्रकार की त्रुटि पूर्ण परिशुद्धता के प्रभाव के कारण, इसके कारण कुछ गणनाएँ बहुत ग़लत हो सकती हैं। इसकी अत्यधिक आलोचना हुई हैं।<ref name="Warren_2013">{{cite book |title=हैकर की प्रसन्नता|title-link=हैकर की प्रसन्नता|author-first=Henry S. |author-last=Warren Jr. |date=2013 |orig-year=2002 |edition=2 |chapter=The Distribution of Leading Digits|publisher=[[Addison Wesley]] - [[Pearson Education, Inc.]] |isbn=978-0-321-84268-8 |id=0-321-84268-5 |pages=385–387}}</ref>


अशुद्धि का अच्छा उदाहरण दशमलव मान 0.1 का प्रतिनिधित्व है। इसका कोई सटीक बाइनरी या हेक्साडेसिमल प्रतिनिधित्व नहीं है। हेक्साडेसिमल प्रारूप में, इसे 0.19999999 के रूप में दर्शाया गया है...<sub>16</sub> या 0.0001 1001 1001 1001 1001 1001 1001...<sub>2</sub>, वह है:
अशुद्धि का अच्छा उदाहरण दशमलव मान 0.1 का प्रतिनिधित्व है। इसका कोई सटीक बाइनरी या हेक्साडेसिमल प्रतिनिधित्व नहीं है। हेक्साडेसिमल प्रारूप में, इसे 0.19999999...<sub>16</sub> या 0.0001 1001 1001 1001 1001 1001 1001...<sub>2</sub> के रूप में दर्शाया गया है, यह इस प्रकार हैं:


:{|
:{|
Line 130: Line 130:
इसमें केवल 21 बिट्स हैं, जबकि बाइनरी संस्करण में 24 बिट्स परिशुद्धता है।
इसमें केवल 21 बिट्स हैं, जबकि बाइनरी संस्करण में 24 बिट्स परिशुद्धता है।


परिशुद्धता के छह हेक्साडेसिमल अंक लगभग छह दशमलव अंकों के बराबर हैं (यानी (6 - 1) लॉग<sub>10</sub>(16) ≈ 6.02). एकल परिशुद्धता हेक्साडेसिमल फ्लोट को दशमलव स्ट्रिंग में बदलने के लिए कम से कम 9 महत्वपूर्ण अंकों (यानी 6 लॉग) की आवश्यकता होगी<sub>10</sub>(16) + 1 ≈ 8.22) वापस उसी हेक्साडेसिमल फ्लोट मान में परिवर्तित करने के लिए।
परिशुद्धता के छह हेक्साडेसिमल अंक लगभग छह दशमलव अंकों के समान हैं, अर्ताथ (6 - 1) Log<sub>10</sub>(16) ≈ 6.02) के समान हैं। इस प्रकार की एकल परिशुद्धता हेक्साडेसिमल फ्लोट को दशमलव स्ट्रिंग में परिवर्तित करने के लिए कम से कम 9 महत्वपूर्ण अंकों के लिए अर्ताथ 6 Log<sub>10</sub>(16) + 1 ≈ 8.22) की आवश्यकता होगी वापस उसी हेक्साडेसिमल फ्लोट मान में परिवर्तित करने के लिए आवश्यक हैं।


== डबल-सटीक 64-बिट ==
== डबल-सटीक 64-बिट ==
[[ दोहरी सुनिश्चितता ]]|डबल-प्रिसिजन एचएफपी प्रारूप (आईबीएम द्वारा लॉन्ग कहा जाता है) लघु प्रारूप के समान है, सिवाय इसके कि अंश क्षेत्र व्यापक है और डबल-प्रिसिजन संख्या डबल शब्द (8 बाइट्स) में संग्रहीत है:
[[ दोहरी सुनिश्चितता |दोहरी सुनिश्चितता]] या डबल-प्रिसिजन एचएफपी प्रारूप के लिए आईबीएम द्वारा लॉन्ग कहा जाता है, इस प्रकार लघु प्रारूप के समान है, इसके अतिरिक्त इसके कि अंश क्षेत्र व्यापक है, और डबल-प्रिसिजन संख्या डबल शब्द (8 बाइट्स) में संग्रहीत है:


:{|
:{|
Line 160: Line 160:
|align="left"|''(bit index)''*
|align="left"|''(bit index)''*
|-
|-
|colspan="8"| ''* IBM documentation numbers the bits from left to right, so that the most significant bit is designated as bit number 0.''
|colspan="8"| ''* आईबीएम डाॅक्यूमेंटेशन बिट्स को बाएं से दाएं तक क्रमांकित करता है, जिससे कि सबसे महत्वपूर्ण बिट को बिट संख्या 0 के रूप में निर्दिष्ट किया जा सके।''
|}
|}
इस प्रारूप का प्रतिपादक संबंधित आईईईई बाइनरी प्रारूप के रूप में केवल चौथाई रेंज को कवर करता है।
इस प्रारूप का प्रतिपादक संबंधित आईईईई बाइनरी प्रारूप के रूप में केवल चौथाई सीमा को कवर करता है।


परिशुद्धता के 14 हेक्साडेसिमल अंक लगभग 17 दशमलव अंकों के बराबर हैं। डबल प्रिसिजन हेक्साडेसिमल फ्लोट को दशमलव स्ट्रिंग में बदलने के लिए वापस उसी हेक्साडेसिमल फ्लोट मान में बदलने के लिए कम से कम 18 महत्वपूर्ण अंकों की आवश्यकता होगी।
परिशुद्धता के 14 हेक्साडेसिमल अंक लगभग 17 दशमलव अंकों के समान हैं। इसके लिए डबल प्रिसिजन हेक्साडेसिमल फ्लोट को दशमलव स्ट्रिंग में बदलने के लिए वापस उसी हेक्साडेसिमल फ्लोट मान में परिवर्तित करने के लिए कम से कम 18 महत्वपूर्ण अंकों की आवश्यकता होगी।


==विस्तारित-परिशुद्धता 128-बिट ==
==विस्तारित-परिशुद्धता 128-बिट ==
आईबीएम द्वारा विस्तारित-परिशुद्धता कहा जाता है, [[चौगुनी परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप]] | चौगुनी-परिशुद्धता एचएफपी प्रारूप को सिस्टम/370 श्रृंखला में जोड़ा गया था और कुछ एस/360 मॉडल (एस/360-85, -195, और अन्य विशेष अनुरोध पर या ओएस सॉफ्टवेयर द्वारा सिम्युलेटेड) पर उपलब्ध था। विस्तारित-सटीक अंश फ़ील्ड व्यापक है, और विस्तारित-सटीक संख्या को दो दोहरे शब्दों (16 बाइट्स) के रूप में संग्रहीत किया जाता है:
आईबीएम द्वारा विस्तारित-परिशुद्धता कहा जाता है, यह [[चौगुनी परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप]] या चौगुनी-परिशुद्धता एचएफपी प्रारूप को सिस्टम/370 श्रृंखला में जोड़ा गया था और कुछ एस/360 मॉडल (एस/360-85, -195, और अन्य विशेष अनुरोध पर या ओएस सॉफ्टवेयर द्वारा सिम्युलेटेड) पर उपलब्ध था। इसके कारण विस्तारित होने वाले सटीक अंश क्षेत्र के लिए व्यापक है, और विस्तारित-सटीक संख्या को दो दोहरे शब्दों (16 बाइट्स) के रूप में संग्रहीत किया जाता है:


:{|
:{|
Line 216: Line 216:
|align="left"|''(bit index)''*
|align="left"|''(bit index)''*
|-
|-
|colspan="8"| ''* IBM documentation numbers the bits from left to right, so that the most significant bit is designated as bit number 0.''
|colspan="8"| ''* आईबीएम डाॅक्यूमेंटेशन बिट्स को बाएं से दाएं तक क्रमांकित करता है, ताकि सबसे महत्वपूर्ण बिट को बिट संख्या 0 के रूप में निर्दिष्ट किया जा सके।''
|}
|}
परिशुद्धता के 28 हेक्साडेसिमल अंक लगभग 32 दशमलव अंकों के बराबर हैं। विस्तारित परिशुद्धता एचएफपी को दशमलव स्ट्रिंग में बदलने के लिए उसी एचएफपी मान में वापस बदलने के लिए कम से कम 35 महत्वपूर्ण अंकों की आवश्यकता होगी। निम्न-क्रम वाले भाग में संग्रहीत घातांक उच्च-क्रम वाले भाग से 14 कम है, जब तक कि यह शून्य से कम न हो।
परिशुद्धता के 28 हेक्साडेसिमल अंक लगभग 32 दशमलव अंकों के समान हैं। इसके विस्तारित परिशुद्धता एचएफपी को दशमलव स्ट्रिंग में परिवर्तित करने के लिए उसी एचएफपी मान में वापस परिवर्तित करने के लिए कम से कम 35 महत्वपूर्ण अंकों की आवश्यकता होगी। इस प्रकार के निम्न-क्रम वाले भाग में संग्रहीत घातांक उच्च-क्रम वाले भाग से 14 कम है, जब तक कि यह शून्य से कम न हो।


== अंकगणितीय परिचालन ==
== अंकगणितीय परिचालन ==
उपलब्ध अंकगणितीय परिचालन जोड़ और घटाव, सामान्यीकृत और असामान्यीकृत दोनों हैं, और तुलना करते हैं। घातांक अंतर के आधार पर पूर्वसामान्यीकरण किया जाता है। पूर्व-सामान्यीकृत असामान्य मानों को गुणा और विभाजित करें, और परिणाम को गार्ड अंक के बाद छोटा करें। दो से भाग को सरल बनाने के लिए आधा ऑपरेशन है। ईएसए/390 से शुरू होकर, वर्गमूल ऑपरेशन होता है। सटीक हानि से बचने के लिए सभी ऑपरेशनों में हेक्साडेसिमल गार्ड अंक होता है। अधिकांश अंकगणितीय ऑपरेशन साधारण पॉकेट कैलकुलेटर की तरह छोटे-छोटे होते हैं। इसलिए, 1 − 16<sup>−8</sup> = 1. इस मामले में, परिणाम शून्य से पूर्णांकित है।<ref>[http://public.dhe.ibm.com/software/websphere/awdtools/hlasm/sh93fpov.pdf ESA/390 Enhanced Floating Point Support: An Overview]</ref>
उपलब्ध अंकगणितीय परिचालन जोड़ और घटाव, सामान्यीकृत और असामान्यीकृत दोनों हैं और इसकी तुलना करते हैं। इस प्रकार घातांक अंतर के आधार पर पूर्वसामान्यीकरण किया जाता है। इसके कारण पूर्व-सामान्यीकृत असामान्य मानों को गुणा और विभाजित करें, और प्राप्त होने वाले परिणाम को गार्ड अंक के बाद छोटा करें। इस प्रकार दो से भाग को सरल बनाने के लिए आधा ऑपरेशन है। जिसके लिए ईएसए/390 से प्रारंभ होकर, वर्गमूल प्रक्रिया को प्रारंभ करता है। इस प्रकार की सटीक हानि से बचने के लिए सभी ऑपरेशनों में हेक्साडेसिमल गार्ड अंक होता है। इसके अधिकांश अंकगणितीय ऑपरेशन साधारण पॉकेट कैलकुलेटर की तरह छोटे-छोटे होते हैं। इसलिए, 1 − 16<sup>−8</sup> = 1 की स्थिति में, परिणाम शून्य से पूर्णांकित है।<ref>[http://public.dhe.ibm.com/software/websphere/awdtools/hlasm/sh93fpov.pdf ESA/390 Enhanced Floating Point Support: An Overview]</ref>
== आईबीएम मेनफ्रेम पर आईईईई 754 ==
== आईबीएम मेनफ्रेम पर आईईईई 754 ==
1998 में S/390 G5 से शुरुआत,<ref>{{Cite journal |last1=Schwarz |first1=E. M. |last2=Krygowski |first2=C. A. |doi=10.1147/rd.435.0707 |title=The S/390 G5 floating-point unit |journal=[[IBM Journal of Research and Development]] |volume=43 |issue=5.6 |pages=707–721 |date=September 1999}}</ref> आईबीएम मेनफ्रेम में आईईईई बाइनरी फ़्लोटिंग-पॉइंट इकाइयां भी शामिल हैं जो फ़्लोटिंग-पॉइंट अंकगणित के लिए आईईईई 754|आईईईई 754 मानक के अनुरूप हैं। IEEE दशमलव फ़्लोटिंग-पॉइंट को IBM सिस्टम z9 GA2 में जोड़ा गया था<ref>{{Cite journal |last1=Duale |first1=A. Y. |last2=Decker |first2=M. H. |last3=Zipperer |first3=H.-G. |last4=Aharoni |first4=M. |last5=Bohizic |first5=T. J. |title=Decimal floating-point in z9: An implementation and testing perspective |doi=10.1147/rd.511.0217 |journal=[[IBM Journal of Research and Development]] |volume=51 |issue=1.2 |pages=217–227 |date=January 2007 |citeseerx=10.1.1.123.9055}}</ref> 2007 में [[ millicode |millicode]] का उपयोग करके<ref>{{Cite journal |last1=Heller |first1=L. C. |last2=Farrell |first2=M. S. |doi=10.1147/rd.483.0425 |title=IBM zSeries प्रोसेसर में मिलिकोड|journal=[[IBM Journal of Research and Development]] |volume=48 |issue=3.4 |pages=425–434 |date=May 2004 |citeseerx=10.1.1.641.1164}}</ref> और 2008 में हार्डवेयर में [[IBM System z10]] तक।<ref>{{Cite journal |last1=Schwarz |first1=E. M. |last2=Kapernick |first2=J. S. |last3=Cowlishaw |first3=M. F. |title=IBM System z10 प्रोसेसर पर दशमलव फ़्लोटिंग-पॉइंट समर्थन|doi=10.1147/JRD.2009.5388585 |journal=[[IBM Journal of Research and Development]] |volume=53 |issue=1 |pages=4:1–4:10 |date=January 2009}}</ref>
1998 में S/390 G5 से प्रारंभ<ref>{{Cite journal |last1=Schwarz |first1=E. M. |last2=Krygowski |first2=C. A. |doi=10.1147/rd.435.0707 |title=The S/390 G5 floating-point unit |journal=[[IBM Journal of Research and Development]] |volume=43 |issue=5.6 |pages=707–721 |date=September 1999}}</ref> आईबीएम मेनफ्रेम में आईईईई बाइनरी फ़्लोटिंग-पॉइंट इकाइयां भी उपस्थित हैं जो फ़्लोटिंग-पॉइंट अंकगणित के लिए आईईईई 754 या आईईईई 754 मानक के अनुरूप हैं। इस प्रकार IEEE दशमलव फ़्लोटिंग-पॉइंट को IBM सिस्टम z9 GA2 में जोड़ा गया था,<ref>{{Cite journal |last1=Duale |first1=A. Y. |last2=Decker |first2=M. H. |last3=Zipperer |first3=H.-G. |last4=Aharoni |first4=M. |last5=Bohizic |first5=T. J. |title=Decimal floating-point in z9: An implementation and testing perspective |doi=10.1147/rd.511.0217 |journal=[[IBM Journal of Research and Development]] |volume=51 |issue=1.2 |pages=217–227 |date=January 2007 |citeseerx=10.1.1.123.9055}}</ref> इसके लिए 2007 में [[ millicode |मिलीकोड]] का उपयोग करके<ref>{{Cite journal |last1=Heller |first1=L. C. |last2=Farrell |first2=M. S. |doi=10.1147/rd.483.0425 |title=IBM zSeries प्रोसेसर में मिलिकोड|journal=[[IBM Journal of Research and Development]] |volume=48 |issue=3.4 |pages=425–434 |date=May 2004 |citeseerx=10.1.1.641.1164}}</ref> और 2008 में हार्डवेयर में [[IBM System z10|आईबीएम सिस्टम z10]] तक सीमित हैं।<ref>{{Cite journal |last1=Schwarz |first1=E. M. |last2=Kapernick |first2=J. S. |last3=Cowlishaw |first3=M. F. |title=IBM System z10 प्रोसेसर पर दशमलव फ़्लोटिंग-पॉइंट समर्थन|doi=10.1147/JRD.2009.5388585 |journal=[[IBM Journal of Research and Development]] |volume=53 |issue=1 |pages=4:1–4:10 |date=January 2009}}</ref>
आधुनिक आईबीएम मेनफ्रेम 3 हेक्साडेसिमल (एचएफपी) प्रारूप, 3 बाइनरी (बीएफपी) प्रारूप और 3 दशमलव (डीएफपी) प्रारूप के साथ तीन फ्लोटिंग-पॉइंट रेडिस का समर्थन करते हैं। प्रति कोर दो फ़्लोटिंग-पॉइंट इकाइयाँ हैं; एचएफपी और बीएफपी का समर्थन करता है, और डीएफपी का समर्थन करता है; रजिस्टर फ़ाइल है, एफपीआर, जिसमें सभी 3 प्रारूप हैं। 2015 में IBM_z13_(माइक्रोप्रोसेसर) से शुरुआत करते हुए, प्रोसेसर ने वेक्टर सुविधा जोड़ी है जिसमें 32 वेक्टर रजिस्टर शामिल हैं, प्रत्येक 128 बिट चौड़ा है; वेक्टर रजिस्टर में दो 64-बिट या चार 32-बिट फ़्लोटिंग-पॉइंट नंबर हो सकते हैं।<ref name="pop">[http://publibfp.boulder.ibm.com/epubs/pdf/dz9zr011.pdf z/Architecture Principles of Operation]</ref> पारंपरिक 16 फ़्लोटिंग-पॉइंट रजिस्टरों को नए वेक्टर रजिस्टरों पर मढ़ा जाता है, इसलिए कुछ डेटा को पारंपरिक फ़्लोटिंग-पॉइंट निर्देशों या नए वेक्टर निर्देशों के साथ हेरफेर किया जा सकता है।
 
आधुनिक आईबीएम मेनफ्रेम 3 हेक्साडेसिमल (एचएफपी) प्रारूप, 3 बाइनरी (बीएफपी) प्रारूप और 3 दशमलव (डीएफपी) प्रारूप के साथ तीन फ्लोटिंग-पॉइंट रेडिस का समर्थन करते हैं। इसलिए प्रति कोर दो फ़्लोटिंग-पॉइंट इकाइयाँ हैं, एचएफपी और बीएफपी का समर्थन करता है, और डीएफपी का समर्थन करता है, रजिस्टर फ़ाइल है, एफपीआर, जिसमें सभी 3 प्रारूप हैं। 2015 में IBM_z13_(माइक्रोप्रोसेसर) से प्रारंभ करते हुए, प्रोसेसर ने सदिश सुविधा जोड़ी है जिसमें 32 सदिश रजिस्टर उपस्थित हैं, प्रत्येक 128 बिट चौड़ा है, सदिश रजिस्टर में दो 64-बिट या चार 32-बिट फ़्लोटिंग-पॉइंट नंबर हो सकते हैं।<ref name="pop">[http://publibfp.boulder.ibm.com/epubs/pdf/dz9zr011.pdf z/Architecture Principles of Operation]</ref> इस प्रकार पारंपरिक 16 फ़्लोटिंग-पॉइंट रजिस्टरों को नए सदिश रजिस्टरों पर मढ़ा जाता है, इसलिए कुछ डेटा को पारंपरिक फ़्लोटिंग-पॉइंट निर्देशों या नए सदिश निर्देशों के साथ हेरफेर किया जा सकता है।


== विशेष उपयोग ==
== विशेष उपयोग ==
IBM HFP प्रारूप का उपयोग इसमें किया जाता है:
IBM HFP प्रारूप का उपयोग इसमें किया जाता है:


* नई औषधि अनुप्रयोग (एनडीए) अध्ययन प्रस्तुतियाँ के लिए [[खाद्य एवं औषधि प्रशासन]] (एफडीए) द्वारा आवश्यक एसएएस 5 परिवहन फ़ाइलें (.एक्सपीटी),<ref name="SAS">{{cite web |url=http://support.sas.com/techsup/technote/ts140.pdf |title=एसएएस ट्रांसपोर्ट (एक्सपोर्ट) प्रारूप में डेटा सेट का रिकॉर्ड लेआउट|access-date=September 18, 2014}}</ref>
* इस प्रकार के नए अनुप्रयोगों (एनडीए) के अध्ययन में उपयोग होने वाली प्रस्तुतियाँ के लिए [[खाद्य एवं औषधि प्रशासन]] (एफडीए) द्वारा आवश्यक एसएएस 5 परिवहन फ़ाइलें (.एक्सपीटी) उपयोग होती हैं।<ref name="SAS">{{cite web |url=http://support.sas.com/techsup/technote/ts140.pdf |title=एसएएस ट्रांसपोर्ट (एक्सपोर्ट) प्रारूप में डेटा सेट का रिकॉर्ड लेआउट|access-date=September 18, 2014}}</ref>
* मौसम भविष्यवाणी मॉडल के आउटपुट का आदान-प्रदान करने के लिए जीआरआईबी (जीआरआईडेड बाइनरी) डेटा फ़ाइलें (वर्तमान संस्करण में आईईईई एकल-सटीक फ़्लोटिंग-पॉइंट प्रारूप),
* मौसम भविष्यवाणी मॉडल के आउटपुट का आदान-प्रदान करने के लिए जीआरआईबी (जीआरआईडेड बाइनरी) डेटा फ़ाइलें (वर्तमान संस्करण में आईईईई एकल-सटीक फ़्लोटिंग-पॉइंट प्रारूप) उपयोग होती हैं।
* [[GDSII]] (ग्राफ़िक डेटाबेस सिस्टम II) प्रारूप फ़ाइलें ([[ओपन आर्टवर्क सिस्टम इंटरचेंज स्टैंडर्ड]] प्रतिस्थापन है), और
* [[GDSII]] (ग्राफ़िक डेटाबेस सिस्टम II) प्रारूप फ़ाइलें [[ओपन आर्टवर्क सिस्टम इंटरचेंज स्टैंडर्ड]] प्रतिस्थापन होती है, और
* [[SEG Y]] (सोसायटी ऑफ एक्सप्लोरेशन जियोफिजिसिस्ट Y) प्रारूप फ़ाइलें (IEEE [[एकल-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप]] 2002 में प्रारूप में जोड़ा गया था)।<ref>{{cite web|url=http://www.seg.org/documents/10161/77915/seg_y_rev1.pdf|title=एसईजी वाई रेव 1 डेटा एक्सचेंज प्रारूप, रिलीज़ 1.0|date=May 2002}}</ref>
* [[SEG Y]] (सोसायटी ऑफ एक्सप्लोरेशन जियोफिजिसिस्ट Y) प्रारूप फ़ाइलें IEEE [[एकल-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप]] 2002 में प्रारूप में जोड़ा गया था।<ref>{{cite web|url=http://www.seg.org/documents/10161/77915/seg_y_rev1.pdf|title=एसईजी वाई रेव 1 डेटा एक्सचेंज प्रारूप, रिलीज़ 1.0|date=May 2002}}</ref>
चूंकि आईबीएम एचएफपी प्रारूप का उपयोग करने वाला हार्डवेयर का एकमात्र शेष प्रदाता है, और उस प्रारूप का समर्थन करने वाली एकमात्र आईबीएम मशीनें उनके मेनफ्रेम हैं, कुछ फ़ाइल प्रारूपों को इसकी आवश्यकता होती है। अपवाद एसएएस 5 ट्रांसपोर्ट फ़ाइल प्रारूप है, जिसकी एफडीए को आवश्यकता होती है; उस प्रारूप में, फ़ाइल में सभी फ़्लोटिंग-पॉइंट नंबर आईबीएम मेनफ़्रेम प्रतिनिधित्व का उपयोग करके संग्रहीत किए जाते हैं। [...] अधिकांश प्लेटफ़ॉर्म फ़्लोटिंग-पॉइंट नंबरों के लिए IEEE प्रतिनिधित्व का उपयोग करते हैं। [...] ट्रांसपोर्ट फ़ाइलों को पढ़ने और/या लिखने में आपकी सहायता के लिए, हम आईईईई प्रतिनिधित्व (या तो बड़े एंडियन या छोटे एंडियन) से ट्रांसपोर्ट प्रतिनिधित्व और फिर से वापस परिवर्तित करने के लिए रूटीन प्रदान कर रहे हैं।<ref name="SAS"/>आईबीएम के प्रारूप के लिए कोड जीएनयू लेसर जनरल पब्लिक लाइसेंस|एलजीपीएलवी2.1 के तहत भी उपलब्ध है।<ref>{{cite web|url=https://cran.r-project.org/web/packages/SASxport/SASxport.pdf|title=पैकेज 'एसएएसएक्सपोर्ट'|date=March 10, 2020}}</ref>
चूंकि आईबीएम एचएफपी प्रारूप का उपयोग करने वाला हार्डवेयर का एकमात्र शेष प्रदाता है, और उस प्रारूप का समर्थन करने वाली एकमात्र आईबीएम मशीनें उनके मेनफ्रेम हैं, कुछ फ़ाइल प्रारूपों को इसकी आवश्यकता होती है। अपवाद एसएएस 5 ट्रांसपोर्ट फ़ाइल प्रारूप है, जिसकी एफडीए को आवश्यकता होती है, उस प्रारूप में, फ़ाइल में सभी फ़्लोटिंग-पॉइंट नंबर आईबीएम मेनफ़्रेम प्रतिनिधित्व का उपयोग करके संग्रहीत किए जाते हैं। [...] अधिकांश प्लेटफ़ॉर्म फ़्लोटिंग-पॉइंट नंबरों के लिए IEEE प्रतिनिधित्व का उपयोग करते हैं। इस प्रकार [...] ट्रांसपोर्ट फ़ाइलों को पढ़ने और/या लिखने में आपकी सहायता के लिए, हम आईईईई प्रतिनिधित्व (या तो बड़े एंडियन या छोटे एंडियन) से ट्रांसपोर्ट प्रतिनिधित्व और फिर से वापस परिवर्तित करने के लिए रूटीन प्रदान कर रहे हैं।<ref name="SAS"/> आईबीएम के प्रारूप के लिए कोड जीएनयू लेसर जनरल पब्लिक लाइसेंस|एलजीपीएलवी2.1 के तहत भी उपलब्ध है।<ref>{{cite web|url=https://cran.r-project.org/web/packages/SASxport/SASxport.pdf|title=पैकेज 'एसएएसएक्सपोर्ट'|date=March 10, 2020}}</ref>
== सिस्टम जो आईबीएम फ़्लोटिंग-पॉइंट प्रारूप का उपयोग करते हैं ==
== सिस्टम जो आईबीएम फ़्लोटिंग-पॉइंट प्रारूप का उपयोग करते हैं ==
* आईबीएम सिस्टम/360 और उत्तराधिकारी
* आईबीएम सिस्टम/360 और उत्तराधिकारी
Line 246: Line 247:


== यह भी देखें ==
== यह भी देखें ==
* आईईईई 754|फ़्लोटिंग-पॉइंट अंकगणित के लिए आईईईई 754 मानक
* आईईईई 754 या फ़्लोटिंग-पॉइंट अंकगणित के लिए आईईईई 754 मानक
* [[माइक्रोसॉफ्ट बाइनरी फॉर्मेट]]
* [[माइक्रोसॉफ्ट बाइनरी फॉर्मेट]]



Revision as of 11:21, 30 July 2023

हेक्साडेसिमल फ़्लोटिंग-पॉइंट अंकगणित जिसे आईबीएम द्वारा एचएफपी कहा जाता है, इन फ़्लोटिंग-पॉइंट संख्याओं को एन्कोड करने का प्रारूप है, जिसे पहली बार आईबीएम आईबीएम सिस्टम/360 या सिस्टम/360 कंप्यूटरों पर प्रस्तुत किया गया था, और उस आर्किटेक्चर के आधार पर बाद की मशीनों पर समर्थित है,[1][2][3] इसके साथ ही ऐसी मशीनें जिनका उद्देश्य सिस्टम/360 के साथ एप्लिकेशन-संगत होना था।[4][5]

आईईईई 754 फ़्लोटिंग पॉइंट की तुलना में, एचएफपी प्रारूप का महत्व लंबा है, और एक्सपोनेंटिएशन छोटा है। इस प्रकार की सभी एचएफपी प्रारूपों में 64 के घातांक पूर्वाग्रह के साथ घातांक के 7 बिट हैं। इस प्रतिनिधित्व में योग्य संख्याओं की सामान्यीकृत सीमा 16−65से 1663 (लगभग 5.39761 × 10−79 से 7.237005 × 1075) तक है।

इन संख्या को निम्नलिखित सूत्र के रूप में दर्शाया गया है: (−1)sign × 0.significand × 16exponent−64

एकल-परिशुद्धता 32-बिट

एक एकल परिशुद्धता या एकल-परिशुद्धता एचएफपी संख्या, जिसे आईबीएम द्वारा संक्षिप्त कहा जाता है, इनको 32-बिट वाले शब्दों में संग्रहीत किया जाता है:

1 7 24 (width in bits)
S Exp Fraction  
31 30 ... 24 23 ... 0 (bit index)*
* आईबीएम डाॅक्यूमेंटेशन बिट्स को बाएं से दाएं तक क्रमांकित करता है, जिससे कि सबसे महत्वपूर्ण बिट को बिट संख्या 0 के रूप में निर्दिष्ट किया जा सके।

इस प्रारूप में प्रारंभिक बिट को दबाया नहीं जाता है, और मूलांक (हेक्साडेसिमल) बिंदु को आईबीएम डाॅक्यूमेंट और आंकड़ों में अंश के महत्व के बाईं ओर स्थिति किया गया है।

चूँकि आधार 16 है, इस रूप में घातांक आईईईई 754 के समतुल्य से लगभग दोगुना बड़ा है, इस प्रकार बाइनरी में समान घातांक सीमा रखने के लिए 9 घातांक बिट्स की आवश्यकता होगी।

उदाहरण

मान -118.625 को एचएफपी एकल-परिशुद्धता फ़्लोटिंग-पॉइंट मान के रूप में एन्कोड करने पर विचार करें।

यह मान ऋणात्मक है, इसलिए साइन बिट 1 है।

मान 118.62510 बाइनरी में (1110110.101)2 है, यह मान मूलांक बिंदु को समय में चार बिट्स (एक हेक्साडेसिमल अंक) के बाईं ओर ले जाकर सामान्यीकृत किया जाता है, जब तक कि सबसे बायां अंक शून्य न हो जाए, जिससे (0.01110110101)2 प्राप्त होता है, जिसे शेष सबसे दाहिने अंक शून्य से भरे हुए हैं, जिससे (.0111 0110 1010 0000 0000 0000)2 का 24-बिट अंश प्राप्त होता है।

सामान्यीकृत मान ने मूलांक बिंदु को दो हेक्साडेसिमल अंकों को बाईं ओर ले जाया, जिससे 16+2 का गुणक और घातांक प्राप्त होता हैं। जिसके लिए घातांक (+2) में +64 का पूर्वाग्रह जोड़ा जाता है, जिससे +66 प्राप्त होता है, जिसका मान (100 0010)2 है.

चिह्न, घातांक प्लस पूर्वाग्रह और सामान्यीकृत अंश का संयोजन इस एन्कोडिंग का उत्पादन करता है:

S Exp Fraction  
1 100 0010 0111 0110 1010 0000 0000 0000  

दूसरे शब्दों में, प्रदर्शित संख्या −0.76A00016 × 1666 − 64 = −0.4633789… × 16+2 = −118.625 है।

सबसे बड़ी प्रतिनिधित्व योग्य संख्या

S Exp Fraction  
0 111 1111 1111 1111 1111 1111 1111 1111  

प्रदर्शित संख्या +0.FFFFFF16 × 16127 − 64 = (1 − 16−6) × 1663 ≈ +7.2370051 × 1075 है।

सबसे छोटी धनात्मक सामान्यीकृत संख्या

S Exp Fraction  
0 000 0000 0001 0000 0000 0000 0000 0000  

दर्शाई गई संख्या +0.116 × 16 − 64 = 16−1×16−64 ≈ +5.397605 × 10−79 है।

शून्य

S Exp Fraction  
0 000 0000 0000 0000 0000 0000 0000 0000  

शून्य (0.0) को सभी शून्य बिट्स के रूप में सामान्यीकृत रूप में दर्शाया जाता है, जो अंकगणितीय रूप से मान +0.016 × 16 − 64 = +0 × 16−64 ≈ +0.000000 × 10−79 = 0 है। इस प्रकार की ऑल-बिट्स शून्य के अंश को देखते हुए धनात्मक या ऋणात्मक साइन बिट और गैर-शून्य पक्षपाती घातांक का कोई भी संयोजन अंकगणितीय रूप से शून्य के बराबर मान प्राप्त करेगा। चूंकि सीपीयू हार्डवेयर द्वारा शून्य के लिए उत्पन्न सामान्यीकृत रूप सभी-बिट्स शून्य है। यह तीनों फ़्लोटिंग-पॉइंट सटीक प्रारूपों के लिए सत्य है। अन्य घातांक मानों के साथ जोड़ या घटाव परिणाम में सटीकता खो सकता है।

परिशुद्धता मुद्दे

चूँकि आधार 16 है, बाइनरी महत्व में अधिकतम तीन अग्रणी शून्य बिट हो सकते हैं। इसका अर्थ है कि जब संख्या को बाइनरी में परिवर्तित किया जाता है, तो सटीकता के कम से कम 21 बिट हो सकते हैं। इस प्रकार की त्रुटि पूर्ण परिशुद्धता के प्रभाव के कारण, इसके कारण कुछ गणनाएँ बहुत ग़लत हो सकती हैं। इसकी अत्यधिक आलोचना हुई हैं।[6]

अशुद्धि का अच्छा उदाहरण दशमलव मान 0.1 का प्रतिनिधित्व है। इसका कोई सटीक बाइनरी या हेक्साडेसिमल प्रतिनिधित्व नहीं है। हेक्साडेसिमल प्रारूप में, इसे 0.19999999...16 या 0.0001 1001 1001 1001 1001 1001 1001...2 के रूप में दर्शाया गया है, यह इस प्रकार हैं:

S Exp Fraction  
0 100 0000 0001 1001 1001 1001 1001 1010  

इसमें केवल 21 बिट्स हैं, जबकि बाइनरी संस्करण में 24 बिट्स परिशुद्धता है।

परिशुद्धता के छह हेक्साडेसिमल अंक लगभग छह दशमलव अंकों के समान हैं, अर्ताथ (6 - 1) Log10(16) ≈ 6.02) के समान हैं। इस प्रकार की एकल परिशुद्धता हेक्साडेसिमल फ्लोट को दशमलव स्ट्रिंग में परिवर्तित करने के लिए कम से कम 9 महत्वपूर्ण अंकों के लिए अर्ताथ 6 Log10(16) + 1 ≈ 8.22) की आवश्यकता होगी वापस उसी हेक्साडेसिमल फ्लोट मान में परिवर्तित करने के लिए आवश्यक हैं।

डबल-सटीक 64-बिट

दोहरी सुनिश्चितता या डबल-प्रिसिजन एचएफपी प्रारूप के लिए आईबीएम द्वारा लॉन्ग कहा जाता है, इस प्रकार लघु प्रारूप के समान है, इसके अतिरिक्त इसके कि अंश क्षेत्र व्यापक है, और डबल-प्रिसिजन संख्या डबल शब्द (8 बाइट्स) में संग्रहीत है:

1 7 56 (width in bits)
S Exp Fraction  
63 62 ... 56 55 ... 0 (bit index)*
* आईबीएम डाॅक्यूमेंटेशन बिट्स को बाएं से दाएं तक क्रमांकित करता है, जिससे कि सबसे महत्वपूर्ण बिट को बिट संख्या 0 के रूप में निर्दिष्ट किया जा सके।

इस प्रारूप का प्रतिपादक संबंधित आईईईई बाइनरी प्रारूप के रूप में केवल चौथाई सीमा को कवर करता है।

परिशुद्धता के 14 हेक्साडेसिमल अंक लगभग 17 दशमलव अंकों के समान हैं। इसके लिए डबल प्रिसिजन हेक्साडेसिमल फ्लोट को दशमलव स्ट्रिंग में बदलने के लिए वापस उसी हेक्साडेसिमल फ्लोट मान में परिवर्तित करने के लिए कम से कम 18 महत्वपूर्ण अंकों की आवश्यकता होगी।

विस्तारित-परिशुद्धता 128-बिट

आईबीएम द्वारा विस्तारित-परिशुद्धता कहा जाता है, यह चौगुनी परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप या चौगुनी-परिशुद्धता एचएफपी प्रारूप को सिस्टम/370 श्रृंखला में जोड़ा गया था और कुछ एस/360 मॉडल (एस/360-85, -195, और अन्य विशेष अनुरोध पर या ओएस सॉफ्टवेयर द्वारा सिम्युलेटेड) पर उपलब्ध था। इसके कारण विस्तारित होने वाले सटीक अंश क्षेत्र के लिए व्यापक है, और विस्तारित-सटीक संख्या को दो दोहरे शब्दों (16 बाइट्स) के रूप में संग्रहीत किया जाता है:

High-order part
1 7 56 (width in bits)
S Exp Fraction (high-order 14 digits)  
127 126 ... 120 119 ... 64 (bit index)*
Low-order part
8 56 (width in bits)
Unused Fraction (low-order 14 digits)  
63 ... 56 55 ... 0 (bit index)*
* आईबीएम डाॅक्यूमेंटेशन बिट्स को बाएं से दाएं तक क्रमांकित करता है, ताकि सबसे महत्वपूर्ण बिट को बिट संख्या 0 के रूप में निर्दिष्ट किया जा सके।

परिशुद्धता के 28 हेक्साडेसिमल अंक लगभग 32 दशमलव अंकों के समान हैं। इसके विस्तारित परिशुद्धता एचएफपी को दशमलव स्ट्रिंग में परिवर्तित करने के लिए उसी एचएफपी मान में वापस परिवर्तित करने के लिए कम से कम 35 महत्वपूर्ण अंकों की आवश्यकता होगी। इस प्रकार के निम्न-क्रम वाले भाग में संग्रहीत घातांक उच्च-क्रम वाले भाग से 14 कम है, जब तक कि यह शून्य से कम न हो।

अंकगणितीय परिचालन

उपलब्ध अंकगणितीय परिचालन जोड़ और घटाव, सामान्यीकृत और असामान्यीकृत दोनों हैं और इसकी तुलना करते हैं। इस प्रकार घातांक अंतर के आधार पर पूर्वसामान्यीकरण किया जाता है। इसके कारण पूर्व-सामान्यीकृत असामान्य मानों को गुणा और विभाजित करें, और प्राप्त होने वाले परिणाम को गार्ड अंक के बाद छोटा करें। इस प्रकार दो से भाग को सरल बनाने के लिए आधा ऑपरेशन है। जिसके लिए ईएसए/390 से प्रारंभ होकर, वर्गमूल प्रक्रिया को प्रारंभ करता है। इस प्रकार की सटीक हानि से बचने के लिए सभी ऑपरेशनों में हेक्साडेसिमल गार्ड अंक होता है। इसके अधिकांश अंकगणितीय ऑपरेशन साधारण पॉकेट कैलकुलेटर की तरह छोटे-छोटे होते हैं। इसलिए, 1 − 16−8 = 1 की स्थिति में, परिणाम शून्य से पूर्णांकित है।[7]

आईबीएम मेनफ्रेम पर आईईईई 754

1998 में S/390 G5 से प्रारंभ[8] आईबीएम मेनफ्रेम में आईईईई बाइनरी फ़्लोटिंग-पॉइंट इकाइयां भी उपस्थित हैं जो फ़्लोटिंग-पॉइंट अंकगणित के लिए आईईईई 754 या आईईईई 754 मानक के अनुरूप हैं। इस प्रकार IEEE दशमलव फ़्लोटिंग-पॉइंट को IBM सिस्टम z9 GA2 में जोड़ा गया था,[9] इसके लिए 2007 में मिलीकोड का उपयोग करके[10] और 2008 में हार्डवेयर में आईबीएम सिस्टम z10 तक सीमित हैं।[11]

आधुनिक आईबीएम मेनफ्रेम 3 हेक्साडेसिमल (एचएफपी) प्रारूप, 3 बाइनरी (बीएफपी) प्रारूप और 3 दशमलव (डीएफपी) प्रारूप के साथ तीन फ्लोटिंग-पॉइंट रेडिस का समर्थन करते हैं। इसलिए प्रति कोर दो फ़्लोटिंग-पॉइंट इकाइयाँ हैं, एचएफपी और बीएफपी का समर्थन करता है, और डीएफपी का समर्थन करता है, रजिस्टर फ़ाइल है, एफपीआर, जिसमें सभी 3 प्रारूप हैं। 2015 में IBM_z13_(माइक्रोप्रोसेसर) से प्रारंभ करते हुए, प्रोसेसर ने सदिश सुविधा जोड़ी है जिसमें 32 सदिश रजिस्टर उपस्थित हैं, प्रत्येक 128 बिट चौड़ा है, सदिश रजिस्टर में दो 64-बिट या चार 32-बिट फ़्लोटिंग-पॉइंट नंबर हो सकते हैं।[12] इस प्रकार पारंपरिक 16 फ़्लोटिंग-पॉइंट रजिस्टरों को नए सदिश रजिस्टरों पर मढ़ा जाता है, इसलिए कुछ डेटा को पारंपरिक फ़्लोटिंग-पॉइंट निर्देशों या नए सदिश निर्देशों के साथ हेरफेर किया जा सकता है।

विशेष उपयोग

IBM HFP प्रारूप का उपयोग इसमें किया जाता है:

  • इस प्रकार के नए अनुप्रयोगों (एनडीए) के अध्ययन में उपयोग होने वाली प्रस्तुतियाँ के लिए खाद्य एवं औषधि प्रशासन (एफडीए) द्वारा आवश्यक एसएएस 5 परिवहन फ़ाइलें (.एक्सपीटी) उपयोग होती हैं।[13]
  • मौसम भविष्यवाणी मॉडल के आउटपुट का आदान-प्रदान करने के लिए जीआरआईबी (जीआरआईडेड बाइनरी) डेटा फ़ाइलें (वर्तमान संस्करण में आईईईई एकल-सटीक फ़्लोटिंग-पॉइंट प्रारूप) उपयोग होती हैं।
  • GDSII (ग्राफ़िक डेटाबेस सिस्टम II) प्रारूप फ़ाइलें ओपन आर्टवर्क सिस्टम इंटरचेंज स्टैंडर्ड प्रतिस्थापन होती है, और
  • SEG Y (सोसायटी ऑफ एक्सप्लोरेशन जियोफिजिसिस्ट Y) प्रारूप फ़ाइलें IEEE एकल-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप 2002 में प्रारूप में जोड़ा गया था।[14]

चूंकि आईबीएम एचएफपी प्रारूप का उपयोग करने वाला हार्डवेयर का एकमात्र शेष प्रदाता है, और उस प्रारूप का समर्थन करने वाली एकमात्र आईबीएम मशीनें उनके मेनफ्रेम हैं, कुछ फ़ाइल प्रारूपों को इसकी आवश्यकता होती है। अपवाद एसएएस 5 ट्रांसपोर्ट फ़ाइल प्रारूप है, जिसकी एफडीए को आवश्यकता होती है, उस प्रारूप में, फ़ाइल में सभी फ़्लोटिंग-पॉइंट नंबर आईबीएम मेनफ़्रेम प्रतिनिधित्व का उपयोग करके संग्रहीत किए जाते हैं। [...] अधिकांश प्लेटफ़ॉर्म फ़्लोटिंग-पॉइंट नंबरों के लिए IEEE प्रतिनिधित्व का उपयोग करते हैं। इस प्रकार [...] ट्रांसपोर्ट फ़ाइलों को पढ़ने और/या लिखने में आपकी सहायता के लिए, हम आईईईई प्रतिनिधित्व (या तो बड़े एंडियन या छोटे एंडियन) से ट्रांसपोर्ट प्रतिनिधित्व और फिर से वापस परिवर्तित करने के लिए रूटीन प्रदान कर रहे हैं।[13] आईबीएम के प्रारूप के लिए कोड जीएनयू लेसर जनरल पब्लिक लाइसेंस|एलजीपीएलवी2.1 के तहत भी उपलब्ध है।[15]

सिस्टम जो आईबीएम फ़्लोटिंग-पॉइंट प्रारूप का उपयोग करते हैं

यह भी देखें

संदर्भ

  1. IBM System/360 Principles of Operation, IBM Publication A22-6821-6, Seventh Edition (January 13, 1967), pp.41-50
  2. IBM System/370 Principles of Operation, IBM Publication GA22-7000-4, Fifth Edition (September 1, 1975), pp.157-170
  3. z/Architecture Principles of Operation, IBM Publication SA22-7832-01, Second Edition (October, 2001), chapter 9 ff.
  4. Xerox Data Systems (Oct 1973). Xerox SIGMA 7 Computer Reference Manyal. p. 48. Retrieved Nov 13, 2020.
  5. RCA (Mar 1966). Spectra 70 processors: 35 45 55 (PDF). p. 184. Retrieved Nov 13, 2020.
  6. Warren Jr., Henry S. (2013) [2002]. "The Distribution of Leading Digits". हैकर की प्रसन्नता (2 ed.). Addison Wesley - Pearson Education, Inc. pp. 385–387. ISBN 978-0-321-84268-8. 0-321-84268-5.
  7. ESA/390 Enhanced Floating Point Support: An Overview
  8. Schwarz, E. M.; Krygowski, C. A. (September 1999). "The S/390 G5 floating-point unit". IBM Journal of Research and Development. 43 (5.6): 707–721. doi:10.1147/rd.435.0707.
  9. Duale, A. Y.; Decker, M. H.; Zipperer, H.-G.; Aharoni, M.; Bohizic, T. J. (January 2007). "Decimal floating-point in z9: An implementation and testing perspective". IBM Journal of Research and Development. 51 (1.2): 217–227. CiteSeerX 10.1.1.123.9055. doi:10.1147/rd.511.0217.
  10. Heller, L. C.; Farrell, M. S. (May 2004). "IBM zSeries प्रोसेसर में मिलिकोड". IBM Journal of Research and Development. 48 (3.4): 425–434. CiteSeerX 10.1.1.641.1164. doi:10.1147/rd.483.0425.
  11. Schwarz, E. M.; Kapernick, J. S.; Cowlishaw, M. F. (January 2009). "IBM System z10 प्रोसेसर पर दशमलव फ़्लोटिंग-पॉइंट समर्थन". IBM Journal of Research and Development. 53 (1): 4:1–4:10. doi:10.1147/JRD.2009.5388585.
  12. z/Architecture Principles of Operation
  13. 13.0 13.1 "एसएएस ट्रांसपोर्ट (एक्सपोर्ट) प्रारूप में डेटा सेट का रिकॉर्ड लेआउट" (PDF). Retrieved September 18, 2014.
  14. "एसईजी वाई रेव 1 डेटा एक्सचेंज प्रारूप, रिलीज़ 1.0" (PDF). May 2002.
  15. "पैकेज 'एसएएसएक्सपोर्ट'" (PDF). March 10, 2020.

अग्रिम पठन