Hướng dẫn left shift and right shift in python - dịch chuyển trái và chuyển phải trong python

Các toán tử được sử dụng để thực hiện các hoạt động trên các giá trị và biến. Đây là những biểu tượng đặc biệt thực hiện các tính toán số học và logic. Giá trị mà người vận hành hoạt động được gọi là toán hạng. & NBSP;

Bảng nội dung: & nbsp; 

  • Toán tử bitwise: & nbsp;
    • BitWise và toán tử
    • BitWise hoặc toán tử
    • BitWise không phải nhà điều hành
    • Toán tử XOR bitwise
  • Toán tử thay đổi: & nbsp;
    • BitWise phải thay đổi
    • Bitwise trái thay đổi
  • Quá tải toán tử bitwise

Các nhà khai thác bitwise

Trong Python, các toán tử bitwise đượ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 trước tiên được chuyển đổi thành nhị phân và sau đó các hoạt động được thực hiện theo từng bit, do đó tên các toán tử bitwise. Sau đó kết quả được trả về ở định dạng thập phân.

Lưu ý: Các nhà khai thác Python bitwise chỉ làm việc trên các số nguyên. Python bitwise operators work only on integers.

NHÀ ĐIỀU HÀNHSỰ MÔ TẢCú pháp
Không có giá trịBitwise vàX & Y.
|Bitwise hoặcx | y
~Bit whole không~ x
^BitWise XORx ^ y
>>BitWise phải thay đổix >>
<Bitwise trái thay đổix <

Hãy cùng hiểu từng người vận hành từng người một và toán tử: Trả về 1 nếu cả hai bit là 1 khác 0. mẫu: & nbsp;
Bitwise AND operator: Returns 1 if both the bits are 1 else 0.
Example: 

a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a & b = 1010
         &
        0100
      = 0000
      = 0 (Decimal)

BitWise hoặc toán tử: Trả về 1 nếu một trong hai bit là 1 khác 0. mẫu: Returns 1 if either of the bit is 1 else 0.
Example:

a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)

BitWise Not Toán tử: Trả về một bổ sung của số. Ví dụ: Ví dụ: Returns one’s complement of the number.
Example:

a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)

Toán tử BitWise XOR: Trả về 1 nếu một trong các bit là 1 và cái còn lại là 0 khác trả về false.example: Returns 1 if one of the bits is 1 and the other is 0 else returns false.
Example:

a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a ^ b = 1010
         ^
        0100
      = 1110
      = 14 (Decimal)

Python3

a ____10

a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
1

a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
2
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
0
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
4

a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
5
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
6
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
7
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
8

a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
5
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
6
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
1
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
2

a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
5
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
6
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
5
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
6

a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
5
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
6
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
9
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a ^ b = 1010
         ^
        0100
      = 1110
      = 14 (Decimal)
0

Output:  

a & b = 0
a | b = 14
~a = -11
a ^ b = 14

Người vận hành thay đổi

Các toán tử này được sử dụng để thay đổi các bit của một số bên trái hoặc phải do đó nhân hoặc chia số cho hai tương ứng. Chúng có thể được sử dụng khi chúng ta phải nhân hoặc chia số cho hai. & Nbsp; BitWise Shift Shift: chuyển các bit của số sang phải và điền 0 trên các khoảng trống bên trái (điền 1 trong trường hợp số âm) kết quả. Hiệu ứng tương tự khi chia số với một số sức mạnh của hai.example: & nbsp;
Bitwise right shift: Shifts the bits of the number to the right and fills 0 on voids left( fills 1 in the case of a negative number) as a result. Similar effect as of dividing the number with some power of two.
Example: 

Example 1:
a = 10 = 0000 1010 (Binary)
a >> 1 = 0000 0101 = 5

Example 2:
a = -10 = 1111 0110 (Binary)
a >> 1 = 1111 1011 = -5 

Bitwise bên trái Shift: Chuyển các bit của số sang trái và điền 0 trên các khoảng trống bên phải. Hiệu ứng tương tự như nhân số số với một số sức mạnh của hai.example: & nbsp; Shifts the bits of the number to the left and fills 0 on voids right as a result. Similar effect as of multiplying the number with some power of two.
Example: 

Example 1:
a = 5 = 0000 0101 (Binary)
a << 1 = 0000 1010 = 10
a << 2 = 0001 0100 = 20 

Example 2:
b = -10 = 1111 0110 (Binary)
b << 1 = 1110 1100 = -20
b << 2 = 1101 1000 = -40 

Python3

a ____10

a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
1

a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
2
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
0
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
4

a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
5
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
6
a & b = 0
a | b = 14
~a = -11
a ^ b = 14
0
a & b = 0
a | b = 14
~a = -11
a ^ b = 14
1
a & b = 0
a | b = 14
~a = -11
a ^ b = 14
2
a & b = 0
a | b = 14
~a = -11
a ^ b = 14
3

