Hướng dẫn how do you shift a number to the right in python? - làm cách nào để chuyển một số sang phải trong python?

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.

Toán tử bitwiseSự mô tảVí dụ đơn giản
Không có giá trịBitWise và toán tử10 & 7 = 2
BitWise hoặc toán tử
^Toán tử XOR bitwise10 ^ 7 = 13
~BitWise những người điều khiển khen ngợi~ 10 = -11
<Toán tử thay đổi bên trái bitwise10
>>Toán tử chuyển đổi bên phải10 >> 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ử
Hướng dẫn how do you shift a number to the right in python? - làm cách nào để chuyển một số sang phải trong python?
Python Bitwise And Operator

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ử
Hướng dẫn how do you shift a number to the right in python? - làm cách nào để chuyển một số sang phải trong python?
Python Bitwise Or Operator

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ử
Hướng dẫn how do you shift a number to the right in python? - làm cách nào để chuyển một số sang phải trong python?
Python Bitwise XOR Operator

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ổ sung
Hướng dẫn how do you shift a number to the right in python? - làm cách nào để chuyển một số sang phải trong python?
Python Bitwise Ones Complement Operator

5. 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 << 2
40
>>> 
Python BitWise Trình vận hành thay đổi bên trái
Hướng dẫn how do you shift a number to the right in python? - làm cách nào để chuyển một số sang phải trong python?
Python Bitwise Left Shift Operator

6. 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 đổi
Hướng dẫn how do you shift a number to the right in python? - làm cách nào để chuyển một số sang phải trong python?
Python Bitwise Right Shift Operator

Ngườ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.

Toán tử bitwisePhương pháp để thực hiện
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ử thay đổi bên trái bitwise
>>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 __rshift__(self, other):
        print('Bitwise Right 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'd1<<2 = {d1<<2}')
print(f'd1>>2 = {d1>>2}')
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
d1<<2 = Data[40]
Bitwise Right Shift operator overloaded
d1>>2 = 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.

Làm thế nào để bạn thay đổi một số phải không?

Khi thay đổi đúng với sự thay đổi bên phải logic, bit ít có ý nghĩa nhất bị mất và 0 được chèn vào đầu kia.Đối với các số dương, một ca bên phải logic duy nhất chia một số cho 2, ném ra bất kỳ phần còn lại.the least-significant bit is lost and a 0 is inserted on the other end. For positive numbers, a single logical right shift divides a number by 2, throwing out any remainders.

Sự thay đổi đúng đắn trong Python là gì?

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ỏ.exactly the opposite of the left shift operator. Then left side operand bits are moved towards the right side for the given number of times. In simple terms, the right side bits are removed.

Làm thế nào để bạn chuyển một số sang bên trái trong Python?

Toán tử dịch chuyển bên trái Bitwise x x << n shifts the binary representation of integer x by n positions to the left. For a positive integer, it inserts a 0 bit on the right and shifts all remaining bits by one position to the left.

Toán tử thay đổi là gì?

Bên phải dịch chuyển toán tử dịch bên phải làm cho mẫu bit trong biểu hiện dịch chuyển được dịch chuyển sang bên phải bởi số lượng vị trí được chỉ định bởi biểu hiện phụ gia.Đối với các số không dấu, các vị trí bit đã bị bỏ trống bởi hoạt động thay đổi là không đầy.causes the bit pattern in shift-expression to be shifted to the right by the number of positions specified by additive-expression . For unsigned numbers, the bit positions that have been vacated by the shift operation are zero-filled.