सभी लेख

नंबर सिस्टम: बाइनरी, ऑक्टल और हेक्साडेसिमल क्यों मौजूद हैं

आज दुनिया भर में इस्तेमाल होने वाले "अरबी अंक" (0-9) असल में भारत में जन्मे थे। भारतीय गणितज्ञों ने स्थानीय मान (place value) और शून्य की अवधारणा विकसित की, जो आर्यभट और ब्रह्मगुप्त जैसे गणितज्ञों के कामों और बख्शाली पांडुलिपि में दर्ज है — और यही प्रणाली आज कंप्यूटर के दशमलव, द्विआधारी और हेक्साडेसिमल सिस्टम की नींव है।

भारत से यूरोप तक अंकों की यात्रा

भारतीय अंक प्रणाली अरब गणितज्ञों तक पहुँची, जिन्होंने इसे और विकसित करके आगे फैलाया — अल-ख़्वारिज़्मी की किताबों के लैटिन अनुवाद के ज़रिए यह प्रणाली मध्ययुगीन यूरोप पहुँची (शब्द "algorithm" ख़ुद अल-ख़्वारिज़्मी के नाम से निकला है)। यूरोप में इसे लंबे समय तक "अरबी अंक" कहा गया, हालाँकि सही नाम "हिंदू-अरबी अंक प्रणाली" है, जो इसके असली भारतीय मूल को दर्शाता है।

रोज़मर्रा की डेवलपमेंट में हेक्साडेसिमल

एक हेक्साडेसिमल अंक ठीक चार बिट्स के बराबर होता है, इसलिए दो हेक्साडेसिमल कैरेक्टर एक बाइट को कॉम्पैक्ट तरीक़े से दर्शाते हैं — CSS का रंग #3A7FD9 हो, MAC एड्रेस 00:1A:2B:3C:4D:5E हो, या डिबगर में दिखने वाला मेमोरी एड्रेस, ये सब असल में बाइट्स ही हैं, बस बाइनरी से चार गुना छोटे फ़ॉर्मैट में लिखे गए हैं।

Unix परमिशन में ऑक्टल

ऑक्टल आम इस्तेमाल से लगभग ग़ायब हो चुका है, लेकिन एक जगह अब भी टिका है — chmod 755। हर ऑक्टल अंक तीन परमिशन बिट (रीड, राइट, एक्ज़िक्यूट) को पैक करता है, इसलिए 7 का मतलब "rwx" और 5 का मतलब "r-x" होता है — तीन-तीन बिट पढ़ना नौ बाइनरी अंक गिनने से कहीं तेज़ है।

यह किस काम आता है

  • किसी रंग को CSS के हेक्साडेसिमल फ़ॉर्मैट से डेसिमल RGB वैल्यू में बदलना।
  • बिटवाइज़ ऑपरेशन के साथ काम करते समय किसी नंबर का बाइनरी रिप्रेज़ेंटेशन समझना।
  • Unix सिस्टम में ऑक्टल फ़ाइल परमिशन डिकोड करना।

Base64 न्यूमरल सिस्टम क्यों नहीं है

नाम मिलते-जुलते होने की वजह से Base64 को अक्सर न्यूमरल सिस्टम कन्वर्जन समझ लिया जाता है, लेकिन यह मूल रूप से अलग चीज़ है — किसी भी बाइनरी डेटा (जैसे इमेज या फ़ाइल) को 64 कैरेक्टर वाली टेक्स्ट स्ट्रिंग में एनकोड करना, न कि किसी एक संख्या को लिखने का तरीक़ा। संख्या 255 हेक्साडेसिमल में FF होती है, जबकि वही संख्या एक बाइट के रूप में Base64 में एनकोड होने पर बिल्कुल अलग दिखती है और इसका मक़सद भी अलग है — बाइनरी डेटा को टेक्स्ट चैनल्स के ज़रिए भेजना।

टूल आज़माएँ