स्थानीय मान प्रणाली क्या है
डेसिमल संख्या 4,095 में 4 की कीमत 4 नहीं है: वह 4,000 है, क्योंकि वह हज़ार के स्थान पर है। हर स्थान अंक को 10 की एक घात (1, 10, 100, 1,000…) से गुणा करता है। यही स्थानीय मान प्रणाली है, और आधार उन अलग-अलग अंकों की गिनती है जो इस्तेमाल होते हैं: डेसिमल में दस।
बाइनरी भी इसी तरह चलती है, पर आधार 2 के साथ: सिर्फ़ 0 और 1 होते हैं, और हर स्थान पिछले से दोगुना कीमती होता है। हेक्साडेसिमल आधार 16 इस्तेमाल करता है: सोलह अंक 0 से 9 और अक्षर A से F हैं, और हर स्थान पिछले से 16 गुना कीमती होता है। कंप्यूटर बाइनरी में काम करते हैं क्योंकि सर्किट को सिर्फ़ दो अवस्थाएँ पहचाननी होती हैं (बंद और चालू), और हेक्साडेसिमल उन्हीं बिट्स को छोटे में लिखने का तरीका है।
| स्थान (दाएँ से बाएँ) | बाइनरी में मान | हेक्साडेसिमल में मान |
|---|---|---|
| पहला | 1 | 1 |
| दूसरा | 2 | 16 |
| तीसरा | 4 | 256 |
| चौथा | 8 | 4,096 |
| पाँचवाँ | 16 | 65,536 |
| छठा | 32 | 1,048,576 |
| सातवाँ | 64 | 16,777,216 |
| आठवाँ | 128 | 268,435,456 |
बाइनरी से डेसिमल, हाथ से
हर अंक के नीचे उसके स्थान की कीमत लिखें और सिर्फ़ उन स्थानों को जोड़ें जहाँ 1 है। 1101 का उदाहरण: दाएँ से बाएँ स्थानों की कीमत 1, 2, 4 और 8 है।
- संख्या लिखें और उसके नीचे हर स्थान की कीमत: 1 1 0 1 के नीचे 8 4 2 1।
- देखें कि हर स्थान पर क्या है: 8 वाले में 1, 4 वाले में 1, 2 वाले में 0 और 1 वाले में 1।
- जिन स्थानों पर 0 है उन्हें छोड़ दें (यहाँ 2 वाला)।
- जोड़ें: 8 + 4 + 0 + 1 = 13। यानी बाइनरी का 1101 डेसिमल में 13 है।
ज़्यादा अंकों के साथ भी यही तरीका है: 11111111 यानी 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, जो 8 बिट में आने वाला सबसे बड़ा मान है। और 10110110 यानी 128 + 32 + 16 + 4 + 2 = 182।
डेसिमल से बाइनरी, बार-बार भाग देकर
संख्या को बार-बार 2 से भाग दें, हर भाग का शेष (हमेशा 0 या 1) लिखते जाएँ, जब तक भागफल 0 न हो जाए। शेष को नीचे से ऊपर पढ़ने पर बाइनरी संख्या मिलती है। 45 का उदाहरण:
- 45 ÷ 2 = 22, शेष 1
- 22 ÷ 2 = 11, शेष 0
- 11 ÷ 2 = 5, शेष 1
- 5 ÷ 2 = 2, शेष 1
- 2 ÷ 2 = 1, शेष 0
- 1 ÷ 2 = 0, शेष 1
शेष को नीचे से ऊपर पढ़ने पर 101101 मिलता है। जाँचने के लिए जोड़ें: 32 + 8 + 4 + 1 = 45।
एक दूसरा तरीका भी है जो कई लोगों को पसंद है: 2 की घातों को बड़ी से छोटी के क्रम में घटाना। 200 के लिए: 128 आता है (72 बचा), 64 आता है (8 बचा), 32 और 16 नहीं आते, पर 8 आता है (0 बचा)। इस्तेमाल हुए स्थान 128, 64 और 8 हैं, इसलिए 200 = 11001000।
हेक्साडेसिमल: सोलह अंक और हाथ में रखने की तालिका
क्योंकि 10 से 15 के लिए अंक नहीं हैं, अक्षर A, B, C, D, E और F इस्तेमाल होते हैं। एक हेक्साडेसिमल अंक ठीक चार बिट (एक «निबल») के बराबर होता है, और इसीलिए यह इतना सुविधाजनक है: 8 बिट का एक बाइट सिर्फ़ दो हेक्साडेसिमल अंकों में लिखा जाता है।
हेक्साडेसिमल से डेसिमल में जाने के लिए हर अंक को उसके स्थान की 16 की घात से गुणा करें और जोड़ें। जैसे, 3F = 3 × 16 + 15 = 63 और A3 = 10 × 16 + 3 = 163।
| डेसिमल | बाइनरी (4 बिट) | ऑक्टल | हेक्साडेसिमल |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
हेक्साडेसिमल क्यों इस्तेमाल होता है: बाइट, रंग और पते
एक बाइट 8 बिट का होता है और 0 से 255 (00000000 से 11111111) तक जाता है। हाथ से बिट्स लिखना धीमा है और उसमें गलतियाँ होती हैं; हेक्साडेसिमल में वही बाइट दो वर्णों का होता है, 00 से FF। बाइनरी से हेक्साडेसिमल में जाने के लिए बिट्स को दाईं ओर से चार-चार के समूहों में बाँटें और हर समूह को तालिका के अंक से बदल दें। उदाहरण: 11010111 को 1101 और 0111 में बाँटा जाता है, जो D और 7 हैं, इसलिए यह D7 है। डेसिमल में यह 13 × 16 + 7 = 215 है।
सबसे जाने-पहचाने उदाहरण वेब के रंग हैं। #FF8800 में तीन बाइट हैं: लाल के लिए FF (255), हरे के लिए 88 (136) और नीले के लिए 00 (0)। यह गहरा नारंगी रंग है: पूरा लाल, आधे से थोड़ा ज़्यादा हरा और नीला बिल्कुल नहीं। हेक्साडेसिमल मेमोरी के पतों, एरर कोड और नेटवर्क पहचान में भी दिखता है।
ASCII से टेक्स्ट को बाइनरी में
कंप्यूटर हर अक्षर को एक संख्या के रूप में रखता है, और उस संख्या को बिट्स के रूप में। ASCII तालिका में A का मान 65 है, जो 8 बिट की बाइनरी में 01000001 है। शब्द «Hi» में दो अक्षर हैं: H का मान 72 (01001000) और i का 105 (01101001), इसलिए यह 01001000 01101001 लिखा जाता है। «Hola» के लिए 72, 111, 108 और 97 हैं, यानी 01001000 01101111 01101100 01100001, या हेक्साडेसिमल में 48 6F 6C 61।
टूल UTF-8 एन्कोडिंग इस्तेमाल करता है: अंग्रेज़ी के मूल अक्षरों के लिए हर वर्ण 8 बिट का एक बाइट घेरता है, लेकिन ñ, मात्रा वाला अक्षर, हिंदी का कोई अक्षर या इमोजी कई बाइट घेरते हैं, इसलिए 8 बिट से ज़्यादा देते हैं। जैसे, ñ दो बाइट का है: 11000011 10110001 (हेक्साडेसिमल में C3 B1)।
टूल से यह सब कैसे करें
«बाइनरी, डेसिमल और हेक्साडेसिमल» कन्वर्टर आपके हाथ के हिसाब जाँचने या लंबी संख्याएँ बिना गलती के हल करने के काम आता है।
- संख्या को उसके आधार वाले खाने में लिखें: «डेसिमल (आधार 10)», «बाइनरी (आधार 2)», ऑक्टल या «हेक्साडेसिमल (आधार 16)»। बाकी तीन अपने आप भर जाते हैं।
- अगर अंक आधार से मेल नहीं खाता (जैसे बाइनरी में 2), तो टूल आपको बता देता है।
- टेक्स्ट के लिए उसे «टेक्स्ट» खाने में लिखें और «बाइनरी (प्रति अक्षर 8 बिट)» और बाइट के हिसाब से हेक्साडेसिमल देखें। टेक्स्ट वापस पाने के लिए आप 8-8 के समूहों में बिट्स पेस्ट भी कर सकते हैं।
- अनोखे आधारों के लिए «कोई भी आधार (2 से 36)» इस्तेमाल करें: शुरुआती आधार, लक्ष्य आधार और संख्या चुनें।
सीमाएँ: यह सिर्फ़ ऋणात्मक न होने वाली पूर्ण संख्याएँ बदलता है (दशमलव या चिह्न के बिना) और बाईं ओर शून्य अपने आप नहीं लगाता, इसलिए अगर आपको तय 8 बिट चाहिए तो हाथ से पूरा करना होगा (13 यानी 00001101)। आप जो लिखते हैं उसमें से कुछ भी आपके ब्राउज़र से बाहर नहीं जाता।
आम गलतियाँ
- शेष को उलटा पढ़ना: बार-बार भाग देने में पहला शेष सबसे दाईं ओर का अंक होता है, सबसे बाईं ओर का नहीं।
- ज़रूरत होने पर बाईं ओर के शून्य भूल जाना: 13 यानी 1101, पर बाइट के रूप में 00001101। यह तब मायने रखता है जब लंबाई डेटा का हिस्सा हो, जैसे रंग या नेटवर्क मास्क में।
- कॉपी करते समय अक्षर O को शून्य से या हेक्साडेसिमल B (11) को 8 से मिला देना। हेक्साडेसिमल में अक्षर बड़े और छोटे दोनों रूपों में एक ही कीमत के होते हैं, पर वे अंक के बराबर नहीं हैं।
- बदलते समय 0x उपसर्ग या # चिह्न छोड़ देना: ये सिर्फ़ संकेत हैं कि संख्या हेक्साडेसिमल है, और पेस्ट करने से पहले इन्हें हटाना होता है।
- यह सोचना कि बाइनरी में 10 का मतलब दस है: वह दो है। वही «10» आधार के हिसाब से 2, 10 या 16 होता है।
अभ्यास के लिए हल किए सवाल
हर सवाल को जवाब देखने से पहले हल करने की कोशिश करें और बाद में टूल से जाँचें।
- 10110110 को डेसिमल और हेक्साडेसिमल में बदलें। उत्तर: 128 + 32 + 16 + 4 + 2 = 182; चार-चार के समूहों में, 1011 0110 = B6।
- 200 को बाइनरी और हेक्साडेसिमल में बदलें। उत्तर: 11001000 और C8 (12 × 16 + 8 = 200)।
- 7F को बाइनरी में बदलें। उत्तर: 7 = 0111 और F = 1111, इसलिए 01111111, जो डेसिमल में 127 है।
- «OK» को बाइनरी में लिखें। उत्तर: O का मान 79 और K का 75 है, यानी 01001111 01001011।
अक्सर पूछे जाने वाले सवाल
1101 को बाइनरी से डेसिमल में कैसे बदलूँ?
उन स्थानों की कीमतें जोड़ें जहाँ 1 है: 8 + 4 + 1 = 13। दाईं ओर से दूसरा अंक 0 है, इसलिए 2 नहीं जुड़ता।
255 बाइनरी और हेक्साडेसिमल में कितना होता है?
255 बाइनरी में 11111111 और हेक्साडेसिमल में FF है। यह 8 बिट के एक बाइट में आने वाला सबसे बड़ा मान है।
हेक्साडेसिमल में अक्षर क्यों इस्तेमाल होते हैं?
क्योंकि इसे सोलह अलग प्रतीक चाहिए और डेसिमल प्रणाली सिर्फ़ दस (0 से 9) देती है। इसलिए A का मान 10, B का 11, C का 12, D का 13, E का 14 और F का 15 है।
8 बिट से कितनी अलग-अलग संख्याएँ लिखी जा सकती हैं?
256, यानी 0 से 255। आम तौर पर, n बिट से 2 की घात n जितने मान दिखाए जा सकते हैं।
क्या टूल ऋणात्मक या दशमलव वाली संख्याएँ बदलता है?
नहीं, सिर्फ़ ऋणात्मक न होने वाली पूर्ण संख्याएँ। टेक्स्ट के लिए यह UTF-8 इस्तेमाल करता है, इसलिए मात्रा वाले अक्षर, हिंदी अक्षर और इमोजी 8 बिट से ज़्यादा देते हैं।