माइक्रोसॉफ्ट बाइनरी फॉर्मेट: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{short description|Floating-point number format by Microsoft}}
{{short description|Floating-point number format by Microsoft}}कम्प्यूटिंग में, माइक्रोसॉफ्ट बाइनरी फॉर्मेट (एमबीएफ) फ़्लोटिंग पॉइंट नंबरों के लिए प्रारूप है जिसका उपयोग वर्जन 4.00 से पहले एमबीएएसआईसी, जीडब्ल्यू-बेसिक और क्विकबेसिक सहित माइक्रोसॉफ्ट की बेसिक भाषाओं में किया जाता था।<ref name="Microsoft_2006_KB35826"/><ref name="Microsoft_2005_KB42980"/><ref name="StackOverflow_2010_MASM50"/><ref name="MASM61"/><ref name="GWBASIC"/><ref name="IBM_1982_BASIC"/><ref name="TRS80_ROM"/>


{{Floating-point}}
प्रारूप के दो मुख्य वर्जन हैं. मूल वर्जन को मेमोरी-बाधित सिस्टम और 32 बिट्स (4 बाइट्स) में संग्रहीत संख्याओं के लिए डिज़ाइन किया गया था, जिसमें 23-बिट सिग्नेचर, 1-बिट साइन और 8-बिट [[ प्रतिपादक |प्रतिपादक]] था। माइक्रोसॉफ्ट बेसिक या एक्सटेंडेड बेसिक-80 या एक्सटेंडेड (12के) बेसिक में 64 बिट्स के साथ डबल-प्रिसिजन प्रकार सम्मिलित है।
[[ कम्प्यूटिंग | कम्प्यूटिंग]] में, [[माइक्रोसॉफ्ट]] बाइनरी फॉर्मेट (एमबीएफ) [[ तैरनेवाला स्थल |तैरनेवाला स्थल]] नंबरों के लिए प्रारूप है जिसका उपयोग संस्करण 4.00 से पहले [[एमबीएएसआईसी]], [[GW-[[ बुनियादी ]]]] और [[ त्वरित बुनियादी |त्वरित बुनियादी]] सहित माइक्रोसॉफ्ट की बेसिक भाषाओं में किया जाता था।<ref name="Microsoft_2006_KB35826"/><ref name="Microsoft_2005_KB42980"/><ref name="StackOverflow_2010_MASM50"/><ref name="MASM61"/><ref name="GWBASIC"/><ref name="IBM_1982_BASIC"/><ref name="TRS80_ROM"/>


प्रारूप के दो मुख्य संस्करण हैं. मूल संस्करण को मेमोरी-बाधित सिस्टम और 32 बिट्स (4 बाइट्स) में संग्रहीत संख्याओं के लिए डिज़ाइन किया गया था, जिसमें 23-बिट सिग्नेचर, 1-बिट साइन और 8-बिट [[ प्रतिपादक |प्रतिपादक]] था। माइक्रोसॉफ्ट_बेसिक#एक्सटेंडेड_बेसिक-80|एक्सटेंडेड (12के) बेसिक में 64 बिट्स के साथ डबल-प्रिसिजन प्रकार शामिल है।
उस अवधि के समय जब इसे [[Intel 8080|इंटेल 8080]] प्लेटफ़ॉर्म से [[MOS 6502|एमओएस 6502]] प्रोसेसर में पोर्ट किया जा रहा था इस प्रकार [[गृह कम्प्यूटर|प्रोसेसर कम्प्यूटर]] मानक सुविधा के रूप में अधिक मेमोरी के साथ शिप करना प्रारंभ कर रहे थे। यह वर्जन मूल 32-बिट प्रारूप या वैकल्पिक विस्तारित 40-बिट (5-बाइट) प्रारूप के साथ प्रस्तुत किया गया था। 40-बिट प्रारूप का उपयोग 1970 और 1980 के दशक के अधिकांश पोर्टेबल कंप्यूटरों द्वारा किया जाता था। इन दो वर्जनों को कभी-कभी क्रमशः 6-अंकीय और 9-अंकीय के रूप में जाना जाता है।<ref name="Steil_2008_6502"/>


उस अवधि के दौरान जब इसे [[Intel 8080]] प्लेटफ़ॉर्म से [[MOS 6502]] प्रोसेसर में पोर्ट किया जा रहा था[[गृह कम्प्यूटर]] मानक सुविधा के रूप में अधिक मेमोरी के साथ शिप करना शुरू कर रहे थे। यह संस्करण मूल 32-बिट प्रारूप या वैकल्पिक विस्तारित 40-बिट (5-बाइट) प्रारूप के साथ पेश किया गया था। 40-बिट प्रारूप का उपयोग 1970 और 1980 के दशक के अधिकांश घरेलू कंप्यूटरों द्वारा किया जाता था। इन दो संस्करणों को कभी-कभी क्रमशः 6-अंकीय और 9-अंकीय के रूप में जाना जाता है।<ref name="Steil_2008_6502"/>
x[[86]] प्रोसेसर वाले पीसी पर , क्विकबेसिक ने, वर्जन 4 से पहले, 64-बिट (8-बाइट) प्रारूप में 55-बिट मंटिसा का उपयोग करके डबल-प्रिसिजन प्रारूप को फिर से प्रस्तुत किया था। इस प्रकार क्विकबेसिक 4 में स्पेसांतरण के समय एमबीएफ को छोड़ दिया गया था, जो कुछ साल पहले प्रस्तुत किए गए मानक [[IEEE 754]] प्रारूप का उपयोग करता था।
 
x[[86]] प्रोसेसर वाले [[ निजी कंप्यूटर |निजी कंप्यूटर]] पर, क्विकबेसिक ने, संस्करण 4 से पहले, 64-बिट (8-बाइट) प्रारूप में 55-बिट मंटिसा का उपयोग करके डबल-प्रिसिजन प्रारूप को फिर से प्रस्तुत किया था। QuickBASIC 4 में स्थानांतरण के दौरान MBF को छोड़ दिया गया था, जो कुछ साल पहले पेश किए गए मानक [[IEEE 754]] प्रारूप का उपयोग करता था।


==इतिहास==
==इतिहास==
[[बिल गेट्स]] और [[पॉल एलन]] 1975 में [[अल्टेयर बेसिक]] पर काम कर रहे थे। वे [[ विदेश महाविद्यालय |विदेश महाविद्यालय]] में [[डिजिटल उपकरण निगम]] [[पीडीपी-10]] पर अपना [[अल्टेयर 8800]] एमुलेटर चलाकर सॉफ्टवेयर विकसित कर रहे थे।<ref name="Isaacson_2013_Dawn"/>एक चीज़ की कमी थी उनके पास फ्लोटिंग-पॉइंट संख्याओं को संभालने के लिए कोड था, जो बहुत बड़ी और बहुत छोटी संख्याओं के साथ गणना का समर्थन करने के लिए आवश्यक था,<ref name="Isaacson_2013_Dawn"/>जो विज्ञान और इंजीनियरिंग के लिए विशेष रूप से उपयोगी होगा।<ref name="Rall_1987_Pascal-SC"/><ref name="Leung_2005_FP"/>अल्टेयर के प्रस्तावित उपयोगों में से वैज्ञानिक कैलकुलेटर के रूप में था।<ref name="Becraft_2014_Gates"/>
[[बिल गेट्स]] और [[पॉल एलन]] 1975 में [[अल्टेयर बेसिक]] पर कार्य कर रहे थे। वह [[ विदेश महाविद्यालय |हार्वर्ड यूनिवर्सिटी]] में [[डिजिटल उपकरण निगम|डीईसी]] [[पीडीपी-10]] पर अपना [[अल्टेयर 8800]] एमुलेटर चलाकर सॉफ्टवेयर विकसित कर रहे थे।<ref name="Isaacson_2013_Dawn"/> एक चीज़ की कमी थी उनके पास फ्लोटिंग-पॉइंट संख्याओं को संभालने के लिए कोड था, इस प्रकार जो बहुत बड़ी और बहुत छोटी संख्याओं के साथ गणना का समर्थन करने के लिए आवश्यक था,<ref name="Isaacson_2013_Dawn"/> जो विज्ञान और इंजीनियरिंग के लिए विशेष रूप से उपयोगी होता है।<ref name="Rall_1987_Pascal-SC"/><ref name="Leung_2005_FP"/> अल्टेयर के प्रस्तावित उपयोगों में से वैज्ञानिक कैलकुलेटर के रूप में था।<ref name="Becraft_2014_Gates"/>


