IEEE 754 फ्लोटिंग प␎इंट कन्वर्टर क्या है?
यह टूल किसी 32-बिट हेक्साडेसिमल वैल्यू को उस वास्तविक संख्या में डिकोड करता है जिसे वह IEEE 754 सिंगल-प्रिसिज़न मानक के तहत दर्शाती है — यही वह फ़ॉर्मैट है जिसका इस्तेमाल C, Java और अधिकांश आधुनिक हार्डवेयर में float टाइप करता है। आठ hex अंक डालिए और कैलकुलेटर इन्हें फ़्लोट बनाने वाले तीन हिस्सों में बाँट देता है: 1 साइन बिट, 8 एक्सपोनेंट बिट और 23 मैन्टिसा (फ्रैक्शन) बिट, फिर इन्हें दोबारा जोड़कर एक डेसिमल वैल्यू बना देता है।
इसका इस्तेमाल कैसे करें
32-बिट वैल्यू को हेक्साडेसिमल के रूप में टाइप कीजिए (उदाहरण के लिए 40490FDB)। "0x" प्रीफ़िक्स वैकल्पिक है और किसी भी ग़ैर-hex अक्षर को नज़रअंदाज़ कर दिया जाता है। 8 अंकों से छोटी वैल्यू को बाईं ओर शून्य से भर दिया जाता है। नतीजे में डेसिमल वैल्यू के साथ-साथ डिकोड किया गया साइन, स्टोर किया गया एक्सपोनेंट, अनबायस्ड एक्सपोनेंट और मैन्टिसा भी दिखता है, ताकि आप ख़ुद बिट लेआउट की जाँच कर सकें।
फ़ॉर्मूला समझिए
सामान्य (normal) संख्याओं के लिए वैल्यू होती है $$\text{Value} = (-1)^{s} \times \left(1 + \frac{m}{2^{23}}\right) \times 2^{(e - 127)}$$। यहाँ 127 सिंगल प्रिसिज़न के लिए एक्सपोनेंट बायस है। "1 +" उस छिपे हुए (implicit) अग्रणी बिट को दर्शाता है जो नॉर्मलाइज़्ड बाइनरी संख्याओं में हमेशा मौजूद रहता है। जब स्टोर किया गया एक्सपोनेंट e शून्य होता है, तो संख्या सबनॉर्मल होती है: छिपा हुआ अग्रणी 1 ग़ायब हो जाता है और एक्सपोनेंट -126 पर स्थिर रहता है। जब e 255 होता है, तो वैल्यू या तो इन्फिनिटी (मैन्टिसा 0) होती है या NaN।
हल किया हुआ उदाहरण
40490FDB को लीजिए। बाइनरी में साइन 0 है (धनात्मक), एक्सपोनेंट फ़ील्ड 10000000 = 128 है, इसलिए अनबायस्ड एक्सपोनेंट \(128 - 127 = 1\) हुआ। मैन्टिसा बिट 4788187 के बराबर हैं, जिससे फ्रैक्शन \(4788187/8388608 \approx 0.5707964\) बनता है। वैल्यू है $$(1 + 0.5707964) \times 2^{1} \approx 3.14159274$$ — यानी π की सबसे क़रीबी सिंगल-प्रिसिज़न आसपासी वैल्यू।
अक्सर पूछे जाने वाले सवाल
नतीजा ठीक उसी संख्या जैसा क्यों नहीं आ रहा जिसकी मुझे उम्मीद थी? सिंगल प्रिसिज़न में केवल लगभग 7 डेसिमल अंकों तक की सटीकता होती है, इसलिए कई डेसिमल वैल्यू सबसे क़रीबी दर्शाने योग्य फ़्लोट तक राउंड हो जाती हैं।
डबल प्रिसिज़न (64-बिट) का क्या? यह टूल 32-बिट सिंगल प्रिसिज़न को संभालता है। डबल्स में 11 एक्सपोनेंट बिट, 52-बिट मैन्टिसा और 1023 का बायस होता है।
7FC00000 से क्या मिलता है? यह एक NaN है (एक्सपोनेंट के सभी बिट एक, मैन्टिसा शून्य से भिन्न), जो कोई परिमित संख्या नहीं है।