Các toán tử bitwise Python được sử dụng để thực hiện các tính toán bitwise trên các số nguyên. Các số nguyên được chuyển đổi thành định dạng nhị phân và sau đó các hoạt động được thực hiện từng chút một, do đó tên các toán tử bitwise. Các toán tử Bitwise Python chỉ làm việc trên các số nguyên và đầu ra cuối cùng được trả về ở định dạng thập phân. Các toán tử Bitwise Python còn được gọi là toán tử nhị phân.
Các nhà khai thác bitwise Python
Có 6 toán tử bitwise trong Python. Bảng dưới đây cung cấp chi tiết ngắn về chúng.
Không có giá trị | BitWise và toán tử | 10 & 7 = 2 |
BitWise hoặc toán tử | ||
^ | Toán tử XOR bitwise | 10 ^ 7 = 13 |
~ | BitWise những người điều khiển khen ngợi | ~ 10 = -11 |
> | Toán tử chuyển đổi bên phải | 10 >> 1 = 5 |
Hãy cùng xem xét các nhà khai thác này từng người một và hiểu cách chúng hoạt động.
1. Bitwise và toán tử
Python bitwise và toán tử trả về 1 nếu cả hai bit là 1, nếu không thì 0.
>>> 10&7
2
>>>
Python bitwise và toán tử2. Bitwise hoặc toán tử
Python bitwise hoặc toán tử trả về 1 nếu bất kỳ bit nào là 1. Nếu cả hai bit là 0, thì nó sẽ trả về 0.
>>> 10|7
15
>>>
Python bitwise hoặc toán tử3. Toán tử XOR bitwise
Toán tử XOR Python bitwise trả về 1 nếu một trong các bit là 0 và bit còn lại là 1. Nếu cả hai bit là 0 hoặc 1, thì nó sẽ trả về 0.
>>> 10^7
13
>>>
Python BitWise XOR Toán tử4. Các nhà điều hành bổ sung bitwise
Python Ones bổ sung của một số ’A, bằng -[A+1].
>>> ~10
-11
>>> ~-10
9
>>>
Python bitwise Người vận hành bổ sung5. Toán tử thay đổi bitwise
Python bitwise toán tử chuyển đổi bên trái dịch chuyển các bit toán hạng bên trái về phía bên trái cho số lần đã cho trong toán hạng bên phải. Nói một cách đơn giản, số nhị phân được thêm vào với 0 ở cuối.
>>> 10 >>
Python BitWise Trình vận hành thay đổi bên trái6. Toán tử thay đổi BitWise
Toán tử chuyển đổi bên phải của Python hoàn toàn đối diện với toán tử dịch chuyển trái. Sau đó, các bit toán hạng bên trái được di chuyển về phía bên phải trong số lần đã cho. Nói một cách đơn giản, các bit bên phải được loại bỏ.
>>> 10 >> 2
2
>>>
Python BitWise Shift Toán tử thay đổiNgười vận hành BitWise quá tải Python
Python hỗ trợ quá tải toán tử. Có nhiều phương pháp khác nhau mà chúng tôi có thể thực hiện để hỗ trợ các toán tử bitwise cho các đối tượng tùy chỉnh của chúng tôi.
Không có giá trị | BitWise và toán tử |
^ | Toán tử XOR bitwise |
~ | BitWise những người điều khiển khen ngợi |
> | Toán tử chuyển đổi bên phải |
10 >> 1 = 5
class Data:
id = 0
def __init__[self, i]:
self.id = i
def __and__[self, other]:
print['Bitwise AND operator overloaded']
if isinstance[other, Data]:
return Data[self.id & other.id]
else:
raise ValueError['Argument must be object of Data']
def __or__[self, other]:
print['Bitwise OR operator overloaded']
if isinstance[other, Data]:
return Data[self.id | other.id]
else:
raise ValueError['Argument must be object of Data']
def __xor__[self, other]:
print['Bitwise XOR operator overloaded']
if isinstance[other, Data]:
return Data[self.id ^ other.id]
else:
raise ValueError['Argument must be object of Data']
def __lshift__[self, other]:
print['Bitwise Left Shift operator overloaded']
if isinstance[other, int]:
return Data[self.id > other]
else:
raise ValueError['Argument must be integer']
def __invert__[self]:
print['Bitwise Ones Complement operator overloaded']
return Data[~self.id]
def __str__[self]:
return f'Data[{self.id}]'
d1 = Data[10]
d2 = Data[7]
print[f'd1&d2 = {d1&d2}']
print[f'd1|d2 = {d1|d2}']
print[f'd1^d2 = {d1^d2}']
print[f'd12}']
print[f'~d1 = {~d1}']
Output:
Bitwise AND operator overloaded
d1&d2 = Data[2]
Bitwise OR operator overloaded
d1|d2 = Data[15]
Bitwise XOR operator overloaded
d1^d2 = Data[13]
Bitwise Left Shift operator overloaded
d12 = Data[2]
Bitwise Ones Complement operator overloaded
~d1 = Data[-11]
Hãy cùng xem xét các nhà khai thác này từng người một và hiểu cách chúng hoạt động.
1. Bitwise và toán tử
Python bitwise và toán tử trả về 1 nếu cả hai bit là 1, nếu không thì 0.