बाइनरी सिस्टम, इलेक्ट्रॉनिक कंप्यूटर्स की आंतरिक भाषा होती है। अगर आप माहिर कंप्यूटर प्रोग्रामर हैं, तब आपको समझना चाहिए कि किस प्रकार binary to decimal में कन्वर्ट किया जा सकता है। इस विकिहाउ लेख में आपको यह दिखाया गया है कि ऐसा किस तरह किया जा सकता है।
[संपादन करें]चरण
[संपादन करें]पोज़ीशनल नोटेशन (Positional Notation) का इस्तेमाल करना
- बाइनरी नंबर लिखिए तथा दायें से बाएँ की ओर 2 की पावर्स को लिस्ट करिए: मान लीजिए कि हम बाइनरी नंबर 100110112 को डेसिमल में बदलना चाहते हैं। पहले, उसे लिख लीजिये। उसके बाद 2 की पावर्स को दायें से बाएँ लिख लीजिये। शुरू करिए 20, जिसकी वैल्यू होगी "1"। प्रत्येक पावर के लिए एक्स्पोनेंट को एक से बढ़ाइए। जब लिस्ट में एलीमेंट्स की संख्या बाइनरी नंबर में डिजिट्स की संख्या के बराबर हो जाये, तब रुक जाइए। उदाहरण के लिए, लिए गए नंबर 10011011 में आठ डिजिट्स हैं, इसलिए आठ एलीमेंट्स वाली लिस्ट ऐसी दिखेगी: 128, 64, 32, 16, 8, 4, 2, 1
- बाइनरी नंबर की डिजिट्स को उनकी कॉरेस्पोंडिंग (corresponding) दो की पावर के नीचे लिखिए: अब नंबर्स 128, 64, 32, 16, 8, 4, 2, और 1 के नीचे 10011011 लिखिए ताकि प्रत्येक बाइनरी डिजिट अपनी दो की पावर से कॉरेस्पोंड करे। बाइनरी नंबर के दाईं ओर वाले "1" कॉरेस्पोंड करना चाहिए "1" से, जो कि दो की पावर्स वाली लिस्ट में दाईं ओर होगा, वगैरह। अगर आपको वैसे पसंद हो, तब आप बाइनरी डिजिट्स को दो की पावर्स के ऊपर भी लिख सकते हैं। महत्वपूर्ण बात यह है कि उनको मैच करना चाहिए।
- बाइनरी नंबर की डिजिट्स को कॉरेस्पोंडिंग दो की पावर्स से कनेक्ट करिए: दायें से शुरू कर के, लाइन्स खींचिए, जिससे कि बाइनरी नंबर की प्रत्येक डिजिट क्रमानुसार, दो की पावर वाले हर उस नंबर से कनेक्ट हो जाये जो उसके ऊपर वाली लिस्ट में अगला है। बाइनरी नंबर की पहली डिजिट से दो की पावर वाले पहले नंबर तक लाइन खींच कर शुरू करिए। उसके बाद बाइनरी नंबर की दूसरी डिजिट से लिस्ट में दो की दूसरी पावर तक लाइन खींचिए। प्रत्येक डिजिट को उसकी कॉरेस्पोंडिंग दो की पावर से कनेक्ट करते रहिए। इस तरह से आप नंबर्स के दोनों सेट्स के बीच में जो संबंध है, उसको सामने देख सकते हैं।
- दो की प्रत्येक पावर की फ़ाइनल वैल्यू लिखिए: बाइनरी नंबर की प्रत्येक डिजिट को देखिये। अगर डिजिट 1 है तब लाइन के नीचे उसकी दो की कॉरेस्पोंडिंग पावर लिखिए। अगर डिजिट 0 है, तब उस डिजिट के नीचे लाइन के नीचे 0 लिखिए।
- चूंकि "1" कॉरेस्पोंड करता है "1" के साथ, वह "1" बन जाता है। चूंकि "2" कॉरेस्पोंड करता है "1" के साथ, वह "2" बन जाता है। चूंकि "4" कॉरेस्पोंड करता है "0" के साथ, वह "0" बन जाता है। चूंकि "8" कॉरेस्पोंड करता है "1" के साथ, वह "8" बन जाता है, चूंकि "16" कॉरेस्पोंड करता है "1" के साथ वह "16" बन जाता है। चूंकि "32" कॉरेस्पोंड करता है "0" के साथ वह बन जाता है "0", और "64" कॉरेस्पोंड करता है "0" के साथ वह भी बनता है "0" जबकि "128" कॉरेस्पोंड करता है "1" के साथ और वह 128 बन जाता है।
- फ़ाइनल वैल्यूज को जोड़िए: अब लाइन के नीचे वाले नंबर्स को जोड़ लीजिये। आपको मिलेगा: 128 + 0 + 0 + 16 + 8 + 0 + 2 + 1 = 155। यह बाइनरी नंबर 10011011 का दशमलव इक्वीवेलेंट (equivalent) है।
- बेस सब्स्क्रिप्ट के साथ उत्तर लिखिए: अब आपको केवल इतना करना है कि आप लिखेंगे 15510, जिससे यह स्पष्ट होगा कि आप दशमलव उत्तर के साथ लिख रहे हैं, जो 10 की पावर्स में ऑपरेट कर रहा होगा। आपको बाइनरी से दशमलव में कन्वर्ट करने की जितनी ही आदत पड़ जाएगी, उतनी जल्दी आपको दो की पावर्स याद हो जाएंगी और आप काम को उतनी ही जल्दी पूरा कर पाएंगे।
- इस तरीके का इस्तेमाल किसी डेसिमल पॉइंट वाले बाइनरी नंबर को डेसिमल फ़ॉर्म में बदलने के लिए करिए: आप इस विधि का इस्तेमाल तब भी कर सकते हैं जब आप 1.12 जैसे किसी बाइनरी नंबर को डेसिमल में बदलना चाहते हों। आपको बस इतना जानना है कि डेसिमल पॉइंट के बाईं ओर वाला नंबर यूनिट्स पोजीशन में है, जैसा कि सामान्यतः होता है, जबकि डेसिमल के दाईं ओर वाला नंबर "हाव्स (halves)" पोज़ीशन में है, या 1 x (1/2)।
- डेसिमल पॉइंट के बाईं ओर वाला "1" बराबर होता है 20, या 1 के। डेसिमल के दाईं ओर वाला 1 बराबर होता है 2-1, या .5 के। अब 1 और .5 को जोड़िए और आपको मिलेगा 1.5, जो कि डेसिमल नोटेशन में होगा 1.12।
[संपादन करें]डबलिंग (Doubling) विधि का इस्तेमाल करना
- बाइनरी नंबर लिख लीजिये: इस विधि में पावर्स का इस्तेमाल नहीं होता। इसलिए, यह बड़े नंबर्स को मन ही मन कन्वर्ट करने के लिए आसान होती है, क्योंकि आपको केवल सबटोटल का ट्रैक रखना होता है। पहला काम आपको यह करना होगा कि जिस बाइनरी नंबर को कन्वर्ट करना है, उसको डबलिंग विधि का इस्तेमाल करते हुये लिख डालिए। मान लीजिये कि 10110012 नंबर का इस्तेमाल करना है। इसे लिख लीजिये।
- बाईं ओर से शुरू करके, अपने पिछले योग को दोगुना कर लीजिये और वर्तमान डिजिट में उसे जोड़ दीजिए: चूंकि आपने बाइनरी नंबर 10110012 लिया है, सबसे बाएँ आपके पास पहली डिजिट है 1। आपका पिछला योग है 0 क्योंकि अभी तो आपने शुरुआत की ही नहीं है। आपको पिछले योग का दोगुना करना है, जो कि होगा 0, और इसमें जोड़िए 1, अर्थात वर्तमान डिजिट। 0 x 2 + 1 = 1, इसलिए आपका नया वर्तमान योग होगा 1।
- वर्तमान योग का दोगुना करिए और अब जो डिजिट सबसे बाएँ है उसे जोड़िए: आपका वर्तमान योग अभी है 1 और नई वर्तमान डिजिट है 0। तब, 1 का दोगुना करिए और 0 जोड़िए। 1 x 2 + 0 = 2। आपका नया वर्तमान योग हो गया 2।
- पिछले स्टेप को दोहराइए: बस करते रहिए। फिर, वर्तमान योग को दोगुना करिए, और जोड़िए 1, आपकी अगली डिजिट। 2 x 2 + 1 = 5। आपका वर्तमान योग अब 5 हो गया है।
- पिछले स्टेप को फिर से दोहराइए: अब, अपने वर्तमान योग 5 को दोगुना करिए, और अगली डिजिट 1 जोड़ दीजिये। 5 x 2 + 1 = 11। आपका नया योग है 11।
- पिछले स्टेप को फिर से दोहराइए: वर्तमान योग 11 को दोगुना करिए, और अगली डिजिट 0 को जोड़िए। 2 x 11 + 0 = 22।
- पिछले स्टेप को फिर से दोहराइए: अब अपने वर्तमान योग 22 को दोगुना करिए और उसमें अगली डिजिट 0 जोड़िए। 22 x 2 + 0 = 44।
- अपने वर्तमान योग को दोगुना करते रहिए और अगली डिजिट तब तक जोड़ते रहिए जब तक सब डिजिट्स समाप्त न हो जाएँ: अब आप अपने अंतिम नंबर तक पहुँच चुके हैं, और आपका काम बस हो ही गया है! अब आपको बस इतना करना है कि अपने वर्तमान योग 44 को लीजिये उसे दोगुना करिए और अपनी अंतिम डिजिट 1 में उसे जोड़ दीजिये। 2 x 44 + 1 = 89। आपका काम पूरा हो ही गया है! आपने 100110112 को डेसिमल नोटेशन में कन्वर्ट कर दिया है, उसकी डेसिमल फ़ॉर्म 89 है।
- उत्तर को उसकी बेस सबस्क्रिप्ट के साथ लिखिए: अपने फ़ाइनल उत्तर को 8910 लिखिए जिससे यह पता चल सके कि आप डेसिमल में काम कर रहे हैं, जिसका बेस 10 है।
- इस विधि का प्रयोग किसी भी बेस को डेसिमल में कन्वर्ट करने के लिए करिए: अगर दिया हुआ नंबर किसी अन्य बेस का है, तब विधि में 2 की जगह, दिये हुये नंबर का जो बेस हो, उसका इस्तेमाल करिए। उदाहरण के लिए, अगर दिये हुये नंबर का बेस 37 हो, तब आप "x 2" की जगह "x 37" का इस्तेमाल करेंगे। अंतिम परिणाम हमेशा डेसिमल (बेस 10) में होगा।
[संपादन करें]सलाह
- प्रैक्टिस करिए। इन बाइनरी नंबर्स को कन्वर्ट करने का प्रयास करिए 110100012, 110012, और 111100012। क्रमशः इनके डेसिमल इक्वीवेलेंट हैं 20910, 2510, और 24110।
- नोट: यह केवल गिनने के लिए है, और इसमें ASCII अनुवाद की बात नहीं की गई है।
- माइक्रोसॉफ्ट विंडोज़ के साथ जो कैलकुलेटर आता है, वो आपके लिए यह कनवर्ज़न कर सकता है, मगर एक प्रोग्रामर के रूप में, आपके लिए यह बेहतर होगा कि आप समझ लें कि यह कनवर्ज़न काम कैसे करता है। "View" मेन्यू में "Scientific" (या "Programmer") चुन कर कैलकुलेटर के कनवर्ज़न विकल्प सामने लाये जा सकते हैं। लाइनक्स (Linux) पर, आप कैलकुलेटर का इस्तेमाल कर सकते हैं।
[संपादन करें]चेतावनी
- फ़्लोटिंग पॉइंट या फिक्स्ड पॉइंट की जगह यह अनसाइण्ड बाइनरी का इस्तेमाल करता है।