हेक्स से दशमलव कन्वर्टर
नतीजा
दशमलव
- स्थानीय मान
- 2×4096 + 10×256 + 3×16 + 15
हेक्स से दशमलव कन्वर्टर किसी हेक्साडेसिमल संख्या को आधार-10 में दोबारा लिखता है, और बाइनरी में बदलने के उलट यहाँ असली गणित लगता है। हेक्साडेसिमल संख्या का मान इस तरह निकलता है कि हर अक्षर को उसके स्थानीय मान से गुणा कीजिए — यानी सोलह की उस घात से जो उसके स्थान की है — और सब जोड़ दीजिए, जहाँ दाईं ओर से गिनती शून्य से शुरू होती है। 2A3F में सबसे आख़िरी स्थान पर F है, इसलिए वह F पंद्रह का है; अगले स्थान पर 3, जो 3×16 का है; उसके बाद A, जो 10×256 का है; और सबसे आगे 2, जो 2×4096 का है। सब जोड़ने पर 10815 आता है। अक्षर ही वह जगह हैं जहाँ यह ग़लत होता है, और ग़लत दो तरह से होता है। पहली, A को 10 और F को 15 बनना पड़ता है, तभी कोई गुणा शुरू होता है — A को 1 पढ़ लेने पर ऐसा जवाब आता है जो देखने में ठीक लगता है और ग़लत है। दूसरी, अक्षर जो मान रखता है वह उसके स्थान से गुणा होता है, इसलिए आख़िरी स्थान का F पंद्रह है और एक स्थान बाईं ओर का F दो सौ चालीस; अक्षर रक़म नहीं, गुणांक है। सोलह की घातें इस पेज का दूसरा आधा हैं, और उनकी शक्ल जानने लायक़ है: 1, 16, 256, 4096, 65536, और इसी तरह ऊपर, हर एक पिछली से सोलह गुना। किसी हेक्साडेसिमल संख्या को इस सूची के सामने रखकर दाईं ओर से पढ़ लेना किसी भी घात को मौक़े पर निकालने से तेज़ है। चूँकि सोलह दो की घात है, ये वही दो की घातें हैं जिन्हें चार-चार करके लिया गया हो — 16 यानी 2⁴, 256 यानी 2⁸, 65536 यानी 2¹⁶ — इसीलिए जो स्थान चार-चार बिट रखते हैं वही एक-एक सोलह की घात भी रखते हैं। पेज जवाब के साथ पूरा जोड़ छापता है, ताकि नतीजा पद-दर-पद जाँचा जा सके: 2×4096 + 10×256 + 3×16 + 15 यानी 10815, और किसी भी एक अक्षर की ग़लती ऐसा जोड़ बना देती है जो उस संख्या तक वापस नहीं पहुँचता जिसकी उम्मीद थी। यह पूरे परिवार का अकेला पेज है जिसका मुख्य नतीजा किसी आधार के अंकों की कतार नहीं, एक संख्या है — और इसीलिए यहाँ का जवाब आगे की गणना में सीधे इस्तेमाल हो सकता है।
सोलह की घातें, सबसे दाहिने स्थान से लेकर स्वीकार्य इनपुट की सबसे चौड़ी जगह तक
| स्थान | घात | मान |
|---|---|---|
| 13 | 16¹³ | 4503599627370496 |
| 12 | 16¹² | 281474976710656 |
| 11 | 16¹¹ | 17592186044416 |
| 10 | 16¹⁰ | 1099511627776 |
| 9 | 16⁹ | 68719476736 |
| 8 | 16⁸ | 4294967296 |
| 7 | 16⁷ | 268435456 |
| 6 | 16⁶ | 16777216 |
| 5 | 16⁵ | 1048576 |
| 4 | 16⁴ | 65536 |
| 3 | 16³ | 4096 |
| 2 | 16² | 256 |
| 1 | 16¹ | 16 |
| 0 | 16⁰ | 1 |
चौदह पंक्तियाँ, 16⁰ से 16¹³ तक, और यह लंबाई मनमानी नहीं है: चौदह अक्षर इस परिवार का सबसे चौड़ा स्वीकार्य इनपुट है, इसलिए तालिका हर उस स्थान को समेटती है जिसे कोई जवाब इस्तेमाल कर सकता है, और वहीं रुक जाती है। इसे ऊपर से नीचे पढ़ना जवाब के स्थानों को दाएँ से बाएँ पढ़ना है — आख़िरी पंक्ति सबसे दाहिना अक्षर है और पहली पंक्ति सबसे बायाँ। बीच का कॉलम स्थान को घात की तरह लिखता है, यानी वही जिससे ऊपर के पैनल का जोड़ गुणा करता है; तीसरा कॉलम वही घात निकाली हुई है, यानी वही जिससे असल में गुणा किया जाता है। ये मान बाइनरी पेजों से जुड़ जाते हैं: 16 यानी 2⁴, 256 यानी 2⁸ और 65536 यानी 2¹⁶, क्योंकि एक हेक्साडेसिमल अक्षर चार बिट रखता है। इसलिए यही तालिका यह भी बताती है कि चार बिट का समूह बिट की तरह नहीं, संख्या की तरह पढ़े जाने पर कितने का होता है। यह तय है और आपके टाइप किए हुए के साथ नहीं चलती।
फ़ॉर्मूला
2A3F = 2×16³ + 10×16² + 3×16¹ + 15×16⁰ = 2×4096 + 10×256 + 3×16 + 15 = 10815
- 2A3F
- जिस हेक्साडेसिमल संख्या को बदलना है। अक्षरों का बड़ा-छोटा नहीं देखा जाता, इसलिए 2a3f और 2A3F एक ही मान हैं; आगे का शून्य कुछ नहीं बदलता, और आगे लगा ऋण चिह्न ऋणात्मक नतीजा देता है
- 16ⁿ
- किसी स्थान से जुड़ी सोलह की घात, जहाँ सबसे दाहिने अक्षर से गिनती शून्य से होती है। सबसे दाहिना 16⁰ का है, यानी 1, उसके बाद वाला 16¹ का, यानी 16, और हर क़दम बाईं ओर फिर सोलह गुना कर देता है
- 2, 10, 3, 15
- अक्षरों को मान की तरह पढ़ा हुआ, जहाँ अक्षर पहले ही बदल चुके हैं — A दस बनता है और F पंद्रह, गुणा शुरू होने से पहले। A को 1 पढ़ लेना वही ग़लती है जिसे रोकने के लिए यह पंक्ति है, और इस बदलाव में सबसे आम चूक यही है
- 2×4096
- जोड़ का एक अकेला पद: अक्षर का मान गुणा उसके स्थान की घात। हर अक्षर एक पद जोड़ता है, वे भी जो शून्य हैं, हालाँकि शून्य वाला पद कुछ नहीं बदलता और छपे हुए जोड़ से बस हटा दिया जाता है
- = 10815
- सारे पदों का कुल। यह किसी और आधार की अंकों की कतार नहीं, एक दशमलव संख्या है, और इसीलिए इस पेज का जवाब सीधे आगे की गणना में इस्तेमाल हो सकता है
- 14 अक्षर
- सबसे चौड़ा स्वीकार्य इनपुट, यानी 1FFFFFFFFFFFFF। चौदह अक्षर वह लंबाई है जहाँ मान 9007199254740991 तक पहुँचता है, और इसके आगे मशीन पड़ोसी पूर्ण संख्याओं में फ़र्क़ नहीं कर पाती, इसलिए लंबा इनपुट बदला नहीं जाता, अस्वीकार कर दिया जाता है
किसी हेक्साडेसिमल मान को दशमलव की तरह पढ़ना वही काम है जो तब पड़ता है जब मशीन के लिए लिखी गई संख्या की तुलना किसी आदमी के लिए लिखी गई संख्या से करनी हो। किसी रंग के कोड में दो-दो अक्षरों के तीन चैनल होते हैं, और यह जानना कि FF यानी 255 है और 80 यानी 128, आमतौर पर रंग को आँख से सँभालने और उसे संख्या से सँभालने का फ़र्क़ है। आकारों की भी यही कहानी है: 400 हेक्साडेसिमल यानी 1024, जो जाना-पहचाना पेज आकार है, और 0x100000 के रूप में छपा मेमोरी नक़्शा उस हर किसी के लिए 1048576 बाइट है जिसे उसमें दूसरा खंड जोड़ना है। जो चेकसम जाँचता है, हैश के शुरुआती टुकड़े मिलाता है, या दस्तावेज़ का मास्क बदलता है वह यह बदलाव करता है, और जो कोई ऐसा क्रमांक या पहचानकर्ता पढ़ता है जो निकला तो हेक्साडेसिमल ही है, वह भी। पढ़ाई में यह 'हेक्स से दशमलव बदलिए' बनकर आता है, आमतौर पर घातें लिखकर, और यह ठीक वही जोड़ है जो यह पेज छापता है: हर अक्षर के लिए एक पद, अक्षर पहले से बदले हुए। यह वह बदलाव भी है जिसकी तरफ़ तब हाथ बढ़ता है जब किसी और औज़ार से आए हेक्साडेसिमल जवाब को मन ही मन जाँचना हो, क्योंकि दशमलव कुल ही वह अकेली संख्या है जिससे बाक़ी सब मिलाया जा सकता है।
हल किए हुए उदाहरण
2A3F पढ़ना
- चारों अक्षरों के नीचे सोलह की घातें लिखिए, दाईं ओर से: 1, 16, 256, 4096
- अक्षरों की जगह उनके मान रखिए: A यानी 10 और F यानी 15
- हर एक को गुणा कीजिए: 2×4096 = 8192, 10×256 = 2560, 3×16 = 48, 15×1 = 15
- चारों पद जोड़िए: 8192 + 2560 + 48 + 15 = 10815
यही डिफ़ॉल्ट है, और यही वह उदाहरण है जिसमें दोनों अक्षर बदलने पड़ते हैं। यहाँ A कोई 1 नहीं है और F कोई 5 नहीं — श्रृंखला को इस तरह पढ़ लेना कि अक्षर भी अंक हैं, जवाब क़रीब दो हज़ार के आसपास ले आता, जो इतना दूर है कि पकड़ में आ जाए। इससे बारीक़ ग़लती वह है जिसमें अक्षर तो ठीक बदला गया, पर गुणा ग़लत घात से हो गया।
पूरी बाइट, FF
- दो अक्षर हैं, इसलिए स्थान 16 और 1 के हैं
- F यानी 15, इसलिए बायाँ अक्षर 15×16 = 240 जोड़ता है
- दाहिना अक्षर 15×1 = 15 जोड़ता है
- 240 + 15 = 255
दो अक्षर और उनमें समाने वाला सबसे बड़ा मान, और इसीलिए FF यानी 255 है, 256 नहीं: परिसर 00 से शुरू होता है। यह जोड़ी ज्यों की त्यों याद रखने लायक़ है, क्योंकि यह रंगों के मानों में, बाइट भर के खानों में, और ठीक दो अक्षरों की किसी भी हेक्साडेसिमल श्रृंखला में आती है।
B2 पढ़ना
- B यानी 11, इसलिए बायाँ अक्षर 11×16 = 176 जोड़ता है
- दाहिना अक्षर 2 जोड़ता है
- 176 + 2 = 178
B, A से ठीक एक ऊपर बैठता है, इसलिए 10×16 नहीं बल्कि 11×16 — B को 11 पढ़ने और 10 पढ़ने का फ़र्क़ सोलह है, जो पूरा एक हेक्साडेसिमल स्थान है। यह वही मान है जिसे बाइनरी पेज आठ बिट के उदाहरण की तरह इस्तेमाल करते हैं, और आधार-2 में वह 10110010 दिखता है।
सबसे बड़ा इनपुट, 1FFFFFFFFFFFFF
- चौदह अक्षर हैं, इसलिए स्थान 16¹³ से नीचे 16⁰ तक चलते हैं
- आगे वाला 1 16¹³ का है, यानी 4503599627370496
- तेरह F अक्षरों में हर एक 15 है, अपने-अपने स्थान की घात से गुणा किया हुआ
- चौदहों पद जोड़ने पर 9007199254740991 आता है
चौदह पद इस जोड़ का सबसे बड़ा रूप है, और यह वही हद है जिस पर दशमलव पेज 9007199254740991 बनकर और बाइनरी पेज तिरपन अंक बनकर पहुँचते हैं। इस आकार पर तरीक़े में कुछ नहीं बदलता — वही गुणा-और-जोड़ है, चौदह बार दोहराया हुआ — और उदाहरण से लेने लायक़ बात यही है।
सीमाएँ
यहाँ इनपुट दशमलव नहीं बल्कि हेक्साडेसिमल श्रृंखला है, इसलिए ठुकराने के लिए कोई दशमलव बिंदु है ही नहीं: 0 से 9 और A से F के बाहर के अक्षर अस्वीकार कर दिए जाते हैं। इनपुट ज़्यादा से ज़्यादा चौदह अक्षरों का हो सकता है, यानी 1FFFFFFFFFFFFF, और इससे लंबा कुछ भी काटे जाने के बजाय एक संदेश के साथ अस्वीकार कर दिया जाता है। आगे के शून्य स्वीकार होते हैं और कुछ नहीं बदलते, और आगे लगा ऋण चिह्न ऋणात्मक दशमलव नतीजा देता है — जोड़ अंकों के लिए निकाला जाता है और चिह्न कुल पर लगाया जाता है। इनपुट में बड़े-छोटे अक्षरों से कुछ फ़र्क़ नहीं पड़ता, हालाँकि स्थानीय मानों का जोड़ हमेशा बड़े अक्षरों में छपता है। नीचे की तालिका सोलह की घातें 16⁰ से 16¹³ तक गिनाती है और तय है, इसलिए वह आपके टाइप किए हुए के साथ नहीं चलती; वह इसलिए है कि किसी भी स्थान का भार देखकर लिया जा सके। उलटी दिशा में जाना, यानी दशमलव संख्या से हेक्साडेसिमल, अपने अलग पेज पर है, और यह पेज अपने छापे हुए जोड़ के सिवा नतीजे पर कोई गणना नहीं करता।
अक्सर पूछे जाने वाले सवाल
- हेक्स को दशमलव में हाथ से कैसे बदलें?
- अक्षरों के नीचे सोलह की घातें लिखिए, दाईं ओर 1 से शुरू करके हर क़दम बाईं ओर सोलह से गुणा करते हुए, फिर हर अक्षर को उसके नीचे वाली घात से गुणा कीजिए और सब जोड़ दीजिए। अक्षर पहले बदलने पड़ते हैं: A यानी 10, B यानी 11, C यानी 12, D यानी 13, E यानी 14 और F यानी 15। 2A3F के लिए इससे 2×4096 + 10×256 + 3×16 + 15 मिलता है, जो 10815 है।
- A से F तक के अक्षरों का मतलब क्या है?
- वे दस से पंद्रह तक के मान हैं, इसी क्रम में: A यानी 10, B यानी 11, C यानी 12, D यानी 13, E यानी 14, F यानी 15। आधार-16 को सोलह अलग-अलग चिह्न चाहिए और दशमलव अंक सिर्फ़ दस देते हैं, इसलिए छह और चिह्न चाहिए थे और अक्षर वह रिवाज़ हैं जिस पर सहमति है। हर अक्षर ठीक वैसे ही एक गुणांक है जैसे कोई अंक होता है, इसलिए F का मतलब पंद्रह गुना उसका स्थान — आख़िरी स्थान पर पंद्रह, एक स्थान बाईं ओर दो सौ चालीस।
- यहाँ सबसे बड़ी कौन-सी हेक्साडेसिमल संख्या बदल सकता हूँ?
- चौदह अक्षर। 1FFFFFFFFFFFFF हद है और वह 9007199254740991 बनती है, जो वही सीमा है जिसे दशमलव पेज तिरपन बाइनरी अंक बताते हैं। इससे लंबी श्रृंखला काटे या पूर्णांकित किए जाने के बजाय एक संदेश के साथ अस्वीकार कर दी जाती है, क्योंकि इस चौड़ाई के आगे मशीन पड़ोसी पूर्ण संख्याओं में फ़र्क़ नहीं कर पाती और जवाब भरोसे के लायक़ नहीं होता।
- FF यानी 256 नहीं, 255 क्यों है?
- क्योंकि गिनती 01 से नहीं, 00 से शुरू होती है। दो हेक्साडेसिमल अक्षर 256 अलग-अलग श्रृंखलाएँ बनाते हैं, जो 00 से FF तक चलती हैं, इसलिए सबसे बड़ा मान जो वे रख सकते हैं वह 255 है — संभावनाओं की गिनती से एक कम। यही एक-कम वाली बात बाइनरी में भी दिखती है, जहाँ आठ बिट 0 से 255 तक चलते हैं, और इसीलिए हर उस भाषा में बाइट का अधिकतम 255 होता है जिसमें बाइट होती है।
- क्या हेक्स से दशमलव बदलना हेक्स से बाइनरी बदलने जैसा ही है?
- नहीं। बाइनरी में बदलना एक प्रतिस्थापन है जिसमें कोई गणित नहीं लगता: हर अक्षर चार बिट बन जाता है, और पूरा तरीक़ा इतना ही है। दशमलव में बदलना भारित जोड़ है, क्योंकि स्थान दो की घातों के नहीं, सोलह की घातों के होते हैं — 2A3F यानी 2×4096 + 10×256 + 3×16 + 15 — और गुणा शुरू होने से पहले अक्षरों को मानों में बदलना पड़ता है। उसी श्रृंखला का बाइनरी नतीजा 10101000111111 है, और दोनों जवाब एक ही राशि को दो तरह से लिखे हुए हैं।
- पेज सोलह की घातें तालिका में क्यों छापता है?
- क्योंकि ये घातें वे भार हैं जिनसे जोड़ का हर पद गुणा होता है, और उन्हें देख लेना उन्हें निकालने से तेज़ है। तालिका 16⁰ से 16¹³ तक चलती है और इस पेज के लिए पूरी है: चौदह अक्षर सबसे चौड़ा स्वीकार्य इनपुट है, इसलिए कोई भी स्वीकृत जवाब ऐसा स्थान इस्तेमाल नहीं करता जो तालिका में न हो। नतीजे के पैनल में छपे जोड़ के बग़ल इसे पढ़ते जाना दिखा देता है कि कौन-सा भार किस अक्षर का है।
संदर्भ
- Hexadecimal — base sixteen, the letters A to F as the values ten to fifteen, and conversion to and from decimal — Wolfram MathWorld (United States)
- Number base — why a numeral's value depends on its position and on the base, and how the same quantity is written in several bases — Wolfram MathWorld (United States)
- Powers of two — the sequence that the powers of sixteen are every fourth term of, catalogued as OEIS A000079 — OEIS Foundation Inc. (United States)