कम्प्युटरको संसार आकर्षक छ, र यस संसारको मूलमा दुई महत्वपूर्ण अवधारणाहरू छन्: बाइनरी र मेशिन भाषा। यी अवधारणाहरूले प्रत्येक एप्लिकेसन र यन्त्रलाई शक्ति मात्र प्रदान गर्दैन तर कम्प्युटरले डाटा कसरी प्रशोधन र बुझ्छ भन्ने बारे एउटा विन्डो पनि प्रदान गर्दछ। कम्प्यूटरको भित्री कार्यलाई अझ राम्रोसँग बुझ्नको लागि यी विषयहरूमा ध्यान दिऔं।
बाइनरी कम्प्युटरको आधारभूत भाषा हो। यो एक आधार-२ अंक प्रणाली हो जसले केवल दुई अंकहरू प्रयोग गर्दछ: ० र १। बाइनरी नम्बरमा प्रत्येक अंकलाई बिट भनिन्छ, जुन कम्प्युटिङमा डाटाको सबैभन्दा सानो एकाइ हो।
किन बाइनरी? कम्प्युटरहरूले लाखौं साना इलेक्ट्रोनिक कम्पोनेन्टहरू प्रयोग गरेर सञ्चालन गर्छन् जसलाई ट्रान्जिस्टर भनिन्छ। ट्रान्जिस्टरहरू या त 'अन' वा 'अफ' अवस्थामा हुन सक्छन्, क्रमशः १ वा ० प्रतिनिधित्व गर्ने। यसले कम्प्युटरहरूको लागि बाइनरीलाई प्राकृतिक भाषा बनाउँछ।
बाइनरी प्रणालीमा, बाइनरी संख्यामा प्रत्येक स्थितिले 2 को शक्ति प्रतिनिधित्व गर्दछ, सबैभन्दा कम महत्त्वपूर्ण बिट (दायाँ) प्रतिनिधित्व गर्दछ \(2^0\) , अर्को प्रतिनिधित्व गर्दछ \(2^1\) , र यस्तै। उदाहरण को लागी, बाइनरी नम्बर 1011 लाई दशमलव मा रूपान्तरण गर्न सकिन्छ (हाम्रो सामान्य संख्या प्रणाली, जुन आधार-10 हो) निम्नानुसार:
\( 1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0 = 8 + 0 + 2 + 1 = 11 \)यसले सङ्ख्यादेखि अक्षरहरू र जटिल मल्टिमिडिया फाइलहरूसम्म सबै प्रकारका डाटाहरू भण्डारण र प्रशोधन गर्ने आधारको रूपमा सेवा गर्दै, कम्प्युटिङका लागि बाइनरी सङ्ख्याहरू कसरी आधारभूत हुन्छन् भनेर चित्रण गर्छ।
जबकि बाइनरी कम्प्युटरको भाषा हो, मेशिन भाषा मूल प्रोग्रामिङ भाषा मान्न सकिन्छ। यो बाइनरी अंक वा बिटहरूको संग्रह हो जुन कम्प्युटरले सञ्चालन गर्नका लागि पढ्छ र व्याख्या गर्दछ। मेशिन भाषा प्रत्येक कम्प्युटरको वास्तुकलाको लागि विशिष्ट हुन्छ, यसको अर्थ एक प्रकारको कम्प्युटरको लागि मेसिन भाषामा लेखिएको प्रोग्रामले परिमार्जन बिना अर्को प्रकारमा काम गर्दैन।
मेसिन भाषा मेसिन निर्देशनहरू मिलेर बनेको हुन्छ, जुन कम्प्युटरको CPU (केन्द्रीय प्रशोधन इकाई) द्वारा बुझिने सबैभन्दा आधारभूत आदेशहरू हुन्। यी निर्देशनहरूले मेमोरी स्थानहरू बीच डाटा सार्ने, अंकगणितीय कार्यहरू प्रदर्शन गर्ने, र कार्यक्रमहरूको कार्यान्वयन प्रवाह नियन्त्रण गर्ने जस्ता कार्यहरू समावेश गर्न सक्छन्।
बाइनरी र मेशिन भाषाले कसरी अन्तरक्रिया गर्छ भनेर चित्रण गर्न एउटा सरल उदाहरण विचार गरौं। मानौं हामी दुई नम्बरहरू, 2 र 3, धेरै सरल (र काल्पनिक) मेसिनमा थप्न चाहन्छौं जसले यसको निर्देशनहरूको लागि बाइनरी प्रयोग गर्दछ।
"add" को लागि मेसिन निर्देशन बाइनरीमा 0001 को रूपमा प्रतिनिधित्व गर्न सकिन्छ। बाइनरीमा 2 र 3 अंकहरू क्रमशः 0010 र 0011 हुन्। यी दुई नम्बरहरू थप्नको लागि सम्पूर्ण मेसिन भाषा निर्देशन यस प्रकार देखिन सक्छ:
\( \textrm{सञ्चालन (थप्नुहोस्)}: 0001 \ \textrm{सञ्चालन १ (२)}: 0010 \ \textrm{सञ्चालन २ (३)}: 0011 \ \)जब CPU ले बाइनरी अंकहरूको यो क्रम पढ्छ, यसले तिनीहरूलाई 2 र 3 नम्बरहरू थप्न निर्देशनको रूपमा व्याख्या गर्दछ। नतिजा, 5, त्यसपछि भण्डारण वा थप प्रक्रियाको लागि प्रयोग गरिनेछ।
बाइनरी र मेसिन भाषाले गति र दक्षता सहित धेरै फाइदाहरू प्रदान गर्दछ। यी भाषाहरू कम्प्युटर हार्डवेयरको सबैभन्दा आधारभूत स्तरमा काम गर्ने हुनाले, तिनीहरूले कम्प्युटरको कम्पोनेन्टहरूको छिटो र प्रत्यक्ष हेरफेरको लागि अनुमति दिन्छ।
जे होस्, मेसिन भाषामा प्रोग्रामहरू लेख्नु धेरै जटिल र त्रुटिहरूको खतरा हुन्छ। यो विभिन्न प्रकारका कम्प्युटर आर्किटेक्चरहरू बीच पोर्टेबल पनि छैन। यी सीमितताहरूलाई सम्बोधन गर्न, उच्च-स्तर प्रोग्रामिङ भाषाहरू, जस्तै पाइथन, जाभा, र C++, विकास गरिएको थियो। यी भाषाहरूले प्रोग्रामरहरूलाई थप मानव-पढ्न सकिने ढाँचामा कोड लेख्न सक्षम बनाउँछन्, जुन त्यसपछि कम्पाइलर वा दोभाषेहरूद्वारा मेसिन भाषामा अनुवाद गरिन्छ।
बाइनरी र मेशिन भाषा कम्प्युटिङको मुटुमा छन्, आधारभूत फ्रेमवर्क प्रदान गर्दछ जसमा सबै कम्प्युटर सञ्चालनहरू आधारित छन्। यी आधारभूत अवधारणाहरू बुझ्दा कम्प्यूटरहरूले कसरी प्रोग्रामहरू कार्यान्वयन गर्छन् र डाटा प्रक्रिया गर्छन् भन्ने बारे अन्तरदृष्टि प्रदान गर्दछ। तिनीहरूको जटिलता र उच्च-स्तर भाषाहरूको विकासको बावजुद, बाइनरी र मेशिन भाषा कम्प्युटर विज्ञान र प्रोग्रामिङमा गहिरो अध्ययन गर्न खोज्ने जो कोहीको लागि आवश्यक छ।