सी # बिटवाइज़ लेफ्ट शिफ्ट (<<) ऑपरेटर

Si Bitava Iza Lephta Siphta Oparetara



C # प्रोग्रामिंग में, हम बिट-लेवल ऑपरेशन करने के लिए बिटवाइज़ ऑपरेटर्स का उपयोग कर सकते हैं। जब हम जोड़, घटाव, गुणा या भाग जैसे अंकगणितीय कार्य करते हैं तो CPU में बिट स्तर की गणना की जाती है। हम C# प्रोग्रामिंग में बिटवाइज़ ऑपरेशन भी कर सकते हैं और प्रक्रिया सरल है। बिटवाइज़ ऑपरेटर दिए गए मान पर एक ऑपरेशन करते हैं। शिफ्ट करने के लिए बिट्स की संख्या भी निर्दिष्ट है। सी # भाषा में छह बिटवाइज़ ऑपरेटर हैं, उनमें से दो शिफ्ट ऑपरेटर हैं।

हमारी चर्चा का विषय शिफ्ट ऑपरेटरों के बारे में है। बिटवाइज़ लेफ्ट शिफ्ट ऑपरेटर (<<) के बारे में विस्तार से बताया जाएगा। शिफ्ट ऑपरेटर, जैसा कि नाम से पता चलता है, बिट को निर्दिष्ट स्थिति से बाईं ओर या दाईं ओर स्थानांतरित करता है। बिटवाइज़ लेफ्ट शिफ्ट ऑपरेटर (<<) का उपयोग करते समय मान को बिट्स की निर्दिष्ट संख्या द्वारा बाईं ओर ले जाया जाता है। लेफ्ट शिफ्ट ऑपरेटर केवल int (पूर्णांक), uint (अहस्ताक्षरित पूर्णांक), लंबा (लंबा पूर्णांक), और ulong (अहस्ताक्षरित लंबा पूर्णांक) में इनपुट लेते हैं। जब बायाँ ऑपरेंड एक अलग प्रकार का होता है, तो इसे पूर्णांक प्रकार में बदल दिया जाता है। परिणामी मान का डेटा प्रकार 32 बिट्स की सीमा को बनाए रखता है; आउटपुट इससे बड़ा नहीं हो सकता। बिटवाइज़ ऑपरेटर कोड को कुशल और तेज़ बनाते हैं। इसके अलावा, वे अधिक सटीकता और सटीकता प्रदान करते हैं।

वाक्य - विन्यास:

ऑपरेंड_1 << ऑपरेंड_2







पहला 'Operand_1' वह मान है जिसे बाईं ओर से शिफ्ट की संख्या में स्थानांतरित किया जाता है जिसमें 'Operand_2' शामिल होता है। सिंबल << लेफ्ट 'Operand_1' को शिफ्ट करता है।



उदाहरण 1:

बिटवाइज़ लेफ्ट शिफ्ट ऑपरेटर (<<) इस प्रोग्राम में पूर्णांक मानों पर लागू होता है।



सिस्टम का उपयोग करना;

क्लास प्रोग्राम_1
{
स्थैतिक शून्य मुख्य ( ) {
इंट वैल्यू_0 = 3. 4 ;
int Value_1 = 65 ;
पूर्णांक रेस = मान_0 << मान_1;
कंसोल।लिखो ( 'बाईं पारी है  ' ) ;
कंसोल।लिखो ( रेस ) ;
}
}

पहले कथन में दो पूर्णांक प्रकार के चरों की घोषणा और आरंभीकरण शामिल है। पहला वेरिएबल 'Value_0' है और दूसरा वेरिएबल 'Value_1' है। उनमें संग्रहीत मूल्य '34' और '65' हैं। हमने लेफ्ट शिफ्ट ऑपरेटर (<<) का उपयोग करके मान 34 को छोड़ दिया। फिर, हम एक और चर घोषित करते हैं जिसमें परिणाम को बचाने के लिए एक पूर्णांक डेटा प्रकार होता है। यहां, हम लेफ्ट शिफ्ट ऑपरेटर (<<) को Value_0 << Value_1 के रूप में उपयोग करते हैं। यह ऑपरेटर बाएं ऑपरेंड के बाएं मान को दूसरे ऑपरेंड में दिए गए मान से बदल देता है। 'रेस' शिफ्ट ऑपरेटर के आउटपुट को स्टोर करता है। इसके बाद, हम कंसोल को कॉल करते हैं। टेक्स्ट को प्रिंट करने के लिए राइट () मेथड 'लेफ्ट शिफ्ट है' और परिणामी वैल्यू जो टर्मिनल पर 'रेस' में स्टोर होती है।