[[File:Altair 8800 at the Computer History Museum, cropped.jpg|thumb|अल्टेयर 8800 फ्रंट पैनल]]हार्वर्ड के स्नातक आवासीय घर [[क्यूरियर हाउस (हार्वर्ड कॉलेज)]] में रात्रिभोज में, गेट्स और एलन ने अपने रात्रिभोज साथियों से शिकायत की कि उन्हें यह कोड लिखना होगा<ref name="Isaacson_2013_Dawn"/>और उनमें से एक, [[मोंटे डेविडॉफ़]] ने उन्हें बताया कि उसने पहले फ़्लोटिंग-पॉइंट रूटीन लिखा था और गेट्स और एलन को आश्वस्त किया कि वह अल्टेयर बेसिक फ़्लोटिंग-पॉइंट कोड लिखने में सक्षम था।<ref name="Isaacson_2013_Dawn"/>उस समय, जबकि आईबीएम ने अपने स्वयं के कार्यक्रम पेश किए थे, फ़्लोटिंग-पॉइंट नंबरों के लिए कोई मानक नहीं था, इसलिए डेविडऑफ़ को अपने स्वयं के कार्यक्रम के साथ आना पड़ा। उन्होंने निर्णय लिया कि 32 बिट्स पर्याप्त रेंज और सटीकता की अनुमति देंगे।<ref name="Altair_2014_Math"/>जब एलन को इसे [[माइक्रो इंस्ट्रुमेंटेशन और टेलीमेट्री सिस्टम]] में प्रदर्शित करना था, तो यह पहली बार था जब यह वास्तविक अल्टेयर पर चला।<ref name="Orlowski_2001_Altair"/>लेकिन यह काम कर गया, और जब उन्होंने 'PRINT 2+2' में प्रवेश किया, तो डेविडऑफ़ के ऐडिंग रूटीन ने सही उत्तर दिया।<ref name="Isaacson_2013_Dawn"/>
[[File:Altair 8800 at the Computer History Museum, cropped.jpg|thumb|अल्टेयर 8800 फ्रंट पैनल]]हार्वर्ड के स्नातक [[क्यूरियर हाउस (हार्वर्ड कॉलेज)]] में रात्रिभोज में, गेट्स और एलन ने अपने रात्रिभोज साथियों से शिकायत की कि उन्हें यह कोड लिखना होगा <ref name="Isaacson_2013_Dawn"/> और उनमें से एक, [[मोंटे डेविडॉफ़]] ने उन्हें बताया कि उसने पहले फ़्लोटिंग-पॉइंट रूटीन लिखा था और गेट्स और एलन को आश्वस्त किया कि वह अल्टेयर बेसिक फ़्लोटिंग-पॉइंट कोड लिखने में सक्षम था।<ref name="Isaacson_2013_Dawn"/> उस समय, जबकि आईबीएम ने अपने स्वयं के प्रोग्राम प्रस्तुत किए थे, फ़्लोटिंग-पॉइंट नंबरों के लिए कोई मानक नहीं था, इसलिए डेविडऑफ़ को अपने स्वयं के प्रोग्राम के साथ आना पड़ा था। उन्होंने निर्णय लिया कि 32 बिट्स पर्याप्त रेंज और सटीकता की अनुमति देंगे।<ref name="Altair_2014_Math"/> जब एलन को इसे [[माइक्रो इंस्ट्रुमेंटेशन और टेलीमेट्री सिस्टम]] में प्रदर्शित करना था, इस प्रकार जिससे यह पहली बार था जब यह वास्तविक अल्टेयर पर चला जाता है।<ref name="Orlowski_2001_Altair"/> किन्तु यह कार्य कर गया था, और जब उन्होंने 'PRINT 2+2' में प्रवेश किया था, तो डेविडऑफ़ के ऐडिंग रूटीन ने सही उत्तर दिया था।<ref name="Isaacson_2013_Dawn"/>


अल्टेयर बेसिक के स्रोत कोड की प्रति 1999 में फिर से सामने आई। 1970 के दशक के अंत में, गेट्स के पूर्व शिक्षक और डीन हैरी आर. लुईस ने इसे एडेन के कार्यालय में कुछ फर्नीचर के पीछे पाया था, और इसे फ़ाइल कैबिनेट में रख दिया था। लंबे समय तक इसके अस्तित्व के बारे में कमोबेश भूलने के बाद, लुईस अंततः लॉबी में सूची प्रदर्शित करने का विचार लेकर आए। इसके बजाय, लाइब्रेरियन और संरक्षक [[जेनिस मेरिल-ओल्डम]] द्वारा इसके महत्व को बताए जाने के बाद, मूल सूची को संरक्षित करने और प्रदर्शन और संरक्षण के लिए कई प्रतियां तैयार करने का निर्णय लिया गया।<ref name="Orlowski_2001_Raiders"/><ref name="Griffiths_2000_Quest"/>स्रोत में टिप्पणी डेविडॉफ़ को अल्टेयर बेसिक के गणित पैकेज के लेखक के रूप में श्रेय देती है।<ref name="Orlowski_2001_Raiders"/><ref name="Griffiths_2000_Quest"/>
अल्टेयर बेसिक के स्रोत कोड की प्रति 1999 में फिर से सामने आई थी। 1970 के दशक के अंत में, गेट्स के पूर्व शिक्षक और डीन हैरी आर. लुईस ने इसे एडेन के कार्यालय में कुछ फर्नीचर के पीछे पाया था, और इसे फ़ाइल कैबिनेट में रख दिया था। इस प्रकार लंबे समय तक इसके अस्तित्व के बारे में कमोबेश भूलने के बाद, लुईस अंततः लॉबी में सूची प्रदर्शित करने का विचार लेकर आए। इसके अतिरिक्त, लाइब्रेरियन और संरक्षक [[जेनिस मेरिल-ओल्डम]] द्वारा इसके महत्व को बताए जाने के बाद, मूल सूची को संरक्षित करने और प्रदर्शन और संरक्षण के लिए कई प्रतियां तैयार करने का निर्णय लिया गया था।<ref name="Orlowski_2001_Raiders"/><ref name="Griffiths_2000_Quest"/> स्रोत में टिप्पणी डेविडॉफ़ को अल्टेयर बेसिक के गणित पैकेज के लेखक के रूप में श्रेय देती है।<ref name="Orlowski_2001_Raiders"/><ref name="Griffiths_2000_Quest"/>


[[File:Radio Shack Tandy TRS-80 Model I System.JPG|thumb|left|रेडियो शेक टैंडी टीआरएस-80 मॉडल I सिस्टम]]अल्टेयर बेसिक की शुरुआत हुई और जल्द ही अधिकांश शुरुआती घरेलू कंप्यूटरों में माइक्रोसॉफ्ट बेसिक का कोई न कोई रूप चलने लगा।<ref name="OldComputers"/><ref name="Powerbasic70"/>[[एमओएस टेक्नोलॉजी 6502]] सीपीयू के लिए बेसिक पोर्ट, जैसे कि [[कमोडोर पीईटी]] में उपयोग किया जाता है, ने 6502 के कम कोड घनत्व के कारण अधिक जगह ले ली। इस वजह से यह संभवतः मशीन-विशिष्ट इनपुट और आउटपुट कोड के साथ एकल ROM चिप में फिट नहीं होगा। चूँकि अतिरिक्त चिप आवश्यक थी, अतिरिक्त स्थान उपलब्ध था, और इसका उपयोग फ्लोटिंग-पॉइंट प्रारूप को 32 से 40 बिट्स तक बढ़ाने के लिए किया गया था।<ref name="Steil_2008_6502"/>यह विस्तारित प्रारूप न केवल [[कमोडोर बेसिक]] 1 और 2 द्वारा प्रदान किया गया था, बल्कि संस्करण 1.1 (1977) से [[एप्पलसॉफ्ट बेसिक]] I और II, संस्करण 1.1ए (1977) से केआईएम-1 बेसिक और संस्करण 2बी (1980) से [[टेंजेरीन माइक्रोटैन 65]] बेसिक द्वारा भी समर्थित था।<ref name="Steil_2008_6502"/>कुछ ही समय बाद, [[ज़िलॉग Z80]] पोर्ट, जैसे कि [[TRS-80]] (1978) के लिए TRS-80 लेवल II बेसिक, ने 64-बिट, डबल-प्रिसिजन फॉर्मेट को 32-बिट, सिंगल-प्रिसिजन से अलग डेटा प्रकार के रूप में पेश किया।<ref name="RadioShack_1978_LevelII"/><ref name="TRS80_1979_LevelII"/><ref name="MBASIC80"/>माइक्रोसॉफ्ट ने [[फोरट्रान]] के कार्यान्वयन में समान फ़्लोटिंग-पॉइंट प्रारूपों का उपयोग किया<ref name="Microsoft_1980_FORTRAN80"/>और उनके मैक्रो असेंबलर [[MASM]] के लिए,<ref name="Pätzold_1993"/>हालाँकि उनकी स्प्रेडशीट [[मल्टीप्लान]] है<ref name="Tandy_Multiplan"/><ref name="Microsoft-PCode"/>और उनके [[COBOL]] कार्यान्वयन में [[बाइनरी-कोडित दशमलव]] (BCD) फ़्लोटिंग पॉइंट का उपयोग किया गया।<ref name="Microsoft_1978_COBOL80"/>फिर भी, कुछ समय के लिए एमबीएफ घरेलू कंप्यूटरों पर वास्तविक फ़्लोटिंग-पॉइंट प्रारूप बन गया, इस हद तक कि लोग अभी भी कभी-कभी इसका उपयोग करते हुए विरासत फ़ाइलों और फ़ाइल स्वरूपों का सामना करते हैं।<ref name="Lee_QWK"/><ref name="CSI_1998_CompuTrac"/><ref name="Billard_2001_MBFVB6"/><ref name="Myster_2003_MBF"/><ref name="GL88"/><ref name="Rmetrics"/>
[[File:Radio Shack Tandy TRS-80 Model I System.JPG|thumb|left|रेडियो शेक टैंडी टीआरएस-80 मॉडल I सिस्टम]]अल्टेयर बेसिक की प्रारंभ हुई और जल्द ही अधिकांश प्रारंभी पोर्टेबल कंप्यूटरों में माइक्रोसॉफ्ट बेसिक का कोई न कोई रूप चलने लगा था।<ref name="OldComputers"/><ref name="Powerbasic70"/>[[एमओएस टेक्नोलॉजी 6502]] सीपीयू के लिए बेसिक पोर्ट, जैसे कि [[कमोडोर पीईटी]] में उपयोग किया जाता है, जिसने 6502 के कम कोड घनत्व के कारण अधिक स्पेस ले लीया था। इस कारण से यह संभवतः मशीन-विशिष्ट इनपुट और आउटपुट कोड के साथ एकल ROM चिप में फिट नहीं होता है। चूँकि अतिरिक्त चिप आवश्यक थी, अतिरिक्त स्पेस उपलब्ध था, और इस प्रकार इसका उपयोग फ्लोटिंग-पॉइंट प्रारूप को 32 से 40 बिट्स तक बढ़ाने के लिए किया गया था।<ref name="Steil_2008_6502"/> यह विस्तारित प्रारूप न केवल [[कमोडोर बेसिक]] 1 और 2 द्वारा प्रदान किया गया था, किन्तु वर्जन 1.1 (1977) से [[एप्पलसॉफ्ट बेसिक]] I और II, वर्जन 1.1ए (1977) से केआईएम-1 बेसिक और वर्जन 2बी (1980) से [[टेंजेरीन माइक्रोटैन 65]] बेसिक द्वारा भी समर्थित था।<ref name="Steil_2008_6502"/> कुछ ही समय बाद, [[ज़िलॉग Z80]] पोर्ट, जैसे कि [[TRS-80]] (1978) के लिए TRS-80 लेवल II बेसिक, ने 64-बिट, डबल-प्रिसिजन फॉर्मेट को 32-बिट, सिंगल-प्रिसिजन से अलग डेटा प्रकार के रूप में प्रस्तुत किया था।<ref name="RadioShack_1978_LevelII"/><ref name="TRS80_1979_LevelII"/><ref name="MBASIC80"/> इस प्रकार माइक्रोसॉफ्ट ने [[फोरट्रान]] के कार्यान्वयन में समान फ़्लोटिंग-पॉइंट प्रारूपों का उपयोग किया था <ref name="Microsoft_1980_FORTRAN80"/> और उनके मैक्रो असेंबलर [[MASM|एमएएसएम]] के लिए,<ref name="Pätzold_1993"/> चूँकि उनकी स्प्रेडशीट [[मल्टीप्लान]] है <ref name="Tandy_Multiplan"/><ref name="Microsoft-PCode"/> और उनके [[COBOL|कोबोल]] कार्यान्वयन में [[बाइनरी-कोडित दशमलव]] (बीसीडी) फ़्लोटिंग पॉइंट का उपयोग किया गया था।<ref name="Microsoft_1978_COBOL80"/> फिर भी, कुछ समय के लिए एमबीएफ पोर्टेबल कंप्यूटरों पर वास्तविक फ़्लोटिंग-पॉइंट प्रारूप बन गया, इस सीमा तक कि लोग अभी भी कभी-कभी इसका उपयोग करते हुए विरासत फ़ाइलों और फ़ाइल स्वरूपों का सामना करते हैं।<ref name="Lee_QWK"/><ref name="CSI_1998_CompuTrac"/><ref name="Billard_2001_MBFVB6"/><ref name="Myster_2003_MBF"/><ref name="GL88"/><ref name="Rmetrics"/>


