Hướng dẫn dùng python bits python

Trong Hướng dẫn về Toán tử Bitwise Python này, chúng ta sẽ thảo luận về Các toán tử Bitwise AND, OR, XOR, Left-shift, Right-shift và 1 bổ sung của Python trong Lập trình Python.

Cùng với điều này, chúng ta sẽ thảo luận về cú pháp và các ví dụ về các toán tử Bitwise trong Python.

Các bài viết liên quan:

  • Toán tử Bitwise NumPy
  • Thế nào là hệ thống số nhị phân
  • Địa chỉ nhị phân của bộ nhớ máy tính trong hệ điều hành
  • Cây nhị phân và tìm kiếm cây nhị phân
  • So sánh ngôn ngữ Python và Java- ưu và nhược điểm

Vì vậy, hãy bắt đầu Hướng dẫn các toán tử Bitwise Python.

Các toán tử Bitwise trong Python với Cú pháp và Ví dụ

Tóm tắt nội dung

  • Toán tử Bitwise Python là gì?
    • Toán tử Bitwise AND (&) trong Python
    • Toán tử Python Bitwise OR (|)
    • Toán tử Python Bitwise XOR (^)
    • Sự bổ sung của Python Bitwise 1 (~)
    • Toán tử Shift Left-Shift trong Python (<<)
    • Toán tử Shift Right-Shift trong Python (>>)
    • Câu hỏi phỏng vấn Python về các toán tử Bitwise
  • Sự kết luận

Toán tử Bitwise Python là gì?

Các toán tử Bitwise trong Python nhận một đến hai toán hạng và hoạt động trên đó / chúng từng chút một, thay vì toàn bộ.

Để lấy một ví dụ, chúng ta hãy xem các toán tử ‘và’ và ‘&’ cho điều tương tự.

Hãy lấy hai số – 5 và 7. Chúng tôi sẽ cho bạn thấy các giá trị tương đương nhị phân của chúng bằng cách sử dụng hàm bin ().

>>> bin(5)

Đầu ra

‘0b101’

>>> bin(7)

Đầu ra:

‘0b111’

Bây giờ hãy thử áp dụng ‘và’ và ‘&’ cho 5 và 7.

>>> 5 and 7

Đầu ra

7

>>> 5 & 7

Đầu ra

5

Bạn có thể mong đợi chúng sẽ trả lại điều tương tự, nhưng chúng không giống nhau. Một hành động trên toàn bộ giá trị và một hành động trên từng bit cùng một lúc.

Trên thực tế, ‘và’ nhìn thấy giá trị ở bên trái. Nếu nó có giá trị True Boolean, nó trả về bất kỳ giá trị nào ở bên phải.

Nếu không, nó trả về False. Vì vậy, ở đây, 5 và 7 giống với True và 7. Do đó, nó trả về 7.

Tuy nhiên, 5 & 7 giống với 101 & 111. Kết quả là 101, là nhị phân cho 5. Chúng ta hãy xem xét từng toán tử này từng chút một (dự định chơi chữ).

Hãy tiếp tục với Toán tử Bitwise Python tiếp theo

Toán tử Bitwise AND (&) trong Python

1 có giá trị Boolean là True và 0 có giá trị là False. Hãy xem đoạn mã sau.

>>> True / 2

Đầu ra

0,5

>>> False * 2

Đầu ra

0

Điều này chứng tỏ điều gì đó. Bây giờ, nhị phân và (&) nhận hai giá trị và thực hiện một AND-ing trên mỗi cặp bit.

Hãy lấy một ví dụ.

>>> 4 & 8

Nhị phân cho 4 là 0100 và 8 là 1000. Vì vậy, khi chúng ta VÀ các bit tương ứng, nó cho chúng ta 0000, là nhị phân cho 0. Do đó, đầu ra.

Sau đây là các giá trị khi & -ing 0 và 1.

Toán tử Bitwise trong Python – Toán tử AND

0 & 000 & 101 & 001 & 11

Như bạn có thể thấy, & -ing chỉ trả về 1 nếu cả hai bit đều là 1.

Tuy nhiên, bạn không thể & chuỗi.

>>> '$' & '%'

Đầu ra

Hướng dẫn dùng python bits python

Vì các giá trị Boolean True và False có các giá trị nguyên tương đương là 1 và 0, chúng ta có thể & chúng.

>>> False&True

Đầu ra

Hướng dẫn dùng python bits python

>>> True & True

Hãy thử một vài cách kết hợp nữa.

>>> bin(7)
0

Đầu ra

Hướng dẫn dùng python bits python

>>> bin(7)
1

Đầu ra

Hướng dẫn dùng python bits python

Bạn cũng có thể nhập trực tiếp các số của mình dưới dạng nhị phân, như chúng ta đã thảo luận trong phần 6a trong hướng dẫn Số Python của chúng tôi.

>>> bin(7)
2

Đầu ra

Hướng dẫn dùng python bits python

Ở đây, 110 là nhị phân cho 6 và 101 cho 5. & -ing chúng, chúng ta nhận được 100, là nhị phân cho 4.

Toán tử Python Bitwise OR (|)

Bây giờ chúng ta hãy thảo luận về toán tử Python Bitwise OR (|)