उदाहरण 2:

आइए अहस्ताक्षरित पूर्णांक मानों पर बाएँ शिफ्ट ऑपरेटर का उपयोग करें और देखें कि वे आउटपुट कैसे उत्पन्न करते हैं।



सिस्टम का उपयोग करना;

क्लास प्रोग्राम_2
{
स्थैतिक शून्य मुख्य ( ) {
यूंट वैल_0 = 4435 ;
int वैल_1 = 64 ;
यूंट नतीजा = वैल_0 << वैल_1;
कंसोल।लिखो ( 'बाएं पारी है' ) ;
कंसोल।लिखो ( नतीजा ) ;
}
}

यहां, हम लेफ्ट शिफ्ट ऑपरेटर को अहस्ताक्षरित पूर्णांक प्रकार मान पर लागू करते हैं। आपको एक बात का ध्यान रखना चाहिए कि दूसरा ऑपरेंड एक पूर्णांक प्रकार का मान होना चाहिए क्योंकि संकलक केवल एक पूर्णांक मान को स्थानांतरित करने के लिए लेता है।

स्थैतिक शून्य मुख्य () फ़ंक्शन को कॉल करने के बाद, हम दो चर घोषित करते हैं - जिनमें से एक अहस्ताक्षरित पूर्णांक मान 'Val_0' है और दूसरा पूर्णांक मान 'Val_1' है। फिर, हम एक और अहस्ताक्षरित पूर्णांक चर को परिभाषित करते हैं जो अहस्ताक्षरित पूर्णांक को बाईं ओर स्थानांतरित करने के बाद परिणामी मान रखने के लिए 'परिणाम' है। हम परिणाम को एक पूर्णांक प्रकार चर में संग्रहीत नहीं कर सकते हैं क्योंकि बाएं स्थानांतरण के बाद, परिणाम एक अहस्ताक्षरित मान है। 'Val_0 << Val_1' स्टेटमेंट लेफ्ट ऑपरेंड को शिफ्ट करता है जो एक अहस्ताक्षरित पूर्णांक मान है। यह एक अहस्ताक्षरित पूर्णांक मान उत्पन्न करता है। अंत में, कंसोल.राइट () विधि का उपयोग करके 'बाएं शिफ्ट है' पाठ के साथ आउटपुट स्क्रीन पर परिणाम दिखाएं:

उदाहरण 3:

इस उदाहरण में, हम लंबे पूर्णांक मानों पर बिटवाइज़ लेफ्ट शिफ्ट ऑपरेटर (<<) का उपयोग करने के विभिन्न तरीकों के बारे में बात करेंगे।

सिस्टम का उपयोग करना;

क्लास प्रोग्राम_3
{
स्थैतिक शून्य मुख्य ( ) {
लंबी संख्या_0 = चार पाच ;
लंबी संख्या_1 = 5 ;

कंसोल।लिखो ( 'लंबे समय की बाईं पारी है' ) ;
कंसोल। राइटलाइन ( नंबर_0 << 3 ) ;
कंसोल।लिखो ( 'लंबे समय की बाईं पारी है' ) ;
कंसोल।लिखो ( नंबर_0 << Convert.ToInt16 ( संख्या 1 ) ) ;
}
}

दो लंबे पूर्णांक प्रकार के चर, 'संख्या_0' और 'संख्या_1' का आरंभीकरण पहले कथन में किया गया है। 'लंबे समय की बाईं ओर शिफ्ट है' संदेश और टर्मिनल पर परिणाम का प्रतिनिधित्व करने के लिए कंसोल.राइट () फ़ंक्शन को आमंत्रित करें। यहां, हम लेफ्ट शिफ्ट ऑपरेटर (<<) को इस तरह से लागू करते हैं कि हम पहले ऑपरेंड को पहले वेरिएबल के रूप में और दूसरे ऑपरेंड को पूर्णांक मान के रूप में रखते हैं। कंपाइलर बाएं पहले ऑपरेंड को शिफ्ट करता है जो 3 से 'नंबर_0' है और परिणाम प्रदर्शित करता है। अगले कथन में, कंसोल.राइट () विधि को नियोजित करके स्क्रीन पर एक और संदेश प्रिंट करें। यहां, हम पहले वेरिएबल, 'नंबर_0', पहले ऑपरेंड के रूप में और दूसरा वेरिएबल, 'नंबर_1', दूसरे ऑपरेंड के रूप में उपयोग करते हैं। दूसरा ऑपरेंड एक पूर्णांक प्रकार का मान होना चाहिए। हम Convert.ToInt16 () फ़ंक्शन का उपयोग करके दूसरे चर 'नंबर_1' को पूर्णांक प्रकार में टाइप करते हैं। फिर, कंसोल पर परिणाम प्रदर्शित करें:

