← Back to Python Course | Chapter 2: Input, Output & Operators | Lesson 9 of 16

Python Bitwise Operators

Bitwise operators कंप्यूटर के अंदर मौजूद छोटे-छोटे 0 और 1 पर काम करते हैं, जैसे लाइट स्विचों की एक कतार को एक-एक करके पलटना। ये आपको किसी number के अलग-अलग switches जाँचने या बदलने देते हैं।
Syntax
python
result = a & b  # AND
result = a | b  # OR
result = a ^ b  # XOR
result = ~a
result = a << n  # or >> n

Bitwise AND और OR

Bitwise operators किसी integer के मान पर समग्र रूप से नहीं, बल्कि उसके अलग-अलग binary bits पर काम करते हैं।

& (AND) हर output bit को तभी 1 करता है जब दोनों inputs में उस स्थान पर 1 हो, और | (OR) उसे 1 करता है अगर कोई भी input में 1 हो — वही logic gates जो digital electronics में इस्तेमाल होते हैं, बस संख्याओं पर लगाए गए।

उदाहरण: Bitwise AND and OR

python
print(6 & 3)
print(6 | 3)

Bitwise XOR

^ (XOR) किसी bit को केवल तब 1 करता है जब संबंधित input bits अलग हों — एक 1 और एक 0 — और मेल खाने पर 0 करता है। यह गुण XOR को bits toggle करने और हल्के checksums के लिए उपयोगी बनाता है।

उदाहरण: Bitwise XOR

python
print(6 ^ 3)

Bitwise NOT

~ (NOT) एक unary operator है जो अपने operand के हर bit को पलट देता है, जो गणितीय रूप से किसी भी integer x के लिए -(x + 1) के बराबर बैठता है क्योंकि Python ऋणात्मक संख्याओं को कैसे दर्शाती है — एक ब्योरा जो दिखने वाले अंकों पर साधारण bit-पलटाव की उम्मीद करने वालों को चौंकाता है।

उदाहरण: Bitwise NOT

python
print(~5)

Shift Operators

<< bits को बाईं ओर खिसकाता है और दाईं ओर शून्य डालता है (हर खिसकाए गए स्थान के लिए 2 से गुणा के बराबर), जबकि >> bits को दाईं ओर खिसकाता है, जो हर स्थान के लिए 2 से integer division के बराबर है — दोनों दो की घातों से गुणा या भाग के तेज़ विकल्प हैं।

उदाहरण: Shift Operators

python
print(1 << 3)
print(16 >> 2)

Bitwise Flags

क्योंकि एक अकेला integer कई bits रखता है, programs कभी-कभी कई सही/गलत flags को एक ही संख्या में पैक करते हैं और अलग-अलग flags को set, clear या test करने के लिए bitwise operators का उपयोग करते हैं — निचले स्तर की systems programming से उधार ली गई एक सघन तकनीक।

उदाहरण: Bitwise Flags

python
READ = 1  # bit 0
WRITE = 2  # bit 1
permissions = READ | WRITE  # combine both flags into one integer
print(permissions & WRITE != 0)  # test whether the WRITE flag is set
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.