[[Image:VAX 11-780 intero.jpg|thumb|वैक्स-11/780 मिनीकंप्यूटर]]एक समानांतर विकास में, [[इंटेल]] ने 1976 में फ्लोटिंग-पॉइंट [[ सह प्रोसेसर |सह प्रोसेसर]] का विकास शुरू किया था।<ref name="Intel_2016_Case"/><ref name="Kahan_1998_Story"/>इंटेल के सलाहकार के रूप में [[विलियम मोर्टों कहाँ]] ने सुझाव दिया कि इंटेल डिजिटल इक्विपमेंट कॉर्पोरेशन (DEC) VAX के फ्लोटिंग पॉइंट का उपयोग करे। पहला VAX, VAX-11/780 1977 के अंत में सामने आया था, और इसके फ्लोटिंग पॉइंट को अत्यधिक महत्व दिया गया था। VAX का फ़्लोटिंग-पॉइंट प्रारूप MBF से केवल इस मायने में भिन्न था कि इसमें सबसे महत्वपूर्ण बिट में साइन था।<ref name="VAX11"/><ref name="VAX11_1979"/>हालाँकि, अपनी चिप को यथासंभव व्यापक बाज़ार में बेचने के लिए, काहन को विशिष्टताओं को तैयार करने के लिए कहा गया था।<ref name="Intel_2016_Case"/>जब इंटेल की नई चिप की अफवाहें उसके प्रतिस्पर्धियों तक पहुंचीं, तो उन्होंने इंटेल को बहुत अधिक बढ़त हासिल करने से रोकने के लिए [[आईईईई 754-1985]] नामक मानकीकरण प्रयास शुरू किया। चूंकि 8-बिट प्रतिपादक दोहरे-परिशुद्धता संख्याओं के लिए वांछित कुछ परिचालनों के लिए पर्याप्त चौड़ा नहीं था, उदाहरण के लिए दो 32-बिट संख्याओं के उत्पाद को संग्रहीत करने के लिए,<ref name="Microsoft_2006_KB35826"/>इंटेल के प्रस्ताव और डीईसी के प्रति-प्रस्ताव में 11 बिट्स का उपयोग किया गया, जैसे 1965 से [[सीडीसी 6600]] का समय-परीक्षणित सीडीसी 6600#60-बिट फ़्लोटिंग पॉइंट|60-बिट फ़्लोटिंग-पॉइंट प्रारूप।<ref name="Kahan_1998_Story"/><ref name="Chuck_Kahan_Interview"/><ref name="Thornton_1970_CDC6600"/>कहन के प्रस्ताव में अनन्तताओं का भी प्रावधान किया गया है, जो विभाजन-दर-शून्य स्थितियों से निपटने में उपयोगी होते हैं; नॉट-ए-नंबर मान, जो अमान्य संचालन से निपटने में उपयोगी होते हैं; [[असामान्य संख्या]]एँ, जो अंडरफ्लो के कारण होने वाली समस्याओं को कम करने में मदद करती हैं;<ref name="Chuck_Kahan_Interview"/><ref name="Kahan_Why"/><ref name="Kahan_Java"/>और बेहतर संतुलित घातांक पूर्वाग्रह, जो किसी संख्या का व्युत्क्रम लेते समय अतिप्रवाह और अल्पप्रवाह से बचने में मदद कर सकता है।<ref name="Turner_2013"/><ref name="Kahan_Names"/>
[[Image:VAX 11-780 intero.jpg|thumb|वैक्स-11/780 मिनीकंप्यूटर]]एक समानांतर विकास में, [[इंटेल]] ने 1976 में फ्लोटिंग-पॉइंट [[ सह प्रोसेसर |सह प्रोसेसर]] का विकास प्रारंभ किया था।<ref name="Intel_2016_Case"/><ref name="Kahan_1998_Story"/> इंटेल के सलाहकार के रूप में [[विलियम मोर्टों कहाँ]] ने सुझाव दिया कि इंटेल डिजिटल इक्विपमेंट कॉर्पोरेशन (DEC) VAX के फ्लोटिंग पॉइंट का उपयोग करे। पहला VAX, VAX-11/780 1977 के अंत में सामने आया था, और इसके फ्लोटिंग पॉइंट को अत्यधिक महत्व दिया गया था। VAX का फ़्लोटिंग-पॉइंट प्रारूप एमबीएफ से केवल इस मायने में भिन्न था कि इसमें सबसे महत्वपूर्ण बिट में साइन था।<ref name="VAX11"/><ref name="VAX11_1979"/> चूँकि, अपनी चिप को यथासंभव व्यापक मार्केट में बेचने के लिए, काहन को विशिष्टताओं को तैयार करने के लिए कहा गया था।<ref name="Intel_2016_Case"/> जब इंटेल की नई चिप की अफवाहें उसके प्रतिस्पर्धियों तक पहुंचीं थी, जिससे उन्होंने इंटेल को बहुत अधिक बढ़त प्राप्त करने से रोकने के लिए [[आईईईई 754-1985]] नामक मानकीकरण प्रयास प्रारंभ किया था। चूंकि 8-बिट प्रतिपादक दोहरे-परिशुद्धता संख्याओं के लिए वांछित कुछ परिचालनों के लिए पर्याप्त चौड़ा नहीं था, उदाहरण के लिए दो 32-बिट संख्याओं के उत्पाद को संग्रहीत करने के लिए,<ref name="Microsoft_2006_KB35826"/> इंटेल के प्रस्ताव और डीईसी के प्रति-प्रस्ताव में 11 बिट्स का उपयोग किया गया था, जैसे 1965 से [[सीडीसी 6600]] का समय-परीक्षणित सीडीसी 6600 या 60-बिट फ़्लोटिंग पॉइंट या 60-बिट फ़्लोटिंग-पॉइंट प्रारूप <ref name="Kahan_1998_Story"/><ref name="Chuck_Kahan_Interview"/><ref name="Thornton_1970_CDC6600"/> कहन के प्रस्ताव में अनन्तताओं का भी प्रावधान किया गया है, जो विभाजन-दर-शून्य स्थितियों से निपटने में उपयोगी होते हैं; नॉट-ए-नंबर मान, जो अमान्य संचालन से निपटने में उपयोगी होते हैं; इस प्रकार [[असामान्य संख्या]]एँ, जो अंडरफ्लो के कारण होने वाली समस्याओं को कम करने में सहायता करती हैं;<ref name="Chuck_Kahan_Interview"/><ref name="Kahan_Why"/><ref name="Kahan_Java"/> और उत्तम संतुलित प्रतिपादक पूर्वाग्रह, जो किसी संख्या का व्युत्क्रम लेते समय अतिप्रवाह और अल्पप्रवाह से बचने में सहायता कर सकता है।<ref name="Turner_2013"/><ref name="Kahan_Names"/>


जब तक QuickBASIC 4.00 जारी किया गया,{{when|date=September 2020}} IEEE 754 मानक व्यापक रूप से अपनाया गया था - उदाहरण के लिए, इसे Intel के [[Intel 387]] सहप्रोसेसर और [[Intel 80486]] से प्रत्येक x86 प्रोसेसर में शामिल किया गया था। QuickBASIC संस्करण 4.0 और 4.5 डिफ़ॉल्ट रूप से IEEE 754 फ़्लोटिंग-पॉइंट वेरिएबल का उपयोग करते हैं, लेकिन (कम से कम संस्करण 4.5 में) कमांड-लाइन विकल्प है {{mono|/MBF}} आईडीई और कंपाइलर के लिए जो आईईईई से एमबीएफ फ्लोटिंग-पॉइंट नंबरों पर स्विच करता है, पहले से लिखे गए प्रोग्रामों का समर्थन करने के लिए जो एमबीएफ डेटा प्रारूपों के विवरण पर भरोसा करते हैं। [[विज़ुअल बेसिक (क्लासिक)]] भी एमबीएफ के बजाय आईईईई 754 प्रारूप का उपयोग करता है।
जब तक क्विकबेसिक 4.00 जारी किया गया था, इस प्रकार IEEE 754 मानक व्यापक रूप से अपनाया गया था उदाहरण के लिए, इसे इंटेल के [[Intel 387|इंटेल 387]] सहप्रोसेसर और [[Intel 80486|इंटेल 80486]] से प्रत्येक x86 प्रोसेसर में सम्मिलित किया गया था। क्विकबेसिक वर्जन 4.0 और 4.5 डिफ़ॉल्ट रूप से IEEE 754 फ़्लोटिंग-पॉइंट वेरिएबल का उपयोग करते हैं, किन्तु (कम से कम वर्जन 4.5 में) कमांड-लाइन विकल्प है इस प्रकार {{mono|/MBF}} आईडीई और कंपाइलर के लिए जो आईईईई से एमबीएफ फ्लोटिंग-पॉइंट नंबरों पर स्विच करता है, इस प्रकार पहले से लिखे गए प्रोग्रामों का समर्थन करने के लिए जो एमबीएफ डेटा प्रारूपों के विवरण पर विश्वास करते हैं। [[विज़ुअल बेसिक (क्लासिक)]] भी एमबीएफ के अतिरिक्त आईईईई 754 प्रारूप का उपयोग करता है।


