Bitwise Operators In C Language जानिए हिंदी में!

सी लैंग्वेज में Bitwise Operators क्या है? (What Is Bitwise Operators In C In Hindi)

जैसे कि आपको पता होगा की कंप्यूटर के सीपीयू में अरिथमेटिक लॉजिकल यूनिट होता है जो मैथेमेटिकल ऑपरेशन्स जैसे addition, subtraction, multiplication और division को Bit-Level पर परफॉर्म करता है | यही काम अगर हमे सी लैंग्वेज में करना हो तो हम Bitwise Operators का उपयोग करते है Bitwise Operators बिट लेवल पर मैथेमेटिकल ऑपरेशन्स परफॉर्म करता है | 

Bitwise Operators का उपयोग Operands के बिच Bit level में ऑपरेशन परफॉर्म करने के लिए किया जाता है | Bitwise Operators सबसे पहले ओपेरंडस को Bit में कन्वर्ट करता है फिर ऑपरेशन परफॉर्म करता है | 

C Language में हमारे पास विभिन्न प्रकार के बिटवाइज़ Operators हैं। जिसकी सूची निम्नलिखित है |

List of Bitwise Operators In C Language

OperatorsMeaning of operators
&Bitwise AND
|Bitwise OR
^Bitwise XOR
~Bitwise complement
<<Shift left
>>Shift right
List of Bitwise Operators In C

आइए अब हम Bitwise operators का एक TRUTH TABLE देखते है ।

Truth Table For Bitwise Operations & Bitwise Operators:

XYX&YX|YX^Y
00000
01011
10011
11111

चलिए अब हम सभी Bitwise Operators के बारे में एक एक करके जानते है |

Bitwise AND operator

यह सबसे अधिक उपयोग किए जाने वाला logical bitwise operators में से एक है। यह (&) चिन्ह द्वारा represent किया जाता है | (&) ऑपरेटर के प्रत्येक side पर दो integer expressions होते हैं।

Bitwise AND operator रिजल्ट में 1 लौटाता है यदि दोनों bits का मान 1 होता है नहीं तो रिजल्ट में हमेशा 0 देता है।

मान लीजिये कि हमारे पास दो मान बाइनरी रूप में निम्न हैं 

12 = 00001100 (In Binary)
25 = 00011001 (In Binary)

Bit Operation of 12 and 25
 
   00001100
& 00011001
  ________
  00001000  = 8 (In decimal)

जैसा कि हम ऊपर दिए गए परिणाम से देख सकते हैं कि दोनों ऑपरेंड के बिट्स की एक-एक करके तुलना की जाती है और यदि दोनों बिट का मान 1 है, तो आउटपुट 1 नहीं तो  0 होता है ।

आइए Bitwise AND (&) Operator को हम एक प्रोग्राम के माध्यम से और ज्यादा अच्छे से समझते हैं।

Example Program -: Bitwise AND (&)

#include <stdio.h>
int main()
{
    int a = 12, b = 25;
    printf("Output = %d", a&b);
    return 0;
}

ऊपर दिए गए प्रोग्राम में, हमने दो वेरिएबल ‘a’ और ‘b’ नाम से  बनाए हैं, और इन  ‘a ‘ और ‘b ‘ वेरिएबल में 12 और 25 स्टोर कराया  हैं। ‘a ‘ और ‘b ‘ का बाइनरी मान  00001100 और 00011001 है। जब हम इन दोनों वेरिएबल के बीच AND ऑपरेटर को लागू करते हैं, तो उसका रिजल्ट कुछ इस तरह आता है -:

a AND b = 00001100 & 00011001 = 00001000 इसका डेसीमल में मान 8 होता है | 

Output -:

Output = 8

Bitwise OR operator 

Bitwise OR operator को ( | ) सिंबल से रिप्रेजेंट किया जाता है | Bitwise OR operator रिजल्ट में 1 रिटर्न करता है अगर उसके corresponding दोनों ओपेरंडस में से कोई भी एक ऑपरेंड में 1 होता है और यदि ऐसा नहीं होता तो यह रिजल्ट में 0 रिटर्न करता है | 

For example,

12 = 00001100 (In Binary)
25 = 00011001 (In Binary)