So với &, cái này trả về 1 ngay cả khi một trong hai bit tương ứng từ hai toán hạng là 1.

Toán tử Bitwise trong Python – Toán tử HOẶC

0 | 000 | 111 | 011 | 11

>>> bin(7)
3

Đầu ra

7

Điều này cũng giống như sau.

>>> bin(7)
4

Đầu ra

7

Hãy xem thêm một số ví dụ.

>>> bin(7)
5

Đầu ra

True

Hãy chuyển sang một Toán tử Bitwise Python khác

Toán tử Python Bitwise XOR (^)

XOR (eXclusive OR) trả về 1 nếu một toán hạng là 0 và toán hạng khác là 1. Ngược lại, nó trả về 0.

Toán tử Bitwise trong Python – Toán tử XOR

0 ^ 000 ^ 111 ^ 011 ^ 10

Hãy lấy một vài ví dụ.

>>> bin(7)
6

Ở đây, điều này giống với 0b110 ^ 0b110. Điều này dẫn đến 0b000, là nhị phân cho 0.

>>> bin(7)
7

Đầu ra

6

Điều này tương đương với 0b110 ^ 0b000, cho chúng ta 0b110. Đây là nhị phân cho 6.

>>> bin(7)
8

Đầu ra

5

Ở đây, 0b110 ^ 0b011 cho chúng ta 0b101, là nhị phân cho 5.

Bây giờ chúng ta hãy thảo luận về Sự bổ sung của Bitwise 1 (~)

Xem thêm Các thuộc tính của phép toán nhị phân

Sự bổ sung của Python Bitwise 1 (~)

Điều này hơi khác so với những gì chúng tôi đã nghiên cứu cho đến nay. Toán tử này nhận nhị phân của một số và trả về phần bù của nó.

Đối với điều này, nó lật các bit cho đến khi nó đạt đến số 0 đầu tiên từ bên phải. ~ x giống với -x-1.

>>> bin(7)
9

Đầu ra

-3

>>> 5 and 7
0

Đầu ra

‘0b10’

>>> 5 and 7
1

Đầu ra

‘-0b11’

Để làm rõ hơn, chúng tôi đề cập đến các giá trị nhị phân của cả hai. Một ví dụ khác sau đây.

>>> 5 and 7
2

Đầu ra

-46

>>> 5 and 7
3

Đầu ra

‘0b101101’

>>> 5 and 7
4

Đầu ra

‘-0b101110’

Toán tử Shift Left-Shift trong Python (<<)

Cuối cùng, chúng ta đến các toán tử dịch trái và dịch phải. Toán tử dịch trái dịch chuyển các bit của số theo số vị trí được chỉ định.

Điều này có nghĩa là nó sẽ thêm số 0 vào những nơi trống ít quan trọng nhất bây giờ. Hãy bắt đầu với một ví dụ bất thường.

>>> 5 and 7
5

Đầu ra

4

Ở đây, True có giá trị nguyên tương đương là 1. Nếu chúng ta chuyển nó sang trái hai vị trí, chúng ta nhận được 100. Đây là nhị phân cho 4.

Bây giờ chúng ta hãy làm điều đó trên số nguyên.

>>> 5 and 7
6

Đầu ra

4

10 dịch chuyển qua một nơi sang trái cho chúng ta 100, một lần nữa, 4.

>>> 5 and 7
7

Đầu ra

12

Bây giờ, 11 được dịch chuyển sang trái bởi hai vị trí cho chúng ta 1100, là số nhị phân cho 12.

Bây giờ chúng ta hãy chuyển sang Toán tử Bitwise tiếp theo của Python

Toán tử Shift Right-Shift trong Python (>>)

Bây giờ chúng ta sẽ thấy điều tương tự đối với dịch chuyển sang phải. Nó dịch chuyển các bit sang bên phải theo số vị trí được chỉ định.

Điều này có nghĩa là nhiều bit đó đã bị mất ngay bây giờ.

>>> 5 and 7
8

Đầu ra

1

3 có giá trị nhị phân là 11, chuyển một chỗ sang bên phải trả về 1. Nhưng trước khi kết thúc phần hướng dẫn này, chúng ta sẽ lấy một ví dụ cuối cùng.

Hãy kiểm tra xem giá trị thập phân của 11111 là bao nhiêu.

>>> 5 and 7
9

Đầu ra

31

Bây giờ, hãy chuyển nó sang bên phải ba nơi.

>>> 5 & 7
0

Đầu ra

3

Như bạn có thể thấy, nó cho chúng ta 3, với số nhị phân là 11. Có lý, phải không?

Đây là tất cả về các toán tử Bitwise Python.

Câu hỏi phỏng vấn Python về các toán tử Bitwise

  1. Mục đích của Toán tử Bitwise Python là gì?
  2. Giải thích toán tử Bitwise trong Python với một ví dụ?
  3. Các toán tử Bitwise Python có nhanh hơn không?
  4. Bitwise Not Operator là gì?
  5. Các toán tử Bitwise Python được sử dụng ở đâu?

Sự kết luận

Mặc dù chúng không quá phổ biến trong lập trình thế giới thực, nhưng các toán tử Python Bitwise lại được sử dụng ở những nơi như mã hóa, nén và thao tác byte.