Toán tử bitwise thao tác trực tiếp trên các bit của số nguyên. Giả sử a = 60 (0011 1100) và b = 13 (0000 1101):
a = 0011 1100 b = 0000 1101 ----------------- a & b = 0000 1100 (12) a | b = 0011 1101 (61) a ^ b = 0011 0001 (49) ~a = 1100 0011 (-61 dạng bù 2) a << 2 = 1111 0000 (240) a >> 2 = 0000 1111 (15)
| STT | Toán tử & Mô tả | Ví dụ |
|---|---|---|
| 1 | & (AND bitwise) - Bit kết quả = 1 nếu cả hai bit đều 1 | (a & b) = 12 |
| 2 | | (OR bitwise) - Bit kết quả = 1 nếu ít nhất một bit là 1 | (a | b) = 61 |
| 3 | ^ (XOR bitwise) - Bit kết quả = 1 nếu hai bit khác nhau | (a ^ b) = 49 |
| 4 | ~ (NOT bitwise / Ones Complement) - Đảo ngược mọi bit | (~a) = -61 |
| 5 | << (Left Shift) - Dịch bit trái, tương đương nhân 2n | a << 2 = 240 |
| 6 | >> (Right Shift) - Dịch bit phải, tương đương chia nguyên 2n | a >> 2 = 15 |
Ví dụ chương trình
#!/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
Kết quả
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