नंबर बेस कन्वर्टर
बाइनरी, ऑक्टल, डेसिमल, और हेक्साडेसिमल के बीच किसी नंबर को लाइव कन्वर्ट करें, या 2 से 36 तक किन्हीं भी दो बेस के बीच।
किसी भी फ़ील्ड में टाइप करें, बाक़ी तीनों लाइव अपडेट होते हैं। नेगेटिव नंबर्स और आर्बिट्ररिली बड़े इंटिजर्स सपोर्ट करता है।
कस्टम बेस कन्वर्जन
2 से 36 तक किन्हीं भी दो बेस के बीच कन्वर्ट करें।
यह कैसे काम करता है
आप जो भी वैल्यू टाइप करते हैं वह JavaScript के BigInt में पार्स होती है, जो ब्राउज़र में बिल्ट-इन एक आर्बिट्ररी-प्रिसीज़न इंटिजर टाइप है। पार्सिंग आपके इनपुट को अंक-दर-अंक चलती है, रनिंग टोटल को बेस से गुणा करते हुए और हर अंक की वैल्यू जोड़ते हुए; वापस कन्वर्ट करना बार-बार टारगेट बेस से डिवाइड करता है और रिमेंडर्स इकट्ठा करता है। 9 से ऊपर के अंक लेटर्स इस्तेमाल करते हैं, इसलिए बेस 36 में 0-9 फिर a-z चलता है। नेगेटिव नंबर्स भी काम करते हैं: पार्स करने से पहले एक लीडिंग माइनस साइन को हटाया जाता है और आख़िर में वापस जोड़ा जाता है।
BigInt वाला हिस्सा जानने लायक डिटेल है। प्लेन JavaScript नंबर्स पर बने कन्वर्टर्स 9,007,199,254,740,991 (2^53 - 1) से ऊपर की किसी भी चीज़ को चुपचाप ख़राब कर देते हैं, क्योंकि यहीं फ़्लोटिंग पॉइंट हर इंटिजर को एग्ज़ैक्टली रिप्रज़ेंट करना बंद कर देता है। ffffffffffffffff जैसी 16-डिजिट हेक्स वैल्यू को उनमें से किसी में पेस्ट करें और आपको बिना किसी चेतावनी के एक राउंडेड, ग़लत जवाब मिलता है। यहां गणित किसी भी लंबाई पर एग्ज़ैक्ट है: 100-डिजिट का डेसिमल सही तरीक़े से बाइनरी में कन्वर्ट होता है, बस ज़्यादा डिजिट लगते हैं।
हर फ़ील्ड टाइप करते समय अपने ख़ुद के बेस के ख़िलाफ़ वैलिडेट होती है, इसलिए ऑक्टल बॉक्स में 9 या हेक्स में g डालने पर एक ग़लत रिज़ल्ट के बजाय एरर दिखता है, और बाक़ी तीनों फ़ील्ड्स लाइव अपडेट होती हैं जिस भी फ़ील्ड को आपने एडिट किया उससे। यह सब आपके टैब में होता है: डेवटूल्स का Network पैनल चेक करें और आप देखेंगे कि टाइप करते समय पेज कोई रिक्वेस्ट नहीं करता, इसलिए आप जो नंबर्स कन्वर्ट करते हैं वे कभी आपकी मशीन से बाहर नहीं जाते।