Đã ký thay đổi bên phải trong python

Trong Python >> được gọi là toán tử dịch chuyển phải. Nó là một toán tử bitwise. Nó yêu cầu một đại diện bitwise của đối tượng như toán hạng đầu tiên. Các bit được dịch sang phải theo số bit được quy định bởi toán hạng thứ hai. Các bit dẫn đầu về phía bên trái do dịch chuyển được đặt thành 0

>>> bin(a)     #binary equivalent 0110 0100
'0b1100100'
>>> b=a>>2     #binary equivalent 0001 1101
>>> b
25
>>> bin(b)
'0b11001'

Đã ký thay đổi bên phải trong python


Đã ký thay đổi bên phải trong python

Toán tử được sử dụng để thực hiện các thao tác trên các giá trị và biến. Đây là những ký hiệu đặc biệt thực hiện các phép tính số học và logic. Giá trị mà toán tử thao tác được gọi là Toán hạng.  

Mục lục.  

  •  
  •  

Toán tử bitwise

Trong Python, toán tử bitwise được sử dụng để thực hiện phép tính bitwise trên số nguyên. Đầu tiên, các số nguyên được chuyển đổi thành nhị phân và sau đó các phép toán được thực hiện trên từng bit hoặc cặp bit tương ứng, do đó có tên là toán tử theo bit. Kết quả sau đó được trả về ở định dạng thập phân

Ghi chú. Toán tử bitwise Python chỉ hoạt động trên số nguyên

MÔ TẢ HOẠT ĐỘNG CÚ PHÁP Bitwise AND x & y. Bitwise ORx. y~Bitwise NOT~x^Bitwise XORx ^ y>>Bitwise right shiftx>><Hãy hiểu từng toán tử một

Toán tử AND theo bit Trả về 1 nếu cả hai bit là 1 khác 0

Thí dụ.  

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

Thí dụ

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

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

Bitwise không toán tử. Trả về phần bù của một số

Thí dụ

a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11

Toán tử bitwise xor. Trả về 1 nếu một trong các bit là 1 và bit kia là 0 khác trả về false

Thí dụ

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

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

Python3




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)
0

 

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)
3

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)
2
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)
9
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
0
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
1

 

a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
2

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)
9
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
5
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
6

 

a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
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)
9
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)
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)
8
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
9
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

đầu ra.  

a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
2

Người vận hành ca

Các toán tử này được sử dụng để dịch chuyển các bit của một số sang trái hoặc sang phải do đó nhân hoặc chia số đó cho hai lần tương ứng. Chúng có thể được sử dụng khi chúng ta phải nhân hoặc chia một số cho hai.
Dịch chuyển sang phải theo bit. Kết quả là dịch chuyển các bit của số sang bên phải và điền 0 vào các khoảng trống bên trái (điền 1 trong trường hợp số âm). Hiệu ứng tương tự như khi chia một số với một lũy thừa của hai.
Ví dụ.

a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
3

Dịch chuyển trái theo chiều bit. Dịch chuyển các bit của số sang bên trái và kết quả là điền 0 vào các khoảng trống bên phải. Hiệu ứng tương tự như khi nhân một số với một lũy thừa của hai.
Ví dụ.

a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
4

Python3




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)
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)
3

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)
2
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
24
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

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

 

a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
26

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)
9
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
29
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
30
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
31
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
32

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)
9
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
35
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
36
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
31
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
32

 

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) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
41

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)
2
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
24
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

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

 

a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
46

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)
9
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
49
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
70
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
31
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
32

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)
9
a = 10 = 1010 (Binary)
b = 4 =  0100 (Binary)

a | b = 1010
         |
        0100
      = 1110
      = 14 (Decimal)
75______676
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
31
a = 10 = 1010 (Binary) 
              ~a is basically 1's complement of a 
~a = 1101      //1111 1101
      
      1010     // 0000 1010
        +1   (2's complement of a )
 -----------
  =  1011     // 1111 1011 
 -----------
  =     -11
32

đầu ra.  

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

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

Quá tải toán tử Bitwise

Quá tải toán tử có nghĩa là đưa ra ý nghĩa mở rộng ngoài ý nghĩa hoạt động được xác định trước của chúng. Ví dụ: toán tử + được sử dụng để cộng hai số nguyên cũng như nối hai chuỗi và hợp nhất hai danh sách. Có thể đạt được vì toán tử '+' bị quá tải bởi lớp int và lớp str. Bạn có thể nhận thấy rằng cùng một toán tử hoặc hàm tích hợp sẵn hiển thị các hành vi khác nhau cho các đối tượng thuộc các lớp khác nhau, điều này được gọi là Nạp chồng toán tử

Thế nào là ký đúng ca?

Toán tử dịch phải ( >> ) trả về số có dấu được biểu thị bằng kết quả thực hiện phép dịch mở rộng có dấu của biểu diễn nhị phân của toán hạng đầu tiên (được đánh giá là chuỗi bit bù hai) sang phải theo số bit, modulo

>> và < trong Python là gì?