Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ออปเปอเรเตอร์บิตเวิร์ช (Bitwise Operators) ใน Python


ออปเปอเรเตอร์บิตเวิร์ชทำงานระดับบิต (bit-by-bit) สมมติ a = 60 และ b = 13 ในรูปแบบทศนิยมฐานสอง:

a = 0011 1100 (60)
b = 0000 1101 (13)
-----------------
a & b = 0000 1100 (12)
a | b = 0011 1101 (61)
a ^ b = 0011 0001 (49)
~a    = 1100 0011 (-61 ในรูป 2's complement)
ลำดับออปเปอเรเตอร์และคำอธิบายตัวอย่าง
1& (Binary AND)
คัดลอกบิตถ้ามีในทั้งสองอเปอแลนด์
(a & b) = 12
2| (Binary OR)
คัดลอกบิตถ้ามีในอันใดอันหนึ่ง
(a | b) = 61
3^ (Binary XOR)
คัดลอกบิตถ้าตั้งค่าในอันใดอันหนึ่งแต่ไม่ใช่ทั้งสอง
(a ^ b) = 49
4~ (Binary Ones Complement)
ยูนารี กลับบิตทั้งหมด
(~a) = -61
5<< (Binary Left Shift)
เลื่อนบิตซ้ายตามจำนวนที่ระบุ
a << 2 = 240
6>> (Binary Right Shift)
เลื่อนบิตขวาตามจำนวนที่ระบุ
a >> 2 = 15

ตัวอย่างโค้ด

#!/usr/bin/python
a = 60  # 0011 1100
b = 13  # 0000 1101
c = 0

c = a & b;  print "Line 1 - Value of c is", c  # 12
c = a | b;  print "Line 2 - Value of c is", c  # 61
c = a ^ b;  print "Line 3 - Value of c is", c  # 49
c = ~a;     print "Line 4 - Value of c is", c  # -61
c = a << 2; print "Line 5 - Value of c is", c  # 240
c = a >> 2; print "Line 6 - Value of c is", c  # 15

เอาต์พุต

Line 1 - Value of c is 12
Line 2 - Value of c is 61
Line 3 - Value of c is 49
Line 4 - Value of c is -61
Line 5 - Value of c is 240
Line 6 - Value of c is 15