पूर्णांक आधार रूपांतरक

किसी भी आधार (बेस) 2 से 64 के बीच पूर्णांक रूपांतरित करें। बाइनरी, ऑक्टल, दशमलव, हेक्साडेसिमल, बेस36, बेस58 और बेस64 एक साथ, स्वेच्छ अशुद्धि BigInt समर्थन के साथ।

किसी भी दो आधारों 2 से 64 के बीच एक पूर्ण संख्या रूपांतरित करें। एक मान दर्ज करें, वह आधार चुनें जिसमें वह लिखा गया है, और हर सामान्य निरूपण तुरंत अपडेट हो जाता है। रूपांतरण JavaScript के BigInt का उपयोग करता है, इसलिए 2^53 से कहीं अधिक संख्याएँ पूर्ण शुद्धता बनाए रखती हैं।

स्थितीय संख्या आधारों को समझना

आधार वास्तव में क्या है

एक स्थितीय प्रणाली में आधार (या रेडिक्स) बताता है कि प्रत्येक स्थान कितना मूल्यवान है। बेस 10 में 237 के अंकों का अर्थ है 2x100 + 3x10 + 7x1। बेस 16 में समान अंक स्ट्रिंग का अर्थ है 2x256 + 3x16 + 7 = 567। रूपांतरण करते समय संख्या में कुछ नहीं बदलता, केवल संकेतन (notation) बदलता है।

अंक वर्णमाला

बेस-N प्रणाली को N भिन्न प्रतीकों की आवश्यकता होती है। 0-9 अंक पहले दस को कवर करते हैं, फिर अक्षर आगे बढ़ते हैं: a 10 है, b 11 है, और इसी तरह 35 पर z तक। बेस 36 से ऊपर वर्णमाला बड़े अक्षरों के साथ जारी रहती है और अंत में + और /, जो इस टूल का क्रम है। बेस 36 तक को केस-असंवेदी माना जाता है क्योंकि वह लगभग सार्वभौमिक परंपरा है; 36 से ऊपर केस महत्वपूर्ण हो जाता है।

प्रत्येक आधार कहाँ दिखता है

  • बेस 2 सीधे हार्डवेयर पर मैप होता है। रजिस्टर सामग्री, बिट मास्क और अनुमति फ़्लैग बाइनरी में तर्क करने के लिए सबसे आसान हैं।
  • बेस 8 बिट्स को तीन-तीन के समूह में बाँटता है, जो बिल्कुल वही कारण है कि Unix फ़ाइल मोड जैसे 755 ऑक्टल होते हैं।
  • बेस 16 बिट्स को चार-चार के समूह में बाँटता है, इसलिए एक हेक्स अंक एक निबल के बराबर है। मेमोरी पते, रंग कोड और हैश सभी इसका उपयोग करते हैं।
  • बेस 36 सबसे घना आधार है जो DNS लेबल जैसी केस-असंवेदी प्रणालियों में जीवित रहता है।
  • बेस 58 बेस 62 में से वे वर्ण घटाता है जो पढ़ने में आसानी से भ्रमित होते हैं: 0, O, I और l। Bitcoin पते और कई शॉर्ट-लिंक सेवाएँ इसका उपयोग करती हैं।
  • बेस 64 तीन बाइट्स को चार प्रिंट योग्य वर्णों में एन्कोड करता है और बाइनरी डेटा को केवल-पाठ चैनलों के माध्यम से ले जाने का मानक तरीका है।

शुद्धता

मूल JavaScript संख्याएँ 2^53 से ऊपर शुद्धता खो देती हैं। यह कन्वर्टर पूरी तरह BigInt के साथ काम करता है, इसलिए 200-अंक का दशमलव मान बिना मूक राउंडिंग के बाइनरी में रूपांतरित होता है। ऋणात्मक मान समर्थित हैं; अग्रणी ऋण चिह्न आधारों में संरक्षित रहता है।

ओपन-सोर्स नोटिस: रूपांतरण देशी JavaScript BigInt API के साथ कार्यान्वित किया गया है। कोई तृतीय-पक्ष संख्यात्मक लाइब्रेरी उपयोग नहीं की गई है।

अक्सर पूछे जाने वाले प्रश्न

बेस 58 कुछ वर्णों को क्यों छोड़ देता है?
बेस 58 जानबूझकर 0, O, I और l को हटा देता है क्योंकि वे मुद्रित या हस्तलिखित रूप में आसानी से भ्रमित होते हैं। इससे पते हस्तलिखित रूप से उतारने के लिए सुरक्षित हो जाते हैं, जो Bitcoin ने इसे अपनाने का कारण है।
क्या यहाँ का बेस64 वही है जो ईमेल अटैचमेंट के लिए उपयोग होता है?
नहीं। यह टूल बेस 64 को एकल पूर्णांक के लिए एक स्थितीय संख्या प्रणाली मानता है। अटैचमेंट एन्कोडिंग (RFC 4648) बाइट स्ट्रीम पर काम करती है और '=' के साथ पैडिंग जोड़ती है। इसके लिए Base64 टूल का उपयोग करें।
क्या मैं बहुत बड़ी संख्याएँ रूपांतरित कर सकता हूँ?
हाँ। सब कुछ BigInt के माध्यम से चलता है, इसलिए सैकड़ों अंक सटीक रूपांतरित होते हैं। सामान्य JavaScript संख्याओं की तरह 2^53 पर कोई मूक राउंडिंग नहीं होती।
क्या इनपुट केस-संवेदी है?
बेस 36 तक यह नहीं है: 'FF' और 'ff' दोनों हेक्स में 255 के बराबर हैं। बेस 37 से ऊपर बड़े और छोटे अक्षर भिन्न प्रतीक हैं, इसलिए केस मायने रखता है।
मैं ऋणात्मक संख्या कैसे रूपांतरित करूँ?
बस उसे एक ऋण चिह्न से पूर्ववर्ती करें। चिह्न हर आउटपुट आधार में आगे बढ़ाया जाता है। टू-कंप्लिमेंट (two's-complement) निरूपण एक अलग अवधारणा है और यहाँ लागू नहीं होता।
क्या कुछ सर्वर पर भेजा जाता है?
नहीं। रूपांतरण पूरी तरह आपके ब्राउज़र में चलता है, इसलिए जो मान आप टाइप करते हैं वे कभी आपकी मशीन से बाहर नहीं जाते।