Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में शिफ्ट ऑपरेटर्स क्या हैं?


बिटवाइज़ शिफ्ट ऑपरेटर्स हैं: राइट-शिफ्ट ऑपरेटर (>>), जो shift_expression के बिट्स को दाईं ओर ले जाता है, और लेफ्ट-शिफ्ट ऑपरेटर (<<), जो shift_expression के बिट्स को बाईं ओर ले जाता है।

लेफ्ट-शिफ्ट ऑपरेटर shift-expression में बिट्स को additive-expression द्वारा निर्दिष्ट पदों की संख्या से बाईं ओर शिफ्ट करता है। शिफ्ट ऑपरेशन द्वारा खाली किए गए बिट पोजिशन्स जीरो-फिल्ड होते हैं। लेफ्ट शिफ्ट एक लॉजिकल शिफ्ट है (अंत से शिफ्ट हुए बिट्स डिस्कार्ड हो जाते हैं, साइन बिट सहित)।

राइट-शिफ्ट ऑपरेटर shift-expression में बिट पैटर्न को additive-expression द्वारा निर्दिष्ट पदों की संख्या से दाईं ओर शिफ्ट करता है। अनसाइन्ड नंबर्स के लिए, शिफ्ट ऑपरेशन द्वारा खाली किए गए बिट पोजिशन्स जीरो-फिल्ड होते हैं। साइन्ड नंबर्स के लिए, साइन बिट का उपयोग खाली बिट पोजिशन्स को भरने के लिए किया जाता है। दूसरे शब्दों में, यदि संख्या पॉजिटिव है, तो 0 उपयोग किया जाता है, और यदि नंबर नेगेटिव है, तो 1 उपयोग किया जाता है।

उदाहरण

#include<iostream>
using namespace std;
int main() {
    int a = 1, b = 3;
    // a अभी 00000001 है
    // इसे 3 से लेफ्ट शिफ्ट करने पर 00001000 बनेगा, यानी 8
    a = a << 3;
    cout << a << endl;
    // a को 2 से राइट शिफ्ट करने पर 00000010 बनेगा, यानी 2
    a = a >> 2;
    cout << a << endl;
    return 0;
}

आउटपुट

इससे आउटपुट मिलेगा –

8
2

ध्यान दें कि ये ऑपरेटर्स नेगेटिव नंबर्स के साथ बहुत अलग व्यवहार करते हैं। साइन्ड नेगेटिव नंबर के राइट-शिफ्ट का परिणाम इम्प्लीमेंटेशन-डिपेंडेंट होता है। यदि आप साइन्ड नंबर को इतना लेफ्ट-शिफ्ट करते हैं कि साइन बिट प्रभावित हो, तो परिणाम अनडिफाइंड होता है।

ऐसे 2 कंपाउंड ऑपरेटर्स भी हैं जिनका उपयोग मान को सीधे बाएं वाले मान पर असाइन करने के लिए किया जा सकता है। ये <<= ऑपरेटर और >>= ऑपरेटर हैं।

शिफ्ट ऑपरेटर्स के अधिक विस्तृत निरीक्षण के लिए यहां देखें।

  1. - C# में Arithmetic Operators क्या हैं?

    Operator एक Symbol है जो Compiler को Specific Mathematical या Logical Manipulations Perform करने के लिए कहता है।OperatorDescriptionExample+दो Operands को Add करता हैA + B = 30-Second Operand को First से Subtract करता हैA - B = -10*दोनों Operands को Multiply करता हैA * B = 200/Numerator को De-numerat

  1. - C# में Assignment Operators क्या हैं?

    Operator एक Symbol है जो Compiler को Specific Mathematical या Logical Manipulations Perform करने के लिए कहता है।C# में निम्न Assignment Operators हैं।OperatorDescriptionExample=Simple Assignment Operator, Right Side Operands से Values को Left Side Operand में Assign करता हैC = A + B, A + B की Value

  1. - C# में लेफ्ट शिफ्ट और राइट शिफ्ट ऑपरेटर्स (>> और <<) क्या हैं?

    बिटवाइज़ लेफ्ट शिफ्ट ऑपरेटरबाएं ऑपरेंड का मान दाएं ऑपरेंड द्वारा निर्दिष्ट बिट्स की संख्या से बाएं मूव होता है।बिटवाइज़ राइट शिफ्ट ऑपरेटरबाएं ऑपरेंड का मान दाएं ऑपरेंड द्वारा निर्दिष्ट बिट्स की संख्या से दाएं मूव होता है।निम्न उदाहरण बिटवाइज़ लेफ्ट और राइट शिफ्ट ऑपरेटर्स के साथ काम करने का तरीका दिख