Hoạt động bitwise Python trên byte

Python cung cấp các toán tử theo bit,

print[x | y]
print[bin[x | y]]
# 11
# 0b1011
9[AND],
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
0[OR],
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
0[XOR],
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
1[NOT, đảo ngược],
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
2[SHIFT TRÁI],
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
3[SHIFT PHẢI]

Bài viết này mô tả các nội dung sau

  • Bitwise AND.
    print[x | y]
    print[bin[x | y]]
    # 11
    # 0b1011
    
    9
  • Bitwise HOẶC.
    print[x | y]
    print[bin[x | y]]
    # 11
    # 0b1011
    
    0
  • Bitwise XOR.
    print[x | y]
    print[bin[x | y]]
    # 11
    # 0b1011
    
    0
  • Hoạt động bitwise với số nguyên âm
  • Bitwise KHÔNG, đảo ngược.
    print[x | y]
    print[bin[x | y]]
    # 11
    # 0b1011
    
    1
  • Dịch chuyển bit.
    print[x | y]
    print[bin[x | y]]
    # 11
    # 0b1011
    
    2,
    print[x | y]
    print[bin[x | y]]
    # 11
    # 0b1011
    
    3

Để biết thêm thông tin về cách chuyển đổi các số và chuỗi nhị phân, bát phân và thập lục phân bằng cách sử dụng

print[x ^ y]
print[bin[x ^ y]]
# 3
# 0b11
0,
print[x ^ y]
print[bin[x ^ y]]
# 3
# 0b11
1,
print[x ^ y]
print[bin[x ^ y]]
# 3
# 0b11
2 và
print[x ^ y]
print[bin[x ^ y]]
# 3
# 0b11
3, hãy xem các bài viết sau

  • Chuyển đổi nhị phân, bát phân, thập phân và thập lục phân trong Python

Xem bài viết sau về cách đếm số lượng

print[x ^ y]
print[bin[x ^ y]]
# 3
# 0b11
4 trong biểu diễn nhị phân cho số nguyên
print[x ^ y]
print[bin[x ^ y]]
# 3
# 0b11
5

  • Đếm số bit 1 trong python [int. bit_count]

Đối với phép toán Boolean trên loại

print[x ^ y]
print[bin[x ^ y]]
# 3
# 0b11
6 [
print[x ^ y]
print[bin[x ^ y]]
# 3
# 0b11
7,
print[x ^ y]
print[bin[x ^ y]]
# 3
# 0b11
8] thay vì phép toán theo bit, hãy xem bài viết sau. Sử dụng
print[x ^ y]
print[bin[x ^ y]]
# 3
# 0b11
9 và
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
80 thay vì
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
9 và
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
0

  • Toán tử Boolean trong Python [and, or, not]

Liên kết được tài trợ

Bitwise AND.
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
9

Bitwise AND với toán tử

print[x | y]
print[bin[x | y]]
# 11
# 0b1011
9

print[x | y]
print[bin[x | y]]
# 11
# 0b1011
9

nguồn. and_or_bit. py

Bitwise HOẶC.
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
0

Bitwise OR với toán tử

print[x | y]
print[bin[x | y]]
# 11
# 0b1011
0

print[x | y]
print[bin[x | y]]
# 11
# 0b1011

nguồn. and_or_bit. py

Bitwise XOR.
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
0

Bitwise XOR với toán tử

print[x | y]
print[bin[x | y]]
# 11
# 0b1011
0

________số 8

nguồn. and_or_bit. py

Đầu vào và đầu ra cho từng bit của AND, OR và XOR như sau

Đầu vào 1 Đầu vào 2 ANDORXOR11110100110101100000

Liên kết được tài trợ

Hoạt động bitwise với số nguyên âm

Các hoạt động bitwise trên số nguyên âm được xử lý như thể các giá trị được biểu thị bằng phần bù của hai

  • Phần bù của hai - Wikipedia

Tuy nhiên, lưu ý rằng nếu bạn chuyển đổi một số nguyên âm thành chuỗi nhị phân bằng cách sử dụng

print[x ^ y]
print[bin[x ^ y]]
# 3
# 0b11
0 hoặc
print[x ^ y]
print[bin[x ^ y]]
# 3
# 0b11
3, dấu trừ sẽ được sử dụng thay cho định dạng phần bù của hai

Nếu bạn muốn lấy một chuỗi được biểu diễn dưới dạng biểu diễn bù hai, hãy lấy theo chiều bit VÀ

print[x | y]
print[bin[x | y]]
# 11
# 0b1011
9 của số chữ số tối đa được yêu cầu, ví dụ:
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
62 [=
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
63] cho 4 bit,
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
64 cho 8 bit và
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
65 cho 16 bit

  • Chuyển đổi nhị phân, bát phân, thập phân và thập lục phân trong Python

print[x | y]
print[bin[x | y]]
# 11
# 0b1011
8

nguồn. and_or_bit. py

Bitwise KHÔNG, đảo ngược.
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
1

Toán tử

print[x | y]
print[bin[x | y]]
# 11
# 0b1011
1 mang lại phép nghịch đảo bit. Đảo ngược bitwise của
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
68 được định nghĩa là
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
69

  • 6. Biểu thức - Phép toán số học đơn nguyên và bitwise — Python 3. 9. 1 tài liệu

Nếu giá trị đầu vào

print[x | y]
print[bin[x | y]]
# 11
# 0b1011
68 được coi là phần bù của hai và tất cả các bit được đảo ngược, thì nó tương đương với
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
69

Chuyển đổi

print[x | y]
print[bin[x | y]]
# 11
# 0b1011
72 thành một chuỗi không dẫn đến một chuỗi có các bit của giá trị ban đầu bị đảo ngược

print[x | y]
print[bin[x | y]]
# 11
# 0b1011
6

nguồn. and_or_bit. py

Bằng cách thực hiện phép toán AND để tạo một chuỗi biểu diễn phần bù của hai chuỗi, bạn có thể thu được một chuỗi có đảo ngược các bit

Ví dụ: để lấy chuỗi đảo ngược bit gồm 4 chữ số, hãy chỉ định

print[x | y]
print[bin[x | y]]
# 11
# 0b1011
73 với
print[x ^ y]
print[bin[x ^ y]]
# 3
# 0b11
3 và đệm nó bằng số không

print[x | y]
print[bin[x | y]]
# 11
# 0b1011
7

nguồn. and_or_bit. py

Dịch chuyển bit.
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
2,
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
3

Dịch chuyển trái và dịch chuyển phải với người vận hành

print[x | y]
print[bin[x | y]]
# 11
# 0b1011
2,
print[x | y]
print[bin[x | y]]
# 11
# 0b1011
3

print[x | y]
print[bin[x | y]]
# 11
# 0b1011
6

nguồn. and_or_bit. py

Đối với các giá trị âm, bit dấu được mở rộng và dịch chuyển, các dấu dương và âm không thay đổi. Các giá trị âm được coi là có

print[x ^ y]
print[bin[x ^ y]]
# 3
# 0b11
4 vô hạn ở phía bên trái

print[x | y]
print[bin[x | y]]
# 11
# 0b1011
8

nguồn. and_or_bit. py

Thật khó hiểu nếu bạn coi nó như một giá trị số, vì vậy tốt hơn là coi nó như một chuỗi bù hai

< có nghĩa là gì Python?

Chủ Đề