a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
5
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
6
a & b = 0
a | b = 14
~a = -11
a ^ b = 14
6
a & b = 0
a | b = 14
~a = -11
a ^ b = 14
7
a & b = 0
a | b = 14
~a = -11
a ^ b = 14
2
a & b = 0
a | b = 14
~a = -11
a ^ b = 14
3

Người vận hành thay đổi

a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
2
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
0
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
4

Người vận hành thay đổi

a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
5
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
6
Example 1:
a = 5 = 0000 0101 (Binary)
a << 1 = 0000 1010 = 10
a << 2 = 0001 0100 = 20 

Example 2:
b = -10 = 1111 0110 (Binary)
b << 1 = 1110 1100 = -20
b << 2 = 1101 1000 = -40 
5
Example 1:
a = 5 = 0000 0101 (Binary)
a << 1 = 0000 1010 = 10
a << 2 = 0001 0100 = 20 

Example 2:
b = -10 = 1111 0110 (Binary)
b << 1 = 1110 1100 = -20
b << 2 = 1101 1000 = -40 
6
a & b = 0
a | b = 14
~a = -11
a ^ b = 14
2
a & b = 0
a | b = 14
~a = -11
a ^ b = 14
3

Output:  

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20

Quá tải toán tử bitwise

Các nhà khai thác bitwiseOperator Overloading.
Below is a simple example of Bitwise operator overloading.

Python3

Trong Python, các toán tử bitwise đượ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 trước tiên được chuyển đổi thành nhị phân và sau đó các hoạt động được thực hiện theo từng bit, do đó tên các toán tử bitwise. Sau đó kết quả được trả về ở định dạng thập phân.

Lưu ý: Các nhà khai thác Python bitwise chỉ làm việc trên các số nguyên.

NHÀ ĐIỀU HÀNH

SỰ MÔ TẢ

Cú pháp

Không có giá trị

Bitwise và

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
6
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
00
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
01

X & Y.

|

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
6
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
5
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
6
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
15
a & b = 0
a | b = 14
~a = -11
a ^ b = 14
3

Không có giá trị

Bitwise và

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
6
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
00
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
01

X & Y.

|

Bitwise hoặc

Không có giá trị

Bitwise và

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
6
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
00
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
01

X & Y.

|

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
6
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
5
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
6
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
67
a & b = 0
a | b = 14
~a = -11
a ^ b = 14
3

Không có giá trị

Bitwise và

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
6
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
00
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
01

X & Y.

|

Bitwise hoặc

Không có giá trị

Bitwise và

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
6
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
00
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
01

a 5

a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
03
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
04
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
05
a & b = 0
a | b = 14
~a = -11
a ^ b = 14
3

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
1
a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
2
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
13
a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
4
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
15

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
6
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
5
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
6
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
19
a & b = 0
a | b = 14
~a = -11
a ^ b = 14
3

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
6a 6
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
23
a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
4
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
25

a 2

a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
27
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
01010
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
30
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
01

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
1a ____10
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
35
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
1
a & b = 0
a | b = 14
~a = -11
a ^ b = 14
3

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
1
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
2
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
0
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
35
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
42
a & b = 0
a | b = 14
~a = -11
a ^ b = 14
3

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
1
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
5
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
46

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
1
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
5
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
49

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
1
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
5
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
52

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
1
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
5
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
55

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
1
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
5
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
58

a >> 1 = 5
b >> 1 = -5
a << 1 = 10
b << 1 = -20
1
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
5
a = 10 = 1010 (Binary)

~a = ~1010
   = -(1010 + 1)
   = -(1011)
   = -11 (Decimal)
61

Output:  

And operator overloaded
8
Or operator overloaded
14
Xor operator overloaded
8
lshift operator overloaded
40960
rshift operator overloaded
8
Invert operator overloaded
-11

Lưu ý: Để biết thêm về quá tải người vận hành bấm vào đây. To know more about operator overloading click here.


Sự thay đổi còn lại và sự thay đổi phải 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ỏ.right shift operator is 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.

Việc sử dụng >> trong Python là gì?

Toán tử so sánh.

Toán tử thay đổi trái và phải là gì?

Các toán tử dịch chuyển bitwise là toán tử dịch chuyển bên phải (>>), di chuyển các bit của biểu thức loại số nguyên hoặc bảng liệt kê sang phải và toán tử dịch chuyển bên trái (<), di chuyển các bit sang bên tráiright-shift operator ( >> ), which moves the bits of an integer or enumeration type expression to the right, and the left-shift operator ( << ), which moves the bits to the left.

Làm thế nào để bạn thực hiện một sự thay đổi đúng đắn trong Python?

Toán tử dịch chuyển bên phải Python bitwise x >> n làm thay đổi biểu diễn nhị phân của số nguyên x bằng các vị trí n sang phải.Nó chèn một bit 0 ở bên trái và loại bỏ bit bên phải nhất.x >> n shifts the binary representation of integer x by n positions to the right. It inserts a 0 bit on the left and removes the right-most bit.