==तकनीकी विवरण==
==तकनीकी विवरण==
एमबीएफ संख्याओं में 8-[[ अंश | अंश]] बेस-2 एक्सपोनेंट, साइन बिट (पॉजिटिव मंटिसा: s = 0; नेगेटिव मंटिसा: s = 1) और 23- शामिल होता है।<ref name="Borland_1994_MBF"/><ref name="Steil_2008_6502"/>31-<ref name="Steil_2008_6502"/>या 55-बिट<ref name="Borland_1994_MBF"/>महत्व का मंटिसा। स्पष्ट मंटिसा के बाईं ओर हमेशा 1-बिट निहित होता है, और रेडिक्स बिंदु इस [[कल्पित बिट]] से पहले स्थित होता है. प्रतिपादक को प्रतिपादक पूर्वाग्रह के साथ एन्कोड किया गया है {{Citation needed span|text=128|date=August 2020|reason=To be sorted out: The Borland document states bias 128, but disassembled 6202 ROM examples further below suggest bias 129; this was modified several times in the article history; I'm asking not necessarily for a reference, but for careful analysis (ideally based on real historical sample data in MBF format, not only some documentation) and corresponding correction, if necessary}}, ताकि प्रतिपादक {{Citation needed span|text=−127…−1|date=August 2020}} को x = द्वारा दर्शाया गया है {{Citation needed span|text=1…127 (01h…7Fh)|date=August 2020|reason=The disassembled 6502 ROM examples suggest that the values representing positive exponents span from 01h…80h, not 01h…7Fh, or that the comments in the byte-exact disassembly are misleading, or that the implementations for 6502 and x86 differ}}, प्रतिपादक {{Citation needed span|text=0…127|date=August 2020}} को x = द्वारा दर्शाया गया है {{Citation needed span|text=128…255 (80h…FFh)|date=August 2020|reason=The disassembled 6502 ROM examples suggest that the values representing positive exponents span from 81h…FFh, not 80h…FFh, or that the comments in the byte-exact disassembly are misleading, or that the implementations for 6502 and x86 differ}}, x = 0 (00h) के लिए विशेष मामले में, पूर्ण संख्या शून्य होने का प्रतिनिधित्व करती है।
एमबीएफ संख्याओं में 8-[[ अंश | बिट्स]] बेस-2 एक्सपोनेंट, साइन बिट (पॉजिटिव मंटिसा: s = 0; नेगेटिव मंटिसा: s = 1) और 23- सम्मिलित होता है।<ref name="Borland_1994_MBF"/><ref name="Steil_2008_6502"/> 31- <ref name="Steil_2008_6502"/> या 55-बिट <ref name="Borland_1994_MBF"/> महत्व का मंटिसा स्पष्ट मंटिसा के बाईं ओर सदैव 1-बिट निहित होता है, और रेडिक्स बिंदु इस [[कल्पित बिट]] से पहले स्थित होता है. प्रतिपादक {{Citation needed span|text=128|date=August 2020|reason=To be sorted out: The Borland document states bias 128, but disassembled 6202 ROM examples further below suggest bias 129; this was modified several times in the article history; I'm asking not necessarily for a reference, but for careful analysis (ideally based on real historical sample data in MBF format, not only some documentation) and corresponding correction, if necessary}} को प्रतिपादक पूर्वाग्रह के साथ एन्कोड किया गया है , जिससे प्रतिपादक {{Citation needed span|text=−127…−1|date=August 2020}} को x ={{Citation needed span|text=1…127 (01h…7Fh)|date=August 2020|reason=The disassembled 6502 ROM examples suggest that the values representing positive exponents span from 01h…80h, not 01h…7Fh, or that the comments in the byte-exact disassembly are misleading, or that the implementations for 6502 and x86 differ}} द्वारा दर्शाया गया है , प्रतिपादक {{Citation needed span|text=0…127|date=August 2020}} को x ={{Citation needed span|text=128…255 (80h…FFh)|date=August 2020|reason=The disassembled 6502 ROM examples suggest that the values representing positive exponents span from 81h…FFh, not 80h…FFh, or that the comments in the byte-exact disassembly are misleading, or that the implementations for 6502 and x86 differ}} द्वारा दर्शाया गया है , x = 0 (00h) के लिए विशेष स्थिति में, पूर्ण संख्या शून्य होने का प्रतिनिधित्व करती है।


एमबीएफ डबल-प्रिसिजन प्रारूप आईईईई 754 प्रारूप की तुलना में कम स्केल प्रदान करता है, और हालांकि प्रारूप स्वयं परिशुद्धता का लगभग अतिरिक्त दशमलव अंक प्रदान करता है, व्यवहार में संग्रहीत मान कम सटीक होते हैं क्योंकि आईईईई गणना 80-बिट मध्यवर्ती परिणामों का उपयोग करती है, और एमबीएफ नहीं करता है।<ref name="Microsoft_2006_KB35826"/><ref name="StackOverflow_2010_MASM50"/><ref name="Borland_1994_MBF"/><ref name="Google"/>IEEE फ़्लोटिंग पॉइंट के विपरीत, MBF असामान्य संख्याओं, [[अनंतता]] या [[NaN]]s का समर्थन नहीं करता है।<ref name="Bucknall_2018_MBF"/>
एमबीएफ डबल-प्रिसिजन प्रारूप आईईईई 754 प्रारूप की तुलना में कम स्केल प्रदान करता है, और चूँकि प्रारूप स्वयं परिशुद्धता का लगभग अतिरिक्त दशमलव अंक प्रदान करता है, व्यवहार में संग्रहीत मान कम सटीक होते हैं क्योंकि आईईईई गणना 80-बिट मध्यवर्ती परिणामों का उपयोग करती है, और एमबीएफ नहीं करता है।<ref name="Microsoft_2006_KB35826" /><ref name="StackOverflow_2010_MASM50" /><ref name="Borland_1994_MBF" /><ref name="Google" /> इस प्रकार IEEE फ़्लोटिंग पॉइंट के विपरीत, एमबीएफ असामान्य संख्याओं, [[अनंतता]] या [[NaN]]s का समर्थन नहीं करता है।<ref name="Bucknall_2018_MBF" />
एमबीएफ एकल-परिशुद्धता प्रारूप (32 बिट्स, 6-अंकीय बेसिक):<ref name="Borland_1994_MBF"/><ref name="Steil_2008_6502"/>
 
एमबीएफ एकल-परिशुद्धता प्रारूप (32 बिट्स, 6-अंकीय बेसिक):<ref name="Borland_1994_MBF" /><ref name="Steil_2008_6502" />
{| class="wikitable"
{| class="wikitable"
|-
|-
! Exponent !! Sign !! Significand
! प्रतिपादक !! साइन !! महत्व
|-
|-
! 8&nbsp;bits,<br/>bit&nbsp;31–24 !! 1&nbsp;bit,<br/>bit&nbsp;23 !! 23&nbsp;bits,<br/>bit&nbsp;22–0
! 8&nbsp;bits,<br />bit&nbsp;31–24 !! 1&nbsp;bit,<br />bit&nbsp;23 !! 23&nbsp;bits,<br />bit&nbsp;22–0
|-
|-
| xxxxxxxx || s || mmmmmmmmmmmmmmmmmmmmmmm
| xxxxxxxx || s || mmmmmmmmmmmmmmmmmmmmmmm
Line 39: Line 37:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Exponent !! Sign !! Significand
! प्रतिपादक !! साइन !! महत्व
|-
|-
! 8&nbsp;bits,<br/>bit&nbsp;39–32 !! 1&nbsp;bit,<br/>bit&nbsp;31 !! 31&nbsp;bits,<br/>bit&nbsp;30–0
! 8&nbsp;bits,<br/>bit&nbsp;39–32 !! 1&nbsp;bit,<br/>bit&nbsp;31 !! 31&nbsp;bits,<br/>bit&nbsp;30–0
Line 48: Line 46:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Exponent !! Sign !! Significand
! प्रतिपादक !! साइन !! महत्व
|-
|-
! 8&nbsp;bits,<br/>bit&nbsp;63–56 !! 1&nbsp;bit,<br/>bit&nbsp;55 !! 55&nbsp;bits,<br/>bit&nbsp;54–0
! 8&nbsp;bits,<br/>bit&nbsp;63–56 !! 1&nbsp;bit,<br/>bit&nbsp;55 !! 55&nbsp;bits,<br/>bit&nbsp;54–0
Line 54: Line 52:
| xxxxxxxx || s || mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
| xxxxxxxx || s || mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
|}
|}
==उदाहरण==
==उदाहरण==
*10 :<ref name="Steil_2008_FLOAT-S"/><ref name="Steil_2008_6502"/>: 32-बिट प्रारूप: 84 घंटे, 20 घंटे, 00 घंटे, 00 घंटे
** "10":<ref name="Steil_2008_FLOAT-S" /><ref name="Steil_2008_6502" />
: 40-बिट प्रारूप: 84 घंटे, 20 घंटे, 00 घंटे, 00 घंटे, 00 घंटे
*: 32-bit format: 84h, 20h, 00h, 00h
 
*: 40-bit format: 84h, 20h, 00h, 00h, 00h
*2 :
** "2":
: 32-बिट प्रारूप: 82 घंटे, 00 घंटे, 00 घंटे, 00 घंटे
*: 32-bit format: 82h, 00h, 00h, 00h
: 40-बिट प्रारूप: 82 घंटे, 00 घंटे, 00 घंटे, 00 घंटे, 00 घंटे
*: 40-bit format: 82h, 00h, 00h, 00h, 00h
 
** "1":<ref name="Steil_2008_FLOAT-S" /><ref name="Steil_2008_6502" />
*1 :<ref name="Steil_2008_FLOAT-S"/><ref name="Steil_2008_6502"/>: 32-बिट प्रारूप: 81 घंटे, 00 घंटे, 00 घंटे, 00 घंटे
*: 32-bit format: 81h, 00h, 00h, 00h
: 40-बिट प्रारूप: 81 घंटे, 00 घंटे, 00 घंटे, 00 घंटे, 00 घंटे
*: 40-bit format: 81h, 00h, 00h, 00h, 00h
 
** "0":<ref name="Borland_1994_MBF" />
* 0 :<ref name="Borland_1994_MBF"/>: 32-बिट प्रारूप: 00h, 00h, 00h, 00h (या 00h, xxh, xxh, xxh)
*: 32-bit format: 00h, 00h, 00h, 00h (or 00h, xxh, xxh, xxh)
: 40-बिट प्रारूप: 00h, 00h, 00h, 00h, 00h (या 00h, xxh, xxh, xxh, xxh)
*: 40-bit format: 00h, 00h, 00h, 00h, 00h (or 00h, xxh, xxh, xxh, xxh)
 
** "0.5"::<ref name="Steil_2008_FLOAT-S" /><ref name="Steil_2008_6502" />
* 0.5 :<ref name="Steil_2008_FLOAT-S"/><ref name="Steil_2008_6502"/>: 32-बिट प्रारूप: 80h, 00h, 00h, 00h
*: 32-bit format: 80h, 00h, 00h, 00h
: 40-बिट प्रारूप: 80h, 00h, 00h, 00h, 00h
*: 40-bit format: 80h, 00h, 00h, 00h, 00h
 
** "0.25":<ref name="Steil_2008_TRIG-S" /><ref name="Steil_2008_6502" />
* 0.25 :<ref name="Steil_2008_TRIG-S"/><ref name="Steil_2008_6502"/>: 32-बिट प्रारूप: 7Fh, 00h, 00h, 00h
*: 32-bit format: 7Fh, 00h, 00h, 00h
: 40-बिट प्रारूप: 7Fh, 00h, 00h, 00h, 00h
*: 40-bit format: 7Fh, 00h, 00h, 00h, 00h
 
** "-0.5":<ref name="Steil_2008_FLOAT-S" /><ref name="Steil_2008_6502" />
* -0.5 :<ref name="Steil_2008_FLOAT-S"/><ref name="Steil_2008_6502"/>: 32-बिट प्रारूप: 80h, 80h, 00h, 00h
*: 32-bit format: 80h, 80h, 00h, 00h
: 40-बिट प्रारूप: 80h, 80h, 00h, 00h, 00h
*: 40-bit format: 80h, 80h, 00h, 00h, 00h
 
** "sqrt(0.5)":<ref name="Steil_2008_FLOAT-S" /><ref name="Steil_2008_6502" />
* वर्ग(0.5) :<ref name="Steil_2008_FLOAT-S"/><ref name="Steil_2008_6502"/>: 32-बिट प्रारूप: 80h, 35h, 04h, F3h
*: 32-bit format: 80h, 35h, 04h, F3h
: 40-बिट प्रारूप: 80h, 35h, 04h, F3h, 34h
*: 40-bit format: 80h, 35h, 04h, F3h, 34h
 
** "sqrt(2)":<ref name="Steil_2008_FLOAT-S" /><ref name="Steil_2008_6502" />
* वर्ग(2) :<ref name="Steil_2008_FLOAT-S"/><ref name="Steil_2008_6502"/>: 32-बिट प्रारूप: 81 घंटे, 35 घंटे, 04 घंटे, F3h
*: 32-bit format: 81h, 35h, 04h, F3h
: 40-बिट प्रारूप: 81 घंटे, 35 घंटे, 04 घंटे, एफ3एच, 34 घंटे
*: 40-bit format: 81h, 35h, 04h, F3h, 34h
 
** "ln(2)":<ref name="Steil_2008_FLOAT-S" /><ref name="Steil_2008_6502" />
* एलएन(2) :<ref name="Steil_2008_FLOAT-S"/><ref name="Steil_2008_6502"/>: 32-बिट प्रारूप: 80 घंटे, 31 घंटे, 72 घंटे, 18 घंटे
*: 32-bit format: 80h, 31h, 72h, 18h
: 40-बिट प्रारूप: 80h, 31h, 72h, 17h, F8h
*: 40-bit format: 80h, 31h, 72h, 17h, F8h
 
** "log<sub>2</sub>(e)":<ref name="Steil_2008_FLOAT-S" /><ref name="Steil_2008_6502" />
* लकड़ी का लट्ठा<sub>2</sub>(यह है) :<ref name="Steil_2008_FLOAT-S"/><ref name="Steil_2008_6502"/>: अकाबा प्रारूप: 81 एएच, इसे काटो, आह, इसे खेलो
*: 32-bit format: 81h, 38h, AAh, 3Bh
: 40-बिट प्रारूप: 81 आह, बाइट, आह, खेल, कहानी
*: 40-bit format: 81h, 38h, AAh, 3Bh, 29h
 
** "pi/2":<ref name="Steil_2008_TRIG-S" /><ref name="Steil_2008_6502" />
* बी ० ए :<ref name="Steil_2008_TRIG-S"/><ref name="Steil_2008_6502"/>: अकाबा प्रारूप: 81 एएच, 49 एएच, 0 एफएएच, डब्बा
*: 32-bit format: 81h, 49h, 0Fh, DBh
: 40-बिट प्रारूप: 81 एएच, 49 एएच, 0 फाह, दाह, अकाह
*: 40-bit format: 81h, 49h, 0Fh, DAh, A2h
 
** "2*pi":<ref name="Steil_2008_TRIG-S" /><ref name="Steil_2008_6502" />
* मेरे पिताजी :<ref name="Steil_2008_TRIG-S"/><ref name="Steil_2008_6502"/>: अकाबा प्रारूप: इसे रखें, 49 एच, 0 फाह, डब्बा
*: 32-bit format: 83h, 49h, 0Fh, DBh
: 40-बिट प्रारूप: इसे रखें, 49 एएच, 0 फाह, दाह, अकाह
*: 40-bit format: 83h, 49h, 0Fh, DAh, A2h
 
 
 
==यह भी देखें==
==यह भी देखें==
* [[फ़्लोटिंग-पॉइंट अंकगणित]]
* [[फ़्लोटिंग-पॉइंट अंकगणित]]
Line 104: Line 97:
* [[आईबीएम हेक्साडेसिमल फ़्लोटिंग-पॉइंट]]
* [[आईबीएम हेक्साडेसिमल फ़्लोटिंग-पॉइंट]]


==संदर्भ==
==संदर्भ                                                                                                                                                                                                             ==
{{reflist|refs=
{{reflist|refs=
<ref name="Microsoft_2006_KB35826">{{cite web |title=IEEE vs. Microsoft Binary Format; Rounding Issues (Complete) |publisher=[[Microsoft]] |work=Microsoft Support |id=Article ID KB35826, Q35826 |date=2006-11-21 |url=https://www.betaarchive.com/wiki/index.php/Microsoft_KB_Archive/35826#IEEE_vs._Microsoft_Binary_Format.3B_Rounding_Issues_.28Complete.29 |access-date=2010-02-24 |url-status=live |archive-url=https://web.archive.org/web/20200828130651/https://www.betaarchive.com/wiki/index.php/Microsoft_KB_Archive/35826 |archive-date=2020-08-28}}</ref>
<ref name="Microsoft_2006_KB35826">{{cite web |title=IEEE vs. Microsoft Binary Format; Rounding Issues (Complete) |publisher=[[Microsoft]] |work=Microsoft Support |id=Article ID KB35826, Q35826 |date=2006-11-21 |url=https://www.betaarchive.com/wiki/index.php/Microsoft_KB_Archive/35826#IEEE_vs._Microsoft_Binary_Format.3B_Rounding_Issues_.28Complete.29 |access-date=2010-02-24 |url-status=live |archive-url=https://web.archive.org/web/20200828130651/https://www.betaarchive.com/wiki/index.php/Microsoft_KB_Archive/35826 |archive-date=2020-08-28}}</ref>
Line 155: Line 148:
}}
}}


 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
==बाहरी संबंध==
==बाहरी संबंध                                                                                                                                                                                                                 ==
* Microsoft [https://web.archive.org/web/20101026203154/http://support.microsoft.com/kb/140520 provides] a dynamic link library for 16-bit Visual Basic containing functions to convert between MBF data and IEEE 754.
* Microsoft [https://web.archive.org/web/20101026203154/http://support.microsoft.com/kb/140520 provides] a dynamic link library for 16-bit Visual Basic containing functions to convert between एमबीएफ data and IEEE 754.
** This library wraps the MBF conversion functions in the 16-bit Visual C(++) CRT.
** This library wraps the एमबीएफ conversion functions in the 16-bit Visual C(++) CRT.
** These conversion functions will round an IEEE double-precision number like ¾ ⋅ 2<sup>−128</sup> to zero rather than to 2<sup>−128</sup>.
** These conversion functions will round an IEEE double-precision number like ¾ ⋅ 2<sup>−128</sup> to zero rather than to 2<sup>−128</sup>.
** They don't support [[denormal]]s at all: the IEEE or MBF single-precision number 2<sup>−128</sup> will be converted to zero, even though it is representable in either format.
** They don't support [[denormal]]s at all: the IEEE or एमबीएफ single-precision number 2<sup>−128</sup> will be converted to zero, even though it is representable in either format.
** This library is only intended for use with Visual Basic; C(++) programs are expected to call the CRT functions directly.
** This library is only intended for use with Visual Basic; C(++) programs are expected to call the CRT functions directly.
[[Category: बाइनरी अंकगणित]] [[Category: कंप्यूटर अंकगणित]] [[Category: तैरनेवाला स्थल]]


[[Category: Machine Translated Page]]
[[Category:All articles with unsourced statements]]
[[Category:Articles with unsourced statements from August 2020]]
[[Category:CS1 Deutsch-language sources (de)]]
[[Category:CS1 location test]]
[[Category:Created On 25/07/2023]]
[[Category:Created On 25/07/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:कंप्यूटर अंकगणित]]
[[Category:तैरनेवाला स्थल]]
[[Category:बाइनरी अंकगणित]]

Latest revision as of 15:37, 8 September 2023

कम्प्यूटिंग में, माइक्रोसॉफ्ट बाइनरी फॉर्मेट (एमबीएफ) फ़्लोटिंग पॉइंट नंबरों के लिए प्रारूप है जिसका उपयोग वर्जन 4.00 से पहले एमबीएएसआईसी, जीडब्ल्यू-बेसिक और क्विकबेसिक सहित माइक्रोसॉफ्ट की बेसिक भाषाओं में किया जाता था।[1][2][3][4][5][6][7]

प्रारूप के दो मुख्य वर्जन हैं. मूल वर्जन को मेमोरी-बाधित सिस्टम और 32 बिट्स (4 बाइट्स) में संग्रहीत संख्याओं के लिए डिज़ाइन किया गया था, जिसमें 23-बिट सिग्नेचर, 1-बिट साइन और 8-बिट प्रतिपादक था। माइक्रोसॉफ्ट बेसिक या एक्सटेंडेड बेसिक-80 या एक्सटेंडेड (12के) बेसिक में 64 बिट्स के साथ डबल-प्रिसिजन प्रकार सम्मिलित है।

उस अवधि के समय जब इसे इंटेल 8080 प्लेटफ़ॉर्म से एमओएस 6502 प्रोसेसर में पोर्ट किया जा रहा था इस प्रकार प्रोसेसर कम्प्यूटर मानक सुविधा के रूप में अधिक मेमोरी के साथ शिप करना प्रारंभ कर रहे थे। यह वर्जन मूल 32-बिट प्रारूप या वैकल्पिक विस्तारित 40-बिट (5-बाइट) प्रारूप के साथ प्रस्तुत किया गया था। 40-बिट प्रारूप का उपयोग 1970 और 1980 के दशक के अधिकांश पोर्टेबल कंप्यूटरों द्वारा किया जाता था। इन दो वर्जनों को कभी-कभी क्रमशः 6-अंकीय और 9-अंकीय के रूप में जाना जाता है।[8]

x86 प्रोसेसर वाले पीसी पर , क्विकबेसिक ने, वर्जन 4 से पहले, 64-बिट (8-बाइट) प्रारूप में 55-बिट मंटिसा का उपयोग करके डबल-प्रिसिजन प्रारूप को फिर से प्रस्तुत किया था। इस प्रकार क्विकबेसिक 4 में स्पेसांतरण के समय एमबीएफ को छोड़ दिया गया था, जो कुछ साल पहले प्रस्तुत किए गए मानक IEEE 754 प्रारूप का उपयोग करता था।

इतिहास

बिल गेट्स और पॉल एलन 1975 में अल्टेयर बेसिक पर कार्य कर रहे थे। वह हार्वर्ड यूनिवर्सिटी में डीईसी पीडीपी-10 पर अपना अल्टेयर 8800 एमुलेटर चलाकर सॉफ्टवेयर विकसित कर रहे थे।[9] एक चीज़ की कमी थी उनके पास फ्लोटिंग-पॉइंट संख्याओं को संभालने के लिए कोड था, इस प्रकार जो बहुत बड़ी और बहुत छोटी संख्याओं के साथ गणना का समर्थन करने के लिए आवश्यक था,[9] जो विज्ञान और इंजीनियरिंग के लिए विशेष रूप से उपयोगी होता है।[10][11] अल्टेयर के प्रस्तावित उपयोगों में से वैज्ञानिक कैलकुलेटर के रूप में था।[12]

अल्टेयर 8800 फ्रंट पैनल

हार्वर्ड के स्नातक क्यूरियर हाउस (हार्वर्ड कॉलेज) में रात्रिभोज में, गेट्स और एलन ने अपने रात्रिभोज साथियों से शिकायत की कि उन्हें यह कोड लिखना होगा [9] और उनमें से एक, मोंटे डेविडॉफ़ ने उन्हें बताया कि उसने पहले फ़्लोटिंग-पॉइंट रूटीन लिखा था और गेट्स और एलन को आश्वस्त किया कि वह अल्टेयर बेसिक फ़्लोटिंग-पॉइंट कोड लिखने में सक्षम था।[9] उस समय, जबकि आईबीएम ने अपने स्वयं के प्रोग्राम प्रस्तुत किए थे, फ़्लोटिंग-पॉइंट नंबरों के लिए कोई मानक नहीं था, इसलिए डेविडऑफ़ को अपने स्वयं के प्रोग्राम के साथ आना पड़ा था। उन्होंने निर्णय लिया कि 32 बिट्स पर्याप्त रेंज और सटीकता की अनुमति देंगे।[13] जब एलन को इसे माइक्रो इंस्ट्रुमेंटेशन और टेलीमेट्री सिस्टम में प्रदर्शित करना था, इस प्रकार जिससे यह पहली बार था जब यह वास्तविक अल्टेयर पर चला जाता है।[14] किन्तु यह कार्य कर गया था, और जब उन्होंने 'PRINT 2+2' में प्रवेश किया था, तो डेविडऑफ़ के ऐडिंग रूटीन ने सही उत्तर दिया था।[9]

अल्टेयर बेसिक के स्रोत कोड की प्रति 1999 में फिर से सामने आई थी। 1970 के दशक के अंत में, गेट्स के पूर्व शिक्षक और डीन हैरी आर. लुईस ने इसे एडेन के कार्यालय में कुछ फर्नीचर के पीछे पाया था, और इसे फ़ाइल कैबिनेट में रख दिया था। इस प्रकार लंबे समय तक इसके अस्तित्व के बारे में कमोबेश भूलने के बाद, लुईस अंततः लॉबी में सूची प्रदर्शित करने का विचार लेकर आए। इसके अतिरिक्त, लाइब्रेरियन और संरक्षक जेनिस मेरिल-ओल्डम द्वारा इसके महत्व को बताए जाने के बाद, मूल सूची को संरक्षित करने और प्रदर्शन और संरक्षण के लिए कई प्रतियां तैयार करने का निर्णय लिया गया था।[15][16] स्रोत में टिप्पणी डेविडॉफ़ को अल्टेयर बेसिक के गणित पैकेज के लेखक के रूप में श्रेय देती है।[15][16]

रेडियो शेक टैंडी टीआरएस-80 मॉडल I सिस्टम

अल्टेयर बेसिक की प्रारंभ हुई और जल्द ही अधिकांश प्रारंभी पोर्टेबल कंप्यूटरों में माइक्रोसॉफ्ट बेसिक का कोई न कोई रूप चलने लगा था।[17][18]एमओएस टेक्नोलॉजी 6502 सीपीयू के लिए बेसिक पोर्ट, जैसे कि कमोडोर पीईटी में उपयोग किया जाता है, जिसने 6502 के कम कोड घनत्व के कारण अधिक स्पेस ले लीया था। इस कारण से यह संभवतः मशीन-विशिष्ट इनपुट और आउटपुट कोड के साथ एकल ROM चिप में फिट नहीं होता है। चूँकि अतिरिक्त चिप आवश्यक थी, अतिरिक्त स्पेस उपलब्ध था, और इस प्रकार इसका उपयोग फ्लोटिंग-पॉइंट प्रारूप को 32 से 40 बिट्स तक बढ़ाने के लिए किया गया था।[8] यह विस्तारित प्रारूप न केवल कमोडोर बेसिक 1 और 2 द्वारा प्रदान किया गया था, किन्तु वर्जन 1.1 (1977) से एप्पलसॉफ्ट बेसिक I और II, वर्जन 1.1ए (1977) से केआईएम-1 बेसिक और वर्जन 2बी (1980) से टेंजेरीन माइक्रोटैन 65 बेसिक द्वारा भी समर्थित था।[8] कुछ ही समय बाद, ज़िलॉग Z80 पोर्ट, जैसे कि TRS-80 (1978) के लिए TRS-80 लेवल II बेसिक, ने 64-बिट, डबल-प्रिसिजन फॉर्मेट को 32-बिट, सिंगल-प्रिसिजन से अलग डेटा प्रकार के रूप में प्रस्तुत किया था।[19][20][21] इस प्रकार माइक्रोसॉफ्ट ने फोरट्रान के कार्यान्वयन में समान फ़्लोटिंग-पॉइंट प्रारूपों का उपयोग किया था [22] और उनके मैक्रो असेंबलर एमएएसएम के लिए,[23] चूँकि उनकी स्प्रेडशीट मल्टीप्लान है [24][25] और उनके कोबोल कार्यान्वयन में बाइनरी-कोडित दशमलव (बीसीडी) फ़्लोटिंग पॉइंट का उपयोग किया गया था।[26] फिर भी, कुछ समय के लिए एमबीएफ पोर्टेबल कंप्यूटरों पर वास्तविक फ़्लोटिंग-पॉइंट प्रारूप बन गया, इस सीमा तक कि लोग अभी भी कभी-कभी इसका उपयोग करते हुए विरासत फ़ाइलों और फ़ाइल स्वरूपों का सामना करते हैं।[27][28][29][30][31][32]

वैक्स-11/780 मिनीकंप्यूटर

एक समानांतर विकास में, इंटेल ने 1976 में फ्लोटिंग-पॉइंट सह प्रोसेसर का विकास प्रारंभ किया था।[33][34] इंटेल के सलाहकार के रूप में विलियम मोर्टों कहाँ ने सुझाव दिया कि इंटेल डिजिटल इक्विपमेंट कॉर्पोरेशन (DEC) VAX के फ्लोटिंग पॉइंट का उपयोग करे। पहला VAX, VAX-11/780 1977 के अंत में सामने आया था, और इसके फ्लोटिंग पॉइंट को अत्यधिक महत्व दिया गया था। VAX का फ़्लोटिंग-पॉइंट प्रारूप एमबीएफ से केवल इस मायने में भिन्न था कि इसमें सबसे महत्वपूर्ण बिट में साइन था।[35][36] चूँकि, अपनी चिप को यथासंभव व्यापक मार्केट में बेचने के लिए, काहन को विशिष्टताओं को तैयार करने के लिए कहा गया था।[33] जब इंटेल की नई चिप की अफवाहें उसके प्रतिस्पर्धियों तक पहुंचीं थी, जिससे उन्होंने इंटेल को बहुत अधिक बढ़त प्राप्त करने से रोकने के लिए आईईईई 754-1985 नामक मानकीकरण प्रयास प्रारंभ किया था। चूंकि 8-बिट प्रतिपादक दोहरे-परिशुद्धता संख्याओं के लिए वांछित कुछ परिचालनों के लिए पर्याप्त चौड़ा नहीं था, उदाहरण के लिए दो 32-बिट संख्याओं के उत्पाद को संग्रहीत करने के लिए,[1] इंटेल के प्रस्ताव और डीईसी के प्रति-प्रस्ताव में 11 बिट्स का उपयोग किया गया था, जैसे 1965 से सीडीसी 6600 का समय-परीक्षणित सीडीसी 6600 या 60-बिट फ़्लोटिंग पॉइंट या 60-बिट फ़्लोटिंग-पॉइंट प्रारूप [34][37][38] कहन के प्रस्ताव में अनन्तताओं का भी प्रावधान किया गया है, जो विभाजन-दर-शून्य स्थितियों से निपटने में उपयोगी होते हैं; नॉट-ए-नंबर मान, जो अमान्य संचालन से निपटने में उपयोगी होते हैं; इस प्रकार असामान्य संख्याएँ, जो अंडरफ्लो के कारण होने वाली समस्याओं को कम करने में सहायता करती हैं;[37][39][40] और उत्तम संतुलित प्रतिपादक पूर्वाग्रह, जो किसी संख्या का व्युत्क्रम लेते समय अतिप्रवाह और अल्पप्रवाह से बचने में सहायता कर सकता है।[41][42]

जब तक क्विकबेसिक 4.00 जारी किया गया था, इस प्रकार IEEE 754 मानक व्यापक रूप से अपनाया गया था उदाहरण के लिए, इसे इंटेल के इंटेल 387 सहप्रोसेसर और इंटेल 80486 से प्रत्येक x86 प्रोसेसर में सम्मिलित किया गया था। क्विकबेसिक वर्जन 4.0 और 4.5 डिफ़ॉल्ट रूप से IEEE 754 फ़्लोटिंग-पॉइंट वेरिएबल का उपयोग करते हैं, किन्तु (कम से कम वर्जन 4.5 में) कमांड-लाइन विकल्प है इस प्रकार /MBF आईडीई और कंपाइलर के लिए जो आईईईई से एमबीएफ फ्लोटिंग-पॉइंट नंबरों पर स्विच करता है, इस प्रकार पहले से लिखे गए प्रोग्रामों का समर्थन करने के लिए जो एमबीएफ डेटा प्रारूपों के विवरण पर विश्वास करते हैं। विज़ुअल बेसिक (क्लासिक) भी एमबीएफ के अतिरिक्त आईईईई 754 प्रारूप का उपयोग करता है।

तकनीकी विवरण

एमबीएफ संख्याओं में 8- बिट्स बेस-2 एक्सपोनेंट, साइन बिट (पॉजिटिव मंटिसा: s = 0; नेगेटिव मंटिसा: s = 1) और 23- सम्मिलित होता है।[43][8] 31- [8] या 55-बिट [43] महत्व का मंटिसा स्पष्ट मंटिसा के बाईं ओर सदैव 1-बिट निहित होता है, और रेडिक्स बिंदु इस कल्पित बिट से पहले स्थित होता है. प्रतिपादक 128[citation needed] को प्रतिपादक पूर्वाग्रह के साथ एन्कोड किया गया है , जिससे प्रतिपादक −127…−1[citation needed] को x =1…127 (01h…7Fh)[citation needed] द्वारा दर्शाया गया है , प्रतिपादक 0…127[citation needed] को x =128…255 (80h…FFh)[citation needed] द्वारा दर्शाया गया है , x = 0 (00h) के लिए विशेष स्थिति में, पूर्ण संख्या शून्य होने का प्रतिनिधित्व करती है।

एमबीएफ डबल-प्रिसिजन प्रारूप आईईईई 754 प्रारूप की तुलना में कम स्केल प्रदान करता है, और चूँकि प्रारूप स्वयं परिशुद्धता का लगभग अतिरिक्त दशमलव अंक प्रदान करता है, व्यवहार में संग्रहीत मान कम सटीक होते हैं क्योंकि आईईईई गणना 80-बिट मध्यवर्ती परिणामों का उपयोग करती है, और एमबीएफ नहीं करता है।[1][3][43][44] इस प्रकार IEEE फ़्लोटिंग पॉइंट के विपरीत, एमबीएफ असामान्य संख्याओं, अनंतता या NaNs का समर्थन नहीं करता है।[45]

एमबीएफ एकल-परिशुद्धता प्रारूप (32 बिट्स, 6-अंकीय बेसिक):[43][8]

प्रतिपादक साइन महत्व
8 bits,
bit 31–24
1 bit,
bit 23
23 bits,
bit 22–0
xxxxxxxx s mmmmmmmmmmmmmmmmmmmmmmm

एमबीएफ विस्तारित-परिशुद्धता प्रारूप (40 बिट्स, 9-डिजिट बेसिक ):[8]

प्रतिपादक साइन महत्व
8 bits,
bit 39–32
1 bit,
bit 31
31 bits,
bit 30–0
xxxxxxxx s mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

एमबीएफ डबल-प्रिसिजन प्रारूप (64 बिट्स):[43][1]

प्रतिपादक साइन महत्व
8 bits,
bit 63–56
1 bit,
bit 55
55 bits,
bit 54–0
xxxxxxxx s mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

उदाहरण

  • 32-bit format: 84h, 20h, 00h, 00h
    40-bit format: 84h, 20h, 00h, 00h, 00h
    • "2":
    32-bit format: 82h, 00h, 00h, 00h
    40-bit format: 82h, 00h, 00h, 00h, 00h
    32-bit format: 81h, 00h, 00h, 00h
    40-bit format: 81h, 00h, 00h, 00h, 00h
    32-bit format: 00h, 00h, 00h, 00h (or 00h, xxh, xxh, xxh)
    40-bit format: 00h, 00h, 00h, 00h, 00h (or 00h, xxh, xxh, xxh, xxh)
    32-bit format: 80h, 00h, 00h, 00h
    40-bit format: 80h, 00h, 00h, 00h, 00h
    32-bit format: 7Fh, 00h, 00h, 00h
    40-bit format: 7Fh, 00h, 00h, 00h, 00h
    32-bit format: 80h, 80h, 00h, 00h
    40-bit format: 80h, 80h, 00h, 00h, 00h
    32-bit format: 80h, 35h, 04h, F3h
    40-bit format: 80h, 35h, 04h, F3h, 34h
    32-bit format: 81h, 35h, 04h, F3h
    40-bit format: 81h, 35h, 04h, F3h, 34h
    32-bit format: 80h, 31h, 72h, 18h
    40-bit format: 80h, 31h, 72h, 17h, F8h
    32-bit format: 81h, 38h, AAh, 3Bh
    40-bit format: 81h, 38h, AAh, 3Bh, 29h
    32-bit format: 81h, 49h, 0Fh, DBh
    40-bit format: 81h, 49h, 0Fh, DAh, A2h
    32-bit format: 83h, 49h, 0Fh, DBh
    40-bit format: 83h, 49h, 0Fh, DAh, A2h

यह भी देखें

संदर्भ

  1. 1.0 1.1 1.2 1.3 "IEEE vs. Microsoft Binary Format; Rounding Issues (Complete)". Microsoft Support. Microsoft. 2006-11-21. Article ID KB35826, Q35826. Archived from the original on 2020-08-28. Retrieved 2010-02-24.
  2. "(Complete) Tutorial to Understand IEEE Floating-Point Errors". Knowledge Base. Microsoft. 2005-08-16. Article ID KB42980, Q42980. Archived from the original on 2020-08-28. Retrieved 2016-06-02.
  3. 3.0 3.1 "Convert pre-IEEE-754 C++ floating-point numbers to/from C#". stackoverflow.com. 2010-04-21. Archived from the original on 2020-08-28. Retrieved 2016-06-02. (NB. The second reference could be mistaken to say that QB 4.0 could use MBF internally, but it only uses IEEE. It just has a few conversion functions to convert IEEE floating point numbers to strings containing MBF data, e.g. MKDMBF$ in addition to MKD$ which just copies the bytes of the IEEE value to a string.)
  4. "The MASM 6.1 documentation notes that 5.1 was the last MASM version to support MBF" (PDF). people.sju.edu. Retrieved 2016-06-02.
  5. GW-BASIC User's Manual, Appendix D.3 USR Function Calls.
  6. BASIC Second edition (May 1982), IBM: Appendix C-15 (NB. This is the BASICA manual).
  7. "ROM Routes (Integer Math)". Trs-80.com. Retrieved 2016-06-02.
  8. 8.00 8.01 8.02 8.03 8.04 8.05 8.06 8.07 8.08 8.09 8.10 8.11 8.12 8.13 8.14 8.15 8.16 8.17 Steil, Michael (2008-10-20). "Create your own Version of Microsoft BASIC for 6502". pagetable.com. Archived from the original on 2016-05-30. Retrieved 2016-05-30.
  9. 9.0 9.1 9.2 9.3 9.4 Isaacson, Walter (2013-09-20). "Dawn of a revolution". Harvard Gazette. news.harvard.edu. Archived from the original on 2020-08-28. Retrieved 2016-05-30.
  10. Rall, Louis B. (1987). "An introduction to the scientific computing language Pascal-SC". Computers & Mathematics with Applications. Mathematics Research Center, University of Wisconsin-Madison, Madison, Wisconsin: Pergamon Journals Ltd. 14 (1): 53–69. doi:10.1016/0898-1221(87)90181-7. (17 pages)
  11. Leung, K. Ming (2005-02-03) [2000]. "Floating-Point Numbers in Digital Computers" (PDF). cis.poly.edu. Department of Computer and Information Science, Polytechnic University. Archived (PDF) from the original on 2018-12-14. Retrieved 2016-06-02.
  12. Becraft, Michael B. (2014-08-26). Bill Gates: A Biography. ISBN 978-1-44083014-3. Retrieved 2016-05-30.
  13. "The Math Package". altairbasic.org. 2014. Archived from the original on 2020-08-28. Retrieved 2016-05-30. (NB. Altair BASIC 3.2 (4K Edition).)
  14. Orlowski, Andrew (2001-05-11). "Microsoft Altair BASIC legend talks about Linux, CPRM and that very frightening photo - A very rare interview with Monte Davidoff". The Register. Archived from the original on 2020-08-28. Retrieved 2016-05-30.
  15. 15.0 15.1 Orlowski, Andrew (2001-05-13). "Raiders of the Lost Altair BASIC Source Code - They came, they saw … they disassembled". The Register. Archived from the original on 2020-08-28. Retrieved 2016-05-30.
  16. 16.0 16.1 Griffiths, Ian (2000-05-08). "Quest for the Holy Source - Ian's trip to Harvard". Archived from the original on 2002-01-02. Retrieved 2016-05-30.
  17. "Great people personally responsible for advancing the art of early computers". Oldcomputers.net. 2020-07-18. Archived from the original on 2020-08-28. Retrieved 2016-05-30.
  18. "Basic 7.0 for Windows". comp.lang.basic.powerbasic.narkive.com. Archived from the original on 2020-08-28. Retrieved 2016-05-30.
  19. Radio Shack Hardware Manual: Level II BASIC Reference Manual (1 ed.). Fort Worth, Texas: Radio Shack. 1978. Archived from the original on 2020-08-28. Retrieved 2016-05-30. [1]
  20. Level II BASIC Reference Manual (PDF). 1979. Retrieved 2016-06-02. {{cite book}}: |website= ignored (help)
  21. BASIC-80 (MBASIC) Reference Manual (PDF). Retrieved 2016-05-30.
  22. Microsoft FORTRAN-80 Version 3.4 Users Manual (PDF). November 1980. pp. 45, 55. Retrieved 2016-05-30. {{cite book}}: |website= ignored (help)
  23. Pätzold, Michael, ed. (April 1993). "Zettelsammlung MS-DOS und AT" (in Deutsch). Gruppe Datenverarbeitung am MPI für Strömungsforschung Göttingen, Max-Planck-Institut. Archived from the original on 2005-02-20. Retrieved 2015-10-07.
  24. "Tandy 200 Multiplan Manual" (PDF). classiccmp.org. Retrieved 2016-06-02.
  25. Microsoft C Pcode Specifications, page 13. (NB. Multiplan wasn't compiled to machine code, but to a kind of byte-code which was run by an interpreter, in order to make Multiplan portable across the widely varying hardware of the time. This byte-code distinguished between the machine-specific floating point format to calculate on, and an external (standard) format, which was binary-coded decimal (BCD). The PACK and UNPACK instructions converted between the two.)
  26. Microsoft COBOL-80 (PDF). 1978. pp. 26, 32. Retrieved 2016-05-30. {{cite book}}: |website= ignored (help)
  27. Lee, Patrick Y. "QWK Mail Packet File Layout" (TXT). textfiles.com. Retrieved 2016-06-02.
  28. "CSI Millennium (CSIM) format with CSI Y2K extensions". csidata.com. Boca Raton, Florida: Commodity Systems, Inc. 1998-11-17. Archived from the original (TXT) on 2016-03-05. Retrieved 2016-06-02. […] This document describes the abandoned CompuTrac data format, which until recently was actively used by Equis' MetaStock charting software. […]
  29. Billard, Russ (2016-05-04) [2001-07-13]. "Converting Microsoft Binary Format to IEEE format Using VB 6". Archived from the original on 2020-08-28. Retrieved 2016-05-30.
  30. JerMyster (2003-07-02). "Help !Anybody know how to convert old M/S MBF value from Qbasic to VB6". Tek-Tips. Visual Basic (Classic) Forum. Archived from the original on 2020-08-28. Retrieved 2016-05-30.
  31. GL88. "Reading Binary Format (QBasic) with C#". Social.msdn.microsoft.com. Retrieved 2016-05-30.
  32. "Rmetrics - Reading MetaStock data format in R". R.789695.n4.nabble.com. 2013-09-30. Retrieved 2016-05-30.
  33. 33.0 33.1 "Intel and Floating-Point - Updating One of the Industry's Most Successful Standards - The Technology Vision for the Floating-Point Standard" (PDF). Intel. 2016. Archived from the original (PDF) on 2016-03-04. Retrieved 2016-05-30. (11 pages)
  34. 34.0 34.1 "An Interview with the Old Man of Floating-Point". cs.berkeley.edu. 1998-02-20. Retrieved 2016-05-30.
  35. "VAX Floating Point Numbers". nssdc.gsfc.nasa.gov. Archived from the original on 2020-08-28. Retrieved 2016-06-02. (NB. The VAX-11/780 did not implement the "G" format yet. Although this is not directly apparent from the tables because the structures have been cut up in two-byte words, the byte order is actually the same as on modern CPUs. There isn't enough room in the exponent range for NaNs, Infinity, infinities or denormals.)
  36. "VAX11 780" (PDF). Ece.cmu.edu. Retrieved 2016-06-02.
  37. 37.0 37.1 "IEEE 754: An Interview with William Kahan" (PDF). dr-chuck.com. Retrieved 2016-06-02.
  38. Thornton, James E. (1970). Written at Advanced Design Laboratory, Control Data Corporation. Design of a Computer: The Control Data 6600 (PDF) (1 ed.). Glenview, Illinois: Scott, Foresman and Company. LCCN 74-96462. Archived (PDF) from the original on 2020-08-28. Retrieved 2016-06-02. (1+13+181+2+2 pages)
  39. Kahan, William Morton. "Why do we need a floating-point arithmetic standard?" (PDF). cs.berkeley.edu. Retrieved 2016-06-02.
  40. Kahan, William Morton; Darcy, Joseph D. "How Java's Floating-Point Hurts Everyone Everywhere" (PDF). cs.berkeley.edu. Retrieved 2016-06-02.
  41. Turner, Peter R. (2013-12-21). Numerical Analysis and Parallel Processing: Lectures given at The Lancaster …. ISBN 978-3-66239812-8. Retrieved 2016-05-30.
  42. "Names for Standardized Floating-Point Formats" (PDF). cs.berkeley.edu. Retrieved 2016-06-02.
  43. 43.0 43.1 43.2 43.3 43.4 43.5 Borland staff (1998-07-02) [1994-03-10]. "Converting between Microsoft Binary and IEEE formats". Technical Information Database (TI1431C.txt). Embarcadero USA / Inprise (originally: Borland). ID 1400. Archived from the original on 2019-02-20. Retrieved 2016-05-30. […] _fmsbintoieee(float *src4, float *dest4) […] MS Binary Format […] byte order => m3 | m2 | m1 | exponent […] m1 is most significant byte => sbbb|bbbb […] m3 is the least significant byte […] m = mantissa byte […] s = sign bit […] b = bit […] MBF is bias 128 and IEEE is bias 127. […] MBF places the decimal point before the assumed bit, while IEEE places the decimal point after the assumed bit. […] ieee_exp = msbin[3] - 2; /* actually, msbin[3]-1-128+127 */ […] _dmsbintoieee(double *src8, double *dest8) […] MS Binary Format […] byte order => m7 | m6 | m5 | m4 | m3 | m2 | m1 | exponent […] m1 is most significant byte => smmm|mmmm […] m7 is the least significant byte […] MBF is bias 128 and IEEE is bias 1023. […] MBF places the decimal point before the assumed bit, while IEEE places the decimal point after the assumed bit. […] ieee_exp = msbin[7] - 128 - 1 + 1023; […]
  44. "Google Groups". Groups.google.com. Retrieved 2016-06-02.
  45. Bucknall, Julian M. (2018-11-03) [2007-10-23]. "Understanding single precision MBF". boyet.com. Archived from the original on 2019-02-20. Retrieved 2016-05-30. […] IEEE 754 Single format […] The exponent is biased by 127. There is an assumed 1 bit before the radix point (so the assumed mantissa is 1.ffff… where f's are the fraction bits) […] Microsoft Binary Format (single precision) […] The exponent is biased by 128. There is an assumed 1 bit after the radix point (so the assumed mantissa is 0.1ffff… where f's are the fraction bits) […] the IEEE mantissa is twice the MBF mantissa. […] to convert from MBF to IEEE single […] subtract 2 from the exponent (one for the bias change, one for the mantissa factor), and then rearrange the sign and exponent bits. The fraction does not change. To convert from IEEE single to MBF, […] add 2 to the exponent (one for the bias change, one for the mantissa factor), and then rearrange the sign and exponent bits. The fraction does not change. […]
  46. 46.0 46.1 46.2 46.3 46.4 46.5 46.6 46.7 Steil, Michael, ed. (2008-10-20). "msbasic/float.s". MIST64. Archived from the original on 2020-08-28. Retrieved 2020-08-28 – via github.com. [2] (NB. Commented 6502 disassembly listings, merged from several versions of Microsoft BASIC for 6502 between 1977 and 1982 to recreate byte-exact copies of the original ROMs for 10 different machines from different vendors.)
  47. 47.0 47.1 47.2 Steil, Michael, ed. (2008-10-20). "msbasic/trig.s". MIST64. Archived from the original on 2020-08-28. Retrieved 2020-08-28 – via github.com. [3] (NB. Commented 6502 disassembly listings, merged from several versions of Microsoft BASIC for 6502 between 1977 and 1982 to recreate byte-exact copies of the original ROMs for 10 different machines from different vendors.)


बाहरी संबंध

  • Microsoft provides a dynamic link library for 16-bit Visual Basic containing functions to convert between एमबीएफ data and IEEE 754.
    • This library wraps the एमबीएफ conversion functions in the 16-bit Visual C(++) CRT.
    • These conversion functions will round an IEEE double-precision number like ¾ ⋅ 2−128 to zero rather than to 2−128.
    • They don't support denormals at all: the IEEE or एमबीएफ single-precision number 2−128 will be converted to zero, even though it is representable in either format.
    • This library is only intended for use with Visual Basic; C(++) programs are expected to call the CRT functions directly.