Bitwise OR Operation of 12 and 25
  00001100
| 00011001
  ________
  00011101  = 29 (In decimal)

जैसा कि हम ऊपर दिए गए परिणाम से देख सकते हैं कि दोनों Operands के बिट्स की एक-एक करके तुलना की जाती है और यदि एक भी बिट का मान 1 है, तो आउटपुट 1 अन्यथा 0 होता है ।

आइए Bitwise AND (&) Operator को और ज्यादा अच्छे से समझने के लिए हम एक प्रोग्राम बना कर देखते हैं।

#include <stdio.h>
int main()
{
    int a = 12, b = 25;
    printf("Result Is : %d", a|b);
    return 0;
}

Output -:

Result Is : 29

Bitwise XOR (exclusive OR) operator 

Bitwise XOR  operator को ( ^ ) सिंबल से रिप्रेजेंट किया जाता है | Bitwise XOR operator रिजल्ट में 1 रिटर्न करता है अगर उसके corresponding दोनों ओपेरंडस अलग अलग होते है और यदि ऐसा नहीं होता तो यह रिजल्ट में 0 रिटर्न करता है | 

हम ये भी कह सकते है कि यदि corresponding दोनों bit में से एक बिट 1 और दूसरा बिट 0 हुवा तो Bitwise XOR Operator रिजल्ट में हमेशा 1 ही रिटर्न करेगा |

आइए इस बात हो हम एक एक्साम्प्ले से समझते है | 

12 = 00001100 (In Binary)
25 = 00011001 (In Binary)

Bitwise XOR Operation of 12 and 25

  00001100
^ 00011001
  ________
  00010101  = 21 (In decimal)

Example Program -: Bitwise XOR ( ^ )

#include <stdio.h>
int main()
{
    int a = 12, b = 25;
    printf("Result Is : %d", a^b);
    return 0;
}

Output -:

Result Is : 21

Bitwise complement operator ~

bitwise complement operator को one’s complement operator के रूप में भी जाना जाता है। यह टिल्ड (~) symbol द्वारा represent जाता  है। यह ऑपरेशन परफॉर्म करने के लिए  केवल एक ऑपरेंड या वेरिएबल लेता है और एक ऑपरेंड पर complement operation परफॉर्म करता है। जब हम किसी भी बिट पर complement operation, apply करते हैं, तो 0, 1 हो जाता है और 1, 0 हो जाता है।

For example,

मान लीजिये हमारे पास 'a' नाम का वेरिएबल है, जिसकी वैल्यू ये है 
a = 8;
वेरिएबल a में रखे वैल्यू 8 को बाइनरी में कन्वर्ट करने पर ये रिजल्ट प्राप्त होता है 
a = 1000
जब हम ऑपरेंड में bitwise complement operator को apply करते हैं, तो आउटपुट होगा:

Result = 0111

जैसा कि हम उपरोक्त परिणाम से देख सकते हैं कि यदि बिट 1 है, तो यह 0 और यदि बिट 0 है, तो यह उसे 1 में बदल जाता है।

आइए अब हम एक program के माध्यम से bitwise complement operator को समझते है ।

#include <stdio.h>  
int main()  
{  
   int a=8;  // variable declarations  
   printf("The output of the Bitwise complement operator ~a is %d",~a);  
   return 0;  
}  

Output -:

The output of the Bitwise complement operator ~a is -9

Bitwise Shift Operators In C Language

सी लैंग्वेज  में bitwise shift operators दो प्रकार के होते हैं।

  • Left-shift operator
  • Right-shift operator 

Left-shift operator

Left-shift operator बिट्स की संख्या को Left की ओर स्थानांतरित (shifts) करता है। Left-shift operator को << सिंबल से रिप्रेजेंट किया जाता है।

Syntax of the left-shift operator

Operand << n  

यहाँ पर Operand कोई भी इन्टिजर वेरिएबल हो सकता है और n बिट्स को शिफ्ट करने की संख्या है।

Left-shift operator के केस में बिट्स लेफ्ट साइड शिफ्ट होता है लिस्ट शिफ्ट ऑपरेटर में लेफ्ट साइड के ‘n’ बिट्स हट जाएंगे, और राइट साइड के ‘n’ बिट्स 0 से भर जाएंगे | 

