Skip to main content

सामान्यीकृत अपूर्णांश बाइनरी विकल्प


मैं कैसे सी में संख्या को सामान्य करने के बारे में थोड़ा भ्रमित हूँ। मुझे पता है कि यदि आपके पास फ्लोटिंग-बिंदु बाइनरी वैल्यू 1101.101 की तरह कुछ है, तो यह दशमलव अंक 3 स्थितियों को बाईं ओर स्थानांतरित करके 1.101101 x 23 के रूप में सामान्य है। हालांकि, मुझे यकीन नहीं है कि कोड में यह कैसे करना है। तो अगर मेरे पास 10010000 एक्सपी 0 है और मुझे 01001000 एक्सपी 1 प्राप्त करना है, तो अंश फ़ील्ड 001 है और अंतिम परिणाम 010001 है। अगर मेरे पास 8 बिट नंबर है और अग्रणी 2 बिट्स 00 हैं, तो मैं इसे तब तक ले जाना चाहता हूं जब तक कि मैं नहीं 1 को ढूंढें, या यदि मेरे पास 01 का एक प्रमुख सा है तो यह पहले से ही सामान्यीकृत है 11 की एक अग्रणी 2 बिट के लिए समरूपता मैं इसे एक बाएं ओर ले जाता हूं इसलिए यदि मेरी संख्या 32 बिट थी, 1 संकेत के लिए, एक्सपोनेंट के लिए 8, मैन्टासा के लिए 23, तो मैं कुछ ऐसा करूँगा: और फिर कई और अगर दो अन्य दो प्रमुख बिट संख्या (00, 10) के लिए बयान मैं नहीं हूं मुझे यकीन है कि अगर मेरी लॉजिककोड सही है जैसे आप कहते हैं, आपको साइन, मैन्टिसा और एक्सपोनेंट निकालने की आवश्यकता है। विकिपीडिया से लिया गया आरेख दिखाता है कि यह सबसे सामान्य एकल परिशुद्धता फ़्लोटिंग प्वाइंट फॉर्मेट, आईईईई 754 के लिए कैसे निर्धारित किया गया है। प्रत्येक भाग को निकालने के लिए हमें नीचे दिए गए तीन चरणों में यह करने की आवश्यकता है। मेरे पास सी कोड नहीं है लेकिन मैं आपको उन कदमों को दिखाऊंगा जिनकी आपको आवश्यकता है। तीन हिस्सों को निकालने के बाद ही उन्हें ऊपर दिए गए चित्र में दिखाए गए बिट की स्थिति में रखें। यदि यह एक अहस्ताक्षरित संख्या है तो यह हमेशा 0 है। अगर इसके एमएसबी पर हस्ताक्षर किए गए हैं 2. एक्सपोनेंट यदि नंबर पर हस्ताक्षर किए गए हैं और नकारात्मक है तो आपको सभी बिट्स को फ्लिप करने और 1 को जोड़कर सकारात्मक बनाना होगा। यदि आप इसे नहीं छोड़ सकते हैं, जैसे कि यह है। एक्सपोनेंट को निकालने के लिए हमें पता होना चाहिए कि बाइनरी पॉइंट का मतलब कहां है। द्विआधारी बिंदु की स्थिति बी होना चाहिए (आपके उदाहरण में इसकी 3)। एमएसबी से पहले सा चलो, जो 1 हो पी (आपके उदाहरण में इसकी 6)। एक्सपोनेंट को ई 3. मंटिसा यह बिट्स के बराबर हो जाएगा पी-1 की स्थिति से नीचे बिट 0 तक। 0.148 2 को सामान्यीकृत फ्लोटिंग पॉइंट अंकगणित में प्रारूप (0.148) (0.00100101111।) के साथ 2 हम इसे 3 बिट्स को छोड़कर बाएं यह सामान्यीकृत (1.00101111) 2 2 एक्सपोनेंट 1164 (75) (1001011) 2 और मंटिसा (01001111) 2 तो फ़्लोटिंग प्वाइंट प्रेजेंटेशन (0100101100101111) 2 (4 बी 2 एफ) प्रतिनिधित्व ए है, लेकिन अगर हम नेनर्मलाइज्ड मंटिसा को 8 बिट रजिस्टर में संग्रहीत करते हैं, तो यह पिछले तीन 1 एस को संग्रहीत नहीं किया है और फिर मंथिसा (0.00100101) 2 से (1.00101000) 2) 1 एस के बजाय 3 0 एस डालने से प्रतिनिधित्व (0100101100101000) 2 (4 बी 28) प्रतिनिधित्व बी तो सामान्यीकृत करते समय, क्या प्रोसेसर को 8 बिट्स से अधिक की मानदंडित मांटिसा बिट्स को भी ध्यान में रखा जाता है या फिर इसे ठीक से चलाया जाता है जो एक सही है: ए या बी क्या यह मैंटिसा को संग्रहीत करता है निर्धारित बिंदु प्रतिनिधित्व में यह सब कैसे काम करता है मैं एक कस्टम फ्लोट में एक इंट को परिवर्तित करने की कोशिश कर रहा हूं, जिसमें उपयोगकर्ता एक्सप और मैन्टिसा के लिए आरक्षित बिट्स की मात्रा निर्दिष्ट करता है, लेकिन मैं समझता हूं कि रूपांतरण कैसे काम करता है। मेरे फ़ंक्शन को एट वैल्यू और इंट एक्सप (संख्या 2 एक्सपी) का प्रतिनिधित्व करने के लिए ले जाता है i. e मान 12, एक्सपी 4, रिटर्न 1 9 2। लेकिन मैं इन परिवर्तनों को बदलने के लिए मुझे क्या करने की प्रक्रिया को समझ में नहीं आता। Ive दिनों के लिए यह देख रहा था और आईईईई कनवर्टर वेब अनुप्रयोगों के साथ खेल रहा है, लेकिन मुझे न समझें कि सामान्यीकरण प्रक्रिया क्या है जैसे कि मैं देखता हूं कि इसकी चाल बाइनरी बिन्दु और एक्सपोनेंट को समायोजित करती है, लेकिन मुझे नहीं पता कि इसका क्या मतलब है, कोई भी मुझे जाने के लिए एक उदाहरण दे सकता है, इसके अलावा, मुझे समझ में नहीं आता कि एक्सपोनेंट पूर्वाग्रह क्या है। केवल एकमात्र जानकारी यह है कि आप अपने प्रतिपादक को केवल एक संख्या जोड़ते हैं, लेकिन मुझे यह समझ में नहीं आता कि क्यों Ive एक उदाहरण के लिए Google खोज रहा है जिसे मैं समझ सकता हूं लेकिन यह सिर्फ मेरे लिए कोई मतलब नहीं कर रहा है, 1 मार्च को 23:31 U2EF1 से पूछा गया है, तो मुझे कैसे पता चलेगा कि इसे कितनी बार स्थानांतरित किया जाना चाहिए जैसे उपयोगकर्ता के 4 बिट्स के लिए विनिर्देशन मैंटिसा, और मूल्य 3 है, मुझे कैसे पता है कि 0011 से 1000 तक बदलाव किया जा सकता है, मै अधिकतम वेल पावा (2, एलटीस्पिस्ड मैन्ट। बिट्स), -1 फिर मूल्य मान (0011) तक सही मूल्य तक अधिकतम हो, और एक काउंटर है कि मैं कितनी बार इस ndash करते हैं टॉमी के मार्च 1 15 को 23:51 एक फ्लोटिंग प्वाइंट नंबर सामान्यीकृत होता है जब हम अपने मैंटिसा के पूर्णांक भाग को 1 के बराबर बल देते हैं और इसके अंश का अंश जो कुछ भी हो पसंद। उदाहरण के लिए, यदि हम संख्या 13.25 लेते थे। जो बाइनरी में 1101.01 है, 1101 पूर्णांक हिस्सा होगा और 01 अंश अंश होगा। मैं 1101.01 (20) के रूप में 13.25 का प्रतिनिधित्व कर सकता था। लेकिन यह सामान्यीकृत नहीं है क्योंकि पूर्णांक भाग 1 नहीं है। हालांकि। अगर हम घाट को 1 से बढ़ाना चाहते हैं, तो हमें सही नंबर पर मंटिसा को स्थानांतरित करने की अनुमति है: यह प्रतिनिधित्व 1.10101 (23) 13.25 के सामान्यीकृत रूप है। उसने कहा, हम जानते हैं कि सामान्यीकृत फ्लोटिंग प्वाइंट नंबर हमेशा फॉर्म 1fffffff (2exp) में आएगा। दक्षता के लिए, हम द्विआधारी प्रतिनिधित्व में 1 इंटिजर भाग को संचय करने पर न कष्ट करते हैं, हम इसे अपने सामने दिखाते हैं। तो अगर हम आपको मैन्टिसा के लिए अपना कस्टम फ्लोट टाइप 5 बीट देना चाहते थे, तो हम जानते होंगे कि बिट्स 10100 वास्तव में 1.10100 के लिए खड़े होंगे। मानक 23-बिट मैन्टिसा के साथ यह एक उदाहरण है: एक्सपोनंट पूर्वाग्रह के लिए, मानक 32-बिट फ्लोट प्रारूप पर एक नज़र डालें, जो 3 भागों में विभाजित है: 1 साइन बिट, 8 एक्सपोनेंट बिट्स, और 23 मांटिसा बिट्स : एक्सपोनेंट 00000000 और 11111111 के विशेष उद्देश्यों (जैसे आईएनएफ और ना एनएन का प्रतिनिधित्व करना) है, इसलिए 8 एक्सपोनेंट बीट्स के साथ, हम 254 विभिन्न एक्सपोनेंट का प्रतिनिधित्व कर सकते हैं, उदाहरण के लिए 21 से 2254। लेकिन क्या अगर हम 2-3 का प्रतिनिधित्व करना चाहते हैं हम नकारात्मक प्रतिपादकों को कैसे प्राप्त कर सकते हैं। स्वरूप इस समस्या को ठीक से एक्सपोनेंट से 127 को घटाना इसलिए: 0000 0001 1 -127 -126 0010 1101 हो जाएगा 45 -127 -82 0111 1111 होगा 127-127 0 1001 0010 होगा 136-127 9 यह एक्सपोनेंट रेंज 21 से बदलता है। 2254 से 2-126। 2127 इसलिए हम नकारात्मक एक्सपोनेंट का प्रतिनिधित्व कर सकते हैं। सामान्यीकरण प्रक्रिया इनपुट को एक चुनिंदा श्रेणी में बदल देती है। बाइनरी 32 को उम्मीद है कि (1.05 लाख रुपए प्रति लीटर) सीमा तक न होने के लिए महत्व और (न कि मंटिसा) जब तक कि संख्या में न्यूनतम एक्सपोनेंट नहीं होता। उदाहरण: मान 12, एक्सपी 4 वैल्यू 12 (222), एक्सपी 4 3 वैल्यू 1.5, एक्सप 7 के समान है, क्योंकि महत्व और हमेशा 1 का अग्रणी अंक है (जब तक कि संख्या में न्यूनतम एक्सपोनेंट नहीं है), तब तक कोई ज़रूरत नहीं है संग्रह करना। और एक्सपोनेंट को 7 के रूप में संग्रहीत करने के बजाय। 127 के पूर्वाग्रह को इसमें जोड़ा जाता है मान 1.5 दशमलव - 1.1000 000 बाइनरी - 0.1000 000 संग्रहित बाइनरी (सभी में 23 बिट्स) एक्सप 7 - पूर्वाग्रह 7 एक्सपी - 134 दशमलव - 100410210 द्विआधारी बाइनरी पैटर्न को संरेखित किया गया है, एक प्रमुख 1 बीट के साथ महत्व और एक पूर्वाग्रह प्रतिपादक जब पक्षपाती एक्सपोनेंट 0 है - न्यूनतम मूल्य, निहित बिट 0 है और इतनी छोटी संख्या 0.0 को संग्रहीत किया जा सकता है। जब पक्षपाती एक्सपोनेंट 255 है - अधिकतम मान, संग्रहीत डेटा अब परिमित संख्याओं का प्रतिनिधित्व नहीं करता है, लेकिन अनन्तता और नॉन-ए-नंबर। अधिक विवरण के लिए संदर्भित लिंक देखें। टॉमी- चक्क्स और ईगेनचिरिस, साथ में अन्य लोगों ने उत्कृष्ट जवाब दिए हैं, लेकिन अगर मैं आपकी टिप्पणियों को सही तरीके से देख रहा हूं, तो आप अभी भी इस जानकारी को कैसे लेंगे और इसके उपयोग के नट्स और बोल्टों के साथ संघर्ष करने लगते हैं। एक कस्टम फ़्लोट प्रतिनिधित्व बनाने में जहां प्रयोक्ता बिछने वाले के लिए बिट्स की मात्रा को निर्दिष्ट करता है बुरा न लग रहा है, यह स्पष्ट है कि आप इसे पहले दर्जन बार कीचड़ के माध्यम से देख सकते हैं। मुझे लगता है कि मैं इसे साफ़ करने पर एक चाकू ले सकता हूं। आप IEEE754-सिंगल-प्रेसिजन-फ़्लोटिंग-पॉइंट प्रस्तुति से परिचित हैं: 1-बिट साइन-बिट 8-बिट पक्षपातपूर्ण प्रतिपादक (8-बिट अतिरिक्त-127 संकेतन में), और शेष 23-बिट मांटिसा। जब आप उपयोगकर्ता को प्रतिपादक में बिट्स की संख्या का चयन करने की अनुमति देते हैं, तो आपको नई उपयोगकर्ता द्वारा चुने गए सीमा के साथ काम करने के लिए एक्सपोनेंट नोटेशन को फिर से काम करना होगा। वह बदलाव क्या होगा, यह साइन-बिट हैंडलिंग को बदल देगा - नहीं। क्या यह मंटिसा हैंडलिंग बदल जाएगा - नहीं (आप अभी भी छिपी बिट प्रारूप में मैन्टिससग्निग्रिन्ड को कन्वर्ट करेंगे) इसलिए केवल एक चीज जिस पर आपको ध्यान देने की आवश्यकता है, वह एक्सपोनंट हैंडलिंग है। आप इस रीकॉल से कैसे संपर्क करेंगे, वर्तमान 8-बिट एक्सपोनेंट को अति-127 संकेतन कहा जाता है (जहां 127 7 बिट्स के लिए सबसे बड़ा मान का प्रतिनिधित्व करता है, जो कि किसी पूर्वाग्रह को समाहित और वर्तमान 8-बिट सीमा के भीतर व्यक्त किया जा सकता है। उपयोगकर्ता एक्सपोनेंट आकार के रूप में 6 बिट्स का चयन करता है, तो आपको एक ऐसी ही विधि प्रदान करना होगा जो आपको बीमा करने के लिए एक निश्चित संख्या है जो आपके नए अतिरिक्त - उस नोटेशन का प्रतिनिधित्व करता है जो उपयोगकर्ता सीमा के भीतर काम करेगा। निष्पक्ष एक्सपोनेंट मान के लिए एक विकल्प 31 (सबसे बड़ा मान जो 5-बिट में प्रदर्शित किया जा सकता है) के रूप में करने की कोशिश की जा सकती है। इसके लिए आप एक ही तर्क (उपरोक्त 13.25 उदाहरण लेते हुए) लागू कर सकते हैं। संख्या के लिए आपका द्विआधारी प्रतिनिधित्व 1101.01 है जिस पर आप दशमलव 3 पदों को 1.10101 प्राप्त करने के लिए ले जाते हैं, जो आपको 3 के एक झुकाव पूर्वाग्रह देता है। आपके 6-बिट प्रतिपादक मामले में आप 3,1 अंक जोड़कर एक्सपोनेंट: 100010 के लिए अपने अतिरिक्त 31 अंकन प्राप्त करेंगे। छिपी बिट प्रारूप में मंटिसा (अर्थात् ली छोड़ दें 1.10101 से 1 विज्ञापन देना जिसके परिणामस्वरूप आपके नए कस्टम टॉमी प्रेसिजन प्रतिनिधित्व: 1-बिट साइन-बिट के साथ 6-बिट पक्षपातपूर्ण प्रतिपादक (6-बिट अतिरिक्त -31 अंकन में), और शेष 25-बिट मांटिसा उपरोक्त नोटेशन से आपके फ़्लोटिंग प्वाइंट नंबर को वापस पाने के लिए प्रक्रिया को पीछे करने के लिए समान नियम लागू होंगे। (एक्सपोनेंट के पूर्वाग्रह को वापस करने के लिए 127 के बजाय 31 का प्रयोग) उम्मीद है कि यह किसी तरह से मदद करता है। अगर आप वास्तव में किसी उपयोगकर्ता द्वारा चुने गए प्रतिपादक आकार के लिए अनुमति देने जा रहे हैं, तो मैं बहुत कुछ नहीं देख सकता हूं। याद रखें, आईईईई -754 मानक कुछ ऐसा नहीं था जिस पर अनुमान लगाया गया था और बहुत अच्छा तर्क और व्यापार-बंद 1-8-23 चिह्न-एक्सपोनेंट-मांटिसा लेआउट पर पहुंचने में चला गया। हालांकि, मुझे लगता है कि आपका व्यायाम मानक को समझने के लिए आपको एक महान काम करता है इस चर्चा में अब पूरी तरह से खो गया और न ही संबोधित किया गया है, यह इस संख्या के रेंज पर क्या प्रभाव होगा जो इस कस्टम प्रेसिजन फ़्लोटिंग प्वाइंट प्रस्तुतीकरण में दर्शाया जा सकता है। मैंने इसे देखा, लेकिन प्राथमिक सीमा MAXMIN में प्रतिनिधित्व किया जा सकता है जो कम हो सकता है। उत्तर दिया Mar 2 15 10: 53 शुभकामनाएं सभी जावा प्रोग्राम क्लास फाइल्स में संकलित किए जाते हैं जिनमें बाइटकोड्स होते हैं, जावा वर्चुअल मशीन की मशीन भाषा। यह लेख बाइटकोड्स पर नजर रखता है जो जावा की फ्लोटिंग-पॉइंट क्षमता को लागू करता है डब्ल्यू द अंडर द हूड के दूसरे किस्त में पढाई इस कॉलम का उद्देश्य जावा डेवलपर्स को अपने चल रहे जावा प्रोग्राम्स के नीचे छिपी हुई सुंदरता की एक झलक देना है। इस महीने के कॉलम में चर्चा जारी है, पिछले महीने की शुरुआत हुई। जावा वर्चुअल मशीन (जेवीएम) के बाइटकोड निर्देश सेट का यह आलेख जेवीएम में फ्लोटिंग-पॉइंट अंकगणित पर एक नज़र डालता है, और बाइटकोड्स को फ़्लोटिंग-पॉइंट अरिथेटिक ऑपरेशंस के प्रदर्शन को कवर करता है। बाद के लेख बाइटकोड परिवार के अन्य सदस्यों के बारे में चर्चा करेंगे। मुख्य फ़्लोटिंग पॉइंट्स जेवीएम के फ्लोटिंग पॉइंट सपोर्ट आईईईई -754 1 9 85 फ़्लोटिंग-पॉइंट मानक का पालन करता है। यह मानक 32-बिट और 64-बिट फ़्लोटिंग-बिंदु संख्याओं के प्रारूप को परिभाषित करता है और उन नंबरों पर आपरेशनों को परिभाषित करता है। जेवीएम में, फ्लोटिंग-पॉइंट अंकगणितीय 32-बिट फ़्लोट्स और 64-बिट डबल्स पर किया जाता है। प्रत्येक बाइटकोड के लिए जो फ्लोट्स पर अंकगणित करता है, वहां एक इसी बाइटकोड होता है जो डबल्स पर एक ही ऑपरेशन करता है। एक फ्लोटिंग-पॉइंट नंबर के चार भाग हैं - एक संकेत, एक मंटिसा, रेडिक्स, और एक एक्सपोनेंट। यह संकेत या तो 1 या -1 है मंटिसा, हमेशा एक सकारात्मक संख्या, अस्थायी बिंदु संख्या के महत्वपूर्ण अंक रखती है। एक्सपोनेंट रेडिक्स की सकारात्मक या नकारात्मक शक्ति को इंगित करता है कि मैंटिसा और साइन इन से गुणा किया जाना चाहिए। फ्लोटिंग-पॉइंट वैल्यू प्राप्त करने के लिए चार घटकों को जोड़ दिया गया है: साइनमैंटिया रेडिक्स एक्सपोनेंट फ़्लोटिंग-पॉइंट नंबर में एकाधिक प्रस्तुतीकरण हैं, क्योंकि कोई भी रेडिक्स की कुछ शक्ति द्वारा किसी फ़्लोटिंग-पॉइंट नंबर के मंथिसा को गुणा कर सकता है और एक्सपोनेंट बदल सकता है मूल संख्या प्राप्त करने के लिए उदाहरण के लिए, संख्या -5 को रेडिक्स 10 में निम्न में से किसी भी रूप का प्रतिनिधित्व किया जा सकता है: प्रत्येक फ़्लोटिंग-पॉइंट नंबर के लिए एक प्रतिनिधित्व है जिसे सामान्यीकृत कहा जाता है एक फ्लोटिंग-पॉइंट नंबर सामान्यीकृत होता है, यदि इसकी मैंटिसा निम्नलिखित संबंध द्वारा परिभाषित सीमा के भीतर है: 1 रेडिक्स लेफ्टिनेंट मांटिसा लेफ्टिनेंट 1 एक सामान्यीकृत रेडिक्स 10 फ्लोटिंग-पॉइंट नंबर का दशमलव अंक पहले दशमलव में शून्य के पहले अंकों के पास है अपूर्णांश। सामान्यीकृत अस्थायी बिंदु -5 का प्रतिनिधित्व -1 है 0.5 10 1. दूसरे शब्दों में, एक सामान्यीकृत अस्थायी अंक संख्याएंटिसा में दशमलव बिंदु के बाईं ओर कोई शून्य-शून्य अंक नहीं है और एक गैर शून्य अंक सिर्फ सही है दशमलव बिंदु का इस श्रेणी में फिट नहीं करने वाला कोई अस्थायी बिंदु संख्या माना जाता है ध्यान दें कि संख्या शून्य में कोई सामान्यीकृत प्रतिनिधित्व नहीं है, क्योंकि दशमलव बिंदु के दाहिनी ओर रखने के लिए उसके पास कोई शून्य-शून्य अंक नहीं है। "सामान्यीकृत होने के कारण शून्य के बीच एक आम विस्मयादिबोधक है। JVM में फ़्लोटिंग-पॉइंट नंबर दो का रेडिक्स का उपयोग करते हैं। इसलिए, जेवीएम में फ़्लोटिंग-पॉइंट नंबर निम्न रूप हैं: साइनमैटिसा 2 एक्सपोनेंट JVM में फ्लोटिंग-पॉइंट नंबर का मंटिसा बाइनरी नंबर के रूप में व्यक्त किया गया है। एक सामान्यीकृत मंटिसा में इसकी द्विआधारी बिंदु (दशमलव दशमलव के आधार-दो समतुल्य) है, जो कि सबसे महत्वपूर्ण गैर-शून्य अंकों की बाईं ओर है। क्योंकि द्विआधारी संख्या प्रणाली में सिर्फ दो अंक हैं - शून्य और एक - सामान्यीकृत मंटिसा का सबसे महत्वपूर्ण अंक हमेशा एक है। एक फ्लोट या दोगुनी का सबसे महत्वपूर्ण बिट इसका चिन्ह बिट है मैंटिसा एक फ्लोट के 23 कम से कम महत्वपूर्ण बिट्स और दोगुने के 52 कम महत्वपूर्ण बिट्स पर कब्जा कर लेता है। एक्सपोनेंट, एक फ्लोट में 8 बिट्स और डबल में 11 बिट्स, साइन और मैंटिसा के बीच बैठता है एक फ्लोट का प्रारूप नीचे दिखाया गया है हस्ताक्षर बिट को एस के रूप में दिखाया गया है, एक्सपोनेंट बिट्स को ई के रूप में दिखाया गया है, और मैन्टासा बिट्स को एम के रूप में दिखाया गया है: जावा फ्लोट के eeeeeeee मिमी के बिट लेआउट mmmmmmmmmmmmmmmmmmmmmmm शून्य के एक संकेत बिट एक सकारात्मक संख्या इंगित करता है और एक का संकेत बिट इंगित करता है एक नकारात्मक संख्या मंटिसा हमेशा सकारात्मक आधार-दो संख्या के रूप में व्याख्या की जाती है। यह दो बार पूरक संख्या नहीं है। यदि हस्ताक्षर बिट एक है, तो फ़्लोटिंग-प्वाइंट वेल्यू नकारात्मक है, लेकिन मैंटिसा को अभी भी एक सकारात्मक संख्या के रूप में व्याख्या किया गया है जिसे 1 से गुणा किया जाना चाहिए। प्रतिपादक क्षेत्र को तीन तरीकों से एक में परिभाषित किया गया है सभी लोगों का एक एक्सपोनेंट इंगित करता है कि फ्लोटिंग-पॉइंट संख्या में प्लस या माइनस अनन्तता के विशेष मूल्यों में से एक है, या एक संख्यावत् (एनएएन) को उद्धृत नहीं करता है। NaN कुछ परिचालनों का परिणाम है, जैसे कि शून्य से शून्य के विभाजन। सभी शून्य का एक एक्सपोनेंट एक denormalized फ्लोटिंग-पॉइंट नंबर इंगित करता है। कोई भी अन्य प्रतिपादक एक सामान्यीकृत अस्थायी बिंदु संख्या को इंगित करता है। मंटिसा में एक अतिरिक्त बिट सटीकता शामिल है जो मंथिसा बिट्स में दिखाई देती हैं। एक फ्लोट के मंटिसा, जो केवल 23 बिट्स पर है, में 24 बिट सटीक है एक डबल का मंटिसा, जो 52 बिट्स पर है, में 53 बिट सटीक है सबसे महत्वपूर्ण mantissa बिट पूर्वानुमान है, और इसलिए शामिल नहीं है, क्योंकि JVM में फ्लोटिंग-बिंदु संख्याओं के एक्सपोनेंट इंगित करता है कि संख्या सामान्यीकृत है या नहीं। यदि एक्सपोनेंट सभी शून्य है, तो फ़्लोटिंग-पॉइंट संख्या को denormalized और mantissa का सबसे महत्वपूर्ण बिट शून्य माना जाता है अन्यथा, फ्लोटिंग-पॉइंट नंबर सामान्यीकृत होता है और मैन्टिसा का सबसे महत्वपूर्ण बिट एक ही माना जाता है। किसी भी फ़्लोटिंग-पॉइंट ऑपरेशन के परिणामस्वरूप जेवीएम कोई अपवाद नहीं फेंकता है विशेष मूल्य, जैसे कि सकारात्मक और नकारात्मक अनन्तता या NaN, को संदिग्ध संचालन के परिणामस्वरूप लौटा दिया जाता है जैसे कि शून्य से विभाजन सभी लोगों का एक एक्सपोनेंट एक विशेष फ़्लोटिंग पॉइंट वैल्यू को इंगित करता है। एक मंथिसा वाले सभी लोगों का एक एक्सपोनेंट, जिनकी बिट्स सभी शून्य हैं इंगित करता है कि एक अनंत है। अनन्तता का चिन्ह संकेत बिट द्वारा दर्शाया गया है। किसी भी अन्य मांटिसा के साथ सभी लोगों का एक एक्सपोनेंट का मतलब है एक संख्या का मतलब नहीं (एनएएन) जेवीएम हमेशा एनएएन के लिए एक ही मंटिसा का उत्पादन करती है, जो सभी शून्य है, जो कि संख्या में प्रकट होने वाले सबसे महत्वपूर्ण मिंटसा बिट को छोड़कर है। इन मूल्यों को नीचे एक नाव के लिए दिखाया गया है: विशेष फ्लोट बिट्स फ़्लोट बिट्स (साइन एक्सपोनेंट मैन्टिसा) 0 10000000 10010010000111111011011 सभी शून्य के एक एक्सपोनेंट इंगित करता है कि मंटिसा को denormalized है, जिसका मतलब है कि अस्थिर अग्रणी बिट एक के बजाय शून्य है। इस मामले में दो की शक्ति सामान्यीकृत मंटिसा के लिए उपलब्ध दो की सबसे कम शक्ति के समान है। फ्लोट के लिए, यह -125 है इसका मतलब यह है कि सामान्यीकृत मन्तिस को दो से बढ़कर -125 की शक्ति तक बढ़ाया गया है, जबकि 00000001 का एक घाताक्षेत्र है, जबकि दो मानदंडों को गुणा करके -125 की शक्ति के साथ गुणा किया जाता है, तो 200000000 के एक घाताक्षेत्र का क्षेत्र है। नीचे denormalized संख्या के लिए भत्ता एक्सपोनेंट की श्रेणी का अंत क्रमिक अंडरफ्लो का समर्थन करता है यदि सबसे कम एक्सपोनेंट का इस्तेमाल सामान्यीकृत संख्या का प्रतिनिधित्व करने के लिए किया जाता था, तो शून्य से अंडरफ्लो बड़ी संख्या के लिए होता है दूसरे शब्दों में, denormalized संख्याओं के लिए न्यूनतम एक्सपोनेंट को छोड़ने से छोटी संख्याओं का प्रतिनिधित्व किया जा सकता है। छोटे denormalized संख्या सामान्यीकृत संख्या से सटीक की कम बिट्स हैं, लेकिन जितनी जल्दी ही एक्सपोनेंट अपने न्यूनतम सामान्य मान तक पहुंचता है, शून्य से नीचे आने के लिए बेहतर होगा। डेनॉर्मलाइज्ड फ्लोट वैल्यू फ्लोट बिट्स (साइन एक्सपोनेंट मैंटिसा) सबसे छोटा सकारात्मक (गैर शून्य) फ्लोट 0 00000000 0000000000000000000000001 न्यूनतम नकारात्मक (गैर शून्य) फ्लोट 1 00000000 0000000000000000000000001 0000000000000000000000001 सबसे बड़ा denormalized फ्लोट 1 00000000 11111111111111111111111 00000000 000000000000000000000000000 1 00000000 0000000000000000000000000 उजागर फ्लोट: एक जावा फ्लोट अपनी आंतरिक प्रकृति का पता चलता है नीचे दिए गए ऐप्पलेट आपको फ़्लोटिंग-प्वाइंट प्रारूप के साथ खेलने की सुविधा देता है एक फ्लोट का मान कई स्वरूपों में प्रदर्शित होता है। रेडिक्स दो वैज्ञानिक संकेतन प्रारूप आधार दस में मैंटिसा और एक्सपोनेंट दिखाता है। प्रदर्शित होने से पहले, वास्तविक मैंटिसा को 2 24 से गुणा किया जाता है। जो एक अभिन्न संख्या पैदा करता है, और निष्पक्ष एक्सपोनेंट 24 से घट जाता है। दोनों अभिन्न मंटिसा और एक्सपोनेंट तब आसानी से बेस दस में परिवर्तित हो जाते हैं और प्रदर्शित होते हैं। एक्सपोस्ड फ्लोट के स्रोत कोड के लिए यहां क्लिक करें।

Comments