उदाहरण 4:

यह कोड दिखाता है कि अहस्ताक्षरित लंबे ऑपरेटर पर बाईं ओर शिफ्ट करने के बाद हम पूर्णांक को मान कैसे निर्दिष्ट कर सकते हैं।

सिस्टम का उपयोग करना;

क्लास प्रोग्राम_4
{
स्थैतिक शून्य मुख्य ( ) {
सिर संख्या_0 = 445 ;

कंसोल।लिखो ( 'उलोंग की बाईं पारी है' ) ;
कंसोल। राइटलाइन ( नंबर_0 << 8 ) ;
कंसोल।लिखो ( 'उलोंग की बाईं पारी है' ) ;
कंसोल। राइटलाइन ( नंबर_0 << 16 ) ;
कंसोल।लिखो ( 'उलोंग की बाईं पारी है' ) ;
कंसोल। राइटलाइन ( नंबर_0 << 32 ) ;

}
}

सबसे पहले, एक अहस्ताक्षरित लंबा पूर्णांक प्रकार चर घोषित करें जो 'संख्या_0' है। अगला, कंसोल.राइट () विधि को कॉल करके टर्मिनल पर 'उलोंग की बाईं ओर है' पाठ दिखाएं। हम 8 के पूर्णांक मान द्वारा 'संख्या_0' की बाईं पारी पाएंगे और हमें परिणाम को कहीं भी संग्रहीत करने की आवश्यकता नहीं है। कंसोल.राइटलाइन () फ़ंक्शन परिणाम को कंसोल पर प्रिंट करता है। इस प्रक्रिया को दो बार दोहराएं और दूसरे ऑपरेंड के मान को बदल दें। ऐसा करने से, हम एक लंबे अहस्ताक्षरित पूर्णांक प्रकार के मान की बाईं पारी पा सकते हैं। लेकिन अगर हम परिणामी मान को एक चर में सहेजना चाहते हैं, तो हमें यह विचार रखना चाहिए कि परिणाम पहले ऑपरेंड के समान ही है। कंसोल.राइट () और कंसोल.राइटलाइन () के बीच एकमात्र अंतर यह है कि दूसरा फ़ंक्शन परिणाम को प्रिंट करता है और कर्सर को अगली पंक्ति में भेजता है जबकि पहला फ़ंक्शन केवल परिणाम को प्रिंट करता है और कर्सर उसी लाइन पर ब्लिंक करने के बाद भी आउटपुट प्रदर्शित करना।

निष्कर्ष

हमने C# में बिटवाइज़ ऑपरेटरों, उनके प्रकारों और कार्यात्मकताओं का पता लगाया। लेफ्ट शिफ्ट (<<) ऑपरेटर को बिट्स की निश्चित संख्या द्वारा बाईं ओर संख्या या मान को स्थानांतरित करने के लिए लागू किया जाता है। बिटवाइज़ ऑपरेटर कोड की दक्षता में सुधार करते हैं और यह सिस्टम पर बोझ नहीं डालता है क्योंकि वे हल्के ऑपरेटर हैं। जब भी हम कोई अंकगणितीय संक्रिया करते हैं तो हमारा सीपीयू (कंप्यूटर प्रोसेसिंग यूनिट) बिटवाइज़ स्तर पर काम करता है। संक्षेप में, बिटवाइज़ ऑपरेटर्स प्रोग्रामिंग में महत्वपूर्ण हैं और C# उन सभी बिटवाइज़ ऑपरेटरों का समर्थन करता है जिनमें लेफ्ट शिफ्ट ऑपरेटर (<<) उनमें से एक है।