Bitwise Operators in Python

Bitwise Operators in Python – हम C/C++ में जितने तरह के Numerical Arithmetic Operations Perform कर सकते हैं, उन सभी को Exactly समान प्रकार से Python में भी Perform कर सकते हैं। इसके अन्‍तर्गत वे Operators भी शामिल हैं जो Integers को Binary Bits की String के रूप में Treat करते हैं साथ ही यदि किसी C Program द्वारा Network Packets, Serial Ports या Packed Binary Data Produce किया गया हो, तो Python Code द्वारा इस तरह के Data को भी आसानी से Handle किया जाना सम्‍भव होता है।

जब हम Integers के साथ काम करते हैं, तब Bitwise Operators के माध्‍यम से हम Integers पर कई तरह के Boolean Operations Perform कर सकते हैं और ये Operations, Integer के Bits पर Apply होते हैं Bytes पर नहीं जबकि अभी तक हमने जितने भी Operators Use किए हैं, वे सभी Data के Bytes पर Apply होते हैं।

Python के Bitwise Operators Exactly उसी तरह से काम करते हैं, जिस तरह से C/C++ में करते हैं। इसलिए यदि आपको C/C++ Programming का ज्ञान है, तो आप इन Operators की Working को आसानी से समझ सकते हैं।

Bitwise Operators का प्रयोग सामान्‍यत: तब किया जाता है जब हमें किसी Data के Binary Digits पर किसी तरह का Action Perform करके कोई Output Generate करना होता है। लेकिन जब हम Python का प्रयोग High Level Programming करने के लिए कर रहे होते हैं यानी Professional Level के Applications Develop करने के लिए कर रहे होते हैं, तब Mostly हमें Bitwise Operators की जरूरत ही नहीं पड़ती है।

जब हम किसी Integer Value पर इस Operator का प्रयोग करते हैं, तब ये Operator उस Integer Value के Bits को Specified Numbers के अनुसार Left Side में Shift कर देता है। इसका परिणाम ये होता है कि उस Integer Value का मान प्रत्‍येक Bit के Left Shift होने के साथ ही Double होता जाता है।

इसी तरह से जब हम किसी Integer Value पर Right-Shift Operator का प्रयोग करते हैं, तब ये Operator उस Integer Value के Bits को Specified Numbers के अनुसार Right Side में Shift कर देता है। इसका परिणाम ये होता है कि उस Integer Value का मान प्रत्‍येक Bit के Right Shift होने के साथ ही आधा होता जाता है।

इसी तरह से जब हम किसी Integer Value पर Bitwise AND ( & ) Operator का प्रयोग करते हैं, तब Integer Value के प्रत्‍येक Bit पर Specify किए गए दूसरे Operand के Integer की Binary Value के साथ AND Operation Perform होता है। जबकि Bitwise OR ( I ) Operator का प्रयोग करते हैं, तब Integer Value के प्रत्‍येक Bit पर Specify किए गए दूसरे Operand के Integer की Binary Value के साथ OR Operation Perform होता है। और यदि हम Bitwise XOR ( ^ ) Operator का प्रयोग करके हम OR Operation से Return होने वाले Result को Reverse कर सकते हैं।

इन सभी Operators की Working को बेहतर तरीके से समझने के लिए निम्‍नानुसार एक Example Program Create किया जा सकता है-

[code]
FileName: ShiftOperators.py
val1 = 20
print("Binary of Decimal", val1, "is:", bin(val1), "in bits")

val2 = 2
print("Binary of Decimal", val2, "is:", bin(val2), "in bits")

print()

lShifted = val1 << val2
print("val1 %30s" %bin(val1))
print("val2 %30s" %bin(val2))
print("After Left-Shift %18s" %bin(lShifted))
print("Value After Left-Shift:", lShifted)

print()

rShifted = val1 >> val2
print("val1 %30s" %bin(val1))
print("val2 %30s" %bin(val2))
print("After Right-Shift %18s" %bin(rShifted))
print("Value After Right-Shift:", rShifted)

print()

ANDed = val1 & val2
print("val1 %30s" %bin(val1))
print("val2 %30s" %bin(val2))
print("After ANDed %23s" %bin(ANDed))
print("Value After ANDed:", ANDed)

print()

ORed = val1 | val2
print("val1 %30s" %bin(val1))
print("val2 %30s" %bin(val2))
print("After ORed %24s" %bin(ORed))
print("Value After ORed:", ORed)

print()

xORed = val1 ^ val2
print("val1 %30s" %bin(val1))
print("val2 %30s" %bin(val2))
print("After XORing %22s" %bin(xORed))
print("Value After XORing:", xORed)

Output
Binary of Decimal 20 is: 0b10100 in bits
Binary of Decimal 2 is: 0b10 in bits
val1                      0b10100
val2                      0b10
After Left-Shift          0b1010000

Value After Left-Shift: 80
val1                      0b10100
val2                      0b10
After Right-Shift         0b101

Value After Right-Shift: 5
val1                      0b10100
val2                      0b10
After ANDed               0b0

Value After ANDed: 0
val1                      0b10100
val2                      0b10
After ORed                0b10110

Value After ORed: 22
val1                      0b10100
val2                      0b10
After XORing              0b10110

Value After XORing: 22
[/code]

Python हमें bit_length() नाम का एक Method भी Provide करता है, जिसका प्रयोग करके हम इस बात का पता लगा सकते हैं कि किसी Integer Value को Memory में Store करने के लिए हमें कुल कितने Bits की जरूरत होगी जबकि इसी समान Effect को प्राप्‍त करने के लिए हम किसी Binary String पर len() Function को Apply करके उसमें से Integer Value 2 घटाकर प्राप्‍त कर सकते हैं, जो कि Binary String की शुरूआत के पहले दो Preceding Characters ‘0b‘ को हटाने के लिए होते हैं, जिनका Actual Binary Value से कोई सम्‍बंध नहीं होता। इस प्रक्रिया को निम्‍न Example द्वारा बेहतर तरीके से समझा जा सकता है-

[code]
FileName: bit_length.py
val1 = 20
print("Bits required to store value", val1, ":", val1.bit_length())
print("Bits required to store value", val1, ":", len(bin(val1))-2)

Output
Bits required to store value 20 : 5
Bits required to store value 20 : 5
[/code]

Python in Hindi - BccFalna.comये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Python in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।

Python in Hindi | Page: 602 | Format: PDF

BUY NOW GET DEMO REVIEWS