For example,

मान लीजिये हमारे पास ये स्टेटमेंट है 

int a = 5;  

a की वैल्यू को बाइनरी में रिप्रेजेंट करने पर 

a = 00000101 

If we want to left-shift the above representation by 2, then the statement would be:  

a << 2;  

Result : 00000101<<2 = 00010100  

आइए इसको हम एक प्रोग्राम के माध्यम से समझते हैं।

#include <stdio.h>  
int main()  
{  
    int a=5; // variable initialization  
    printf("The value of a<<2 is : %d ", a<<2);  
    return 0;  
}

लेफ्ट शिफ्ट ऑपरेशन करने के बाद वैल्यू 20 हो जाएगी |

Output -:

The value of a<<2 is : 20 

Right-shift operator 

Right-shift operator बिट्स की संख्या को Right की ओर स्थानांतरित (shifts) करता है। Right-shift operator को >> सिंबल से रिप्रेजेंट किया जाता है।

Syntax of the Right-shift operator 

Operand >> n  

यहाँ पर Operand कोई भी इन्टिजर वेरिएबल हो सकता है जिस पर Right-shift ऑपरेशन अप्लाई होगा और n बिट्स को शिफ्ट करने की संख्या है।

Right-shift operator के केस में बिट्स Right साइड शिफ्ट होता है Right शिफ्ट ऑपरेटर में Right साइड के ‘n’ बिट्स हट जाएंगे, और लेफ्ट  साइड के ‘n’ बिट्स 0 से भर जाएंगे | 

For example,

मान लीजिये हमारे पास ये स्टेटमेंट है 

int a = 7;  

a की वैल्यू को बाइनरी में रिप्रेजेंट करने पर 

a = 00000111   

If we want to right-shift the above representation by 2, then the statement would be:  

a >> 2;  

Result : 00000101>>2 = 0000 0001   

आइए इसको हम एक प्रोग्राम के माध्यम से समझते हैं।

#include <stdio.h>  
int main()  
{  
    int a=7; // variable initialization  
    printf("The value of a>>2 is : %d ", a>>2);  
    return 0;  
}  

right-shift ऑपरेशन करने के बाद वैल्यू 1  हो जाएगी |

Output -:

The value of a>>2 is : 1 

Conclusion

दोस्तों आशा करता हु कि आज के इस पोस्ट को पढ़ने के बाद आपको सी लैंग्वेज में Bitwise Operators क्या है? (What Is Bitwise Operators In C In Hindi) से संबंधित सभी जानकारी मिल गई होगी |

अगर आप सी लैंग्वेज का Complete Tutorial चाहते है तो मेरे इस पोस्ट C Language Tutorial In Hindi को देखे यहाँ आपको C Programming Language के सभी टॉपिक्स step by step मिल जाएगी |

दोस्तों आशा करता हु कि आपको ये पोस्ट पसंद आई होगी और आपको Bitwise Operators In C के बारे में काफी जानकरी हुई होगी |

अगर आपको ये पोस्ट पसंद आया है तो इस पोस्ट को अपने अपने दोस्तों को शेयर करना न भूलिएगा ताकि उनको भी ये जानकारी प्राप्त हो सके |

अगर आपको अभी भी Bitwise Operators In C Language से संबंधित कोई भी प्रश्न या Doubt है तो आप जरूर बताये मैं आपके सभी सवालों का जवाब दूँगा और ज्यादा जानकारी के लिए आप हमसे संपर्क कर सकते है |

एसी ही नया टेक्नोलॉजी ,Programming Language, Coding , C Language, C++, Python Course , Java Tutorial से रिलेटेड जानकारियाँ पाने के लिए हमारे इस वेबसाइट को सब्सक्राइब कर दीजिए | जिससे हमारी आने वाली नई पोस्ट की सूचनाएं जल्दी प्राप्त होगी |

Thank you आपका दिन मंगलमय हो |

पढ़ते रहिए और बढ़ते रहिए | Keep Reading and Keep Growing

Jeetu Sahu is A Web Developer | Computer Engineer | Passionate about Coding, Competitive Programming and Blogging

Leave a Comment