Chuỗi mã nhị phân trong python

Trong bài viết này, chúng tôi kiểm tra xem một chuỗi đã cho có các ký tự chỉ là 1 hoặc 0 hay không. Chúng tôi gọi các chuỗi như vậy là chuỗi nhị phân. Nếu nó có bất kỳ chữ số nào khác như 2 hoặc 3, v.v. , chúng tôi phân loại nó là một chuỗi không nhị phân

với bộ

Toán tử set trong python chỉ lưu trữ các phần tử duy nhất. Vì vậy, chúng tôi lấy một chuỗi và áp dụng hàm thiết lập cho nó. Sau đó, chúng tôi tạo một tập hợp khác chỉ có 0 và 1 là các phần tử của nó. Nếu cả hai bộ này bằng nhau thì chuỗi chắc chắn là nhị phân. Ngoài ra, chuỗi có thể chỉ có 1 hoặc chỉ 0. Vì vậy, chúng tôi tạo một điều kiện hoặc cũng sẽ so sánh kết quả của toán tử set chỉ với 0 hoặc chỉ với 1

Thí dụ

Bản thử trực tiếp

stringA = '0110101010111'
b = {'0','1'}
t = set[stringA]

if b == t or t == {'0'} or t == {'1'}:
print["StringA is a binary string."]
else:
print["StringA is not a binary string."]

stringB = '0120101010111'
u = set[stringB]

if b == u or u == {'0'} or u == {'1'}:
print["StringB is a binary string."]
else:
print["StringB is not a binary string."]

đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

StringA is a binary string.
StringB is not a binary string.

Với phép lặp đơn giản

Đầu tiên chúng ta có thể khai báo một chuỗi có giá trị là 01 hoặc 10. Sau đó so sánh các ký tự của chuỗi này với các ký tự của chuỗi đã cho. Nếu

Thí dụ. Khi bạn chuyển đổi một chuỗi thành nhị phân, nó sẽ dẫn đến một danh sách bao gồm các giá trị nhị phân đại diện cho các ký tự gốc của chuỗi đã cho hoặc nó đại diện cho toàn bộ giá trị nhị phân đại diện cho toàn bộ chuỗi.  

Input:
given_string = "xyz"

Expected output:
['0b1111000', '0b1111001', '0b1111010']
or
1111000 1111001 1111010

Hãy đi sâu vào nhiều cách tiếp cận sẽ giúp chúng ta có được đầu ra cần thiết. Chúng tôi sẽ đi sâu vào từng chức năng được sử dụng để giải quyết câu hỏi quan trọng về nhiệm vụ. Do đó, không chậm trễ hơn nữa, hãy để các trò chơi bắt đầu

Hướng dẫn qua video

Làm cách nào để chuyển đổi một chuỗi thành nhị phân trong Python?


Xem video này trên YouTube

Đọc liên quan. Chuyển đổi byte thành chuỗi

Phương pháp 1. Sử dụng bytearray + bin

Cách tiếp cận

  • Chuyển đổi chuỗi đã cho thành đối tượng bytearray bằng cách gọi
    word = "xyz"
    # convert string to bytearray
    byte_arr = bytearray[word, 'utf-8']
    res = []
    for byte in byte_arr:
        binary_rep = bin[byte]  # convert to binary representation
        res.append[binary_rep]  # add to list
    print[res]
    3. Đối tượng bytearray đại diện cho các ký tự chuỗi dưới dạng byte
  • Sử dụng vòng lặp for để lặp qua từng byte và sử dụng phương thức
    word = "xyz"
    # convert string to bytearray
    byte_arr = bytearray[word, 'utf-8']
    res = []
    for byte in byte_arr:
        binary_rep = bin[byte]  # convert to binary representation
        res.append[binary_rep]  # add to list
    print[res]
    4 trên từng byte để chuyển đổi nó thành biểu diễn nhị phân của nó
  • Nối các biểu diễn nhị phân kết quả trong một danh sách khác

mã số

word = "xyz"
# convert string to bytearray
byte_arr = bytearray[word, 'utf-8']
res = []
for byte in byte_arr:
    binary_rep = bin[byte]  # convert to binary representation
    res.append[binary_rep]  # add to list
print[res]

đầu ra

['0b1111000', '0b1111001', '0b1111010']

🔋Xóa Tiền tố “0b”

Phương pháp trên dẫn đến việc tạo ra các giá trị nhị phân với tiền tố “0b“, cho biết rằng đó là một số được biểu thị trong hệ nhị phân chứ không phải hệ thập phân. Vì bạn đã biết rằng đầu ra là một số nhị phân, do đó, bạn có thể loại bỏ tiền tố bằng cách cắt số nhị phân và bắt đầu với chỉ số 2 trên chuỗi nhị phân

Ngoài ra, bạn có thể nối tất cả các chuỗi nhị phân lại với nhau bằng phương pháp

word = "xyz"
# convert string to bytearray
byte_arr = bytearray[word, 'utf-8']
res = []
for byte in byte_arr:
    binary_rep = bin[byte]  # convert to binary representation
    res.append[binary_rep]  # add to list
print[res]
5 để có biểu diễn nhị phân của toàn bộ chuỗi cùng một lúc

Mã số

________số 8

đầu ra

1111000 1111001 1111010

💡Thông báo độc giả

Phương thức 

word = "xyz"
# convert string to bytearray
byte_arr = bytearray[word, 'utf-8']
res = []
for byte in byte_arr:
    binary_rep = bin[byte]  # convert to binary representation
    res.append[binary_rep]  # add to list
print[res]
6 tích hợp của Python nhận một lần lặp, chẳng hạn như danh sách các số nguyên từ 0 đến 256, chuyển đổi chúng thành các byte trong khoảng từ 
word = "xyz"
# convert string to bytearray
byte_arr = bytearray[word, 'utf-8']
res = []
for byte in byte_arr:
    binary_rep = bin[byte]  # convert to binary representation
    res.append[binary_rep]  # add to list
print[res]
7 đến 
word = "xyz"
# convert string to bytearray
byte_arr = bytearray[word, 'utf-8']
res = []
for byte in byte_arr:
    binary_rep = bin[byte]  # convert to binary representation
    res.append[binary_rep]  # add to list
print[res]
8 và trả về một mảng byte mới dưới dạng lớp 
word = "xyz"
# convert string to bytearray
byte_arr = bytearray[word, 'utf-8']
res = []
for byte in byte_arr:
    binary_rep = bin[byte]  # convert to binary representation
    res.append[binary_rep]  # add to list
print[res]

mảng phụ Python[]. Làm cách nào để chuyển đổi danh sách số nguyên thành mảng byte?


Xem video này trên YouTube

Hàm 

['0b1111000', '0b1111001', '0b1111010']
0 tích hợp của Python nhận một đối số số nguyên và trả về một chuỗi nhị phân có tiền tố 
['0b1111000', '0b1111001', '0b1111010']
1. Nếu bạn gọi 
['0b1111000', '0b1111001', '0b1111010']
2 trên một số không phải là số nguyên 
['0b1111000', '0b1111001', '0b1111010']
3, thì nó phải xác định phương thức 
['0b1111000', '0b1111001', '0b1111010']
4 trả về một số nguyên được liên kết với 
['0b1111000', '0b1111001', '0b1111010']
3. Nếu không, nó sẽ ném một 
['0b1111000', '0b1111001', '0b1111010']
6

Python bin[] - Hướng dẫn ngắn gọn về chức năng bin[] tích hợp sẵn của Python


Xem video này trên YouTube

đề nghị đọc. Mã nhị phân in Python không có '0b'

Phương pháp 2. Sử dụng map[]+bin[]+bytearray[]

Cách tiếp cận. Giải pháp sau đây là một lớp lót. Hãy chia nhỏ và cố gắng hiểu từng phân đoạn của một lớp lót sẽ được sử dụng

  • Sử dụng hàm
    ['0b1111000', '0b1111001', '0b1111010']
    7 để truyền đối tượng
    ['0b1111000', '0b1111001', '0b1111010']
    8 cho hàm
    word = "xyz"
    # convert string to bytearray
    byte_arr = bytearray[word, 'utf-8']
    res = []
    for byte in byte_arr:
        binary_rep = bin[byte]  # convert to binary representation
        res.append[binary_rep]  # add to list
    print[res]
    4.
    word = "xyz"
    # convert string to bytearray
    byte_arr = bytearray[word, 'utf-8']
    res = []
    for byte in byte_arr:
        binary_rep = bin[byte]  # convert to binary representation
        res.append[binary_rep]  # add to list
    print[res]
    3 chuyển đổi chuỗi thành đối tượng byte
  • Khi mỗi byte từ đối tượng byte được chuyển đến hàm bin, nó sẽ chuyển đổi chúng thành các giá trị nhị phân tương đương
  • Chuyển đổi đối tượng được phương thức
    ['0b1111000', '0b1111001', '0b1111010']
    7 trả về thành danh sách bằng cách sử dụng hàm tạo
    word = "xyz"
    # convert string to bytearray
    byte_arr = bytearray[word, 'utf-8']
    res = []
    for byte in byte_arr:
        binary_rep = bin[byte]  # convert to binary representation
        res.append[binary_rep[2:]]  # remove prefix "0b" and add to list
    print[' '.join[res]]  # join all the binaries of res list
    2
  • Để tạo một chuỗi nhị phân duy nhất đại diện cho toàn bộ chuỗi, hãy sử dụng cách hiểu danh sách sao cho
    • Biểu thức là x[2. ] đại diện cho chuỗi nhị phân bắt đầu từ chỉ số 2 để tránh tiền tố nhị phân “0b“
    • Biến bối cảnh, tôi. e. , x đại diện cho từng mục/giá trị nhị phân trong danh sách mà chúng tôi đã tạo từ đối tượng bản đồ
  • Cuối cùng, sử dụng phương pháp
    word = "xyz"
    # convert string to bytearray
    byte_arr = bytearray[word, 'utf-8']
    res = []
    for byte in byte_arr:
        binary_rep = bin[byte]  # convert to binary representation
        res.append[binary_rep[2:]]  # remove prefix "0b" and add to list
    print[' '.join[res]]  # join all the binaries of res list
    3 để có được biểu diễn nhị phân trên danh sách trên để hiểu toàn bộ chuỗi cùng một lúc

Mã số

Input:
given_string = "xyz"

Expected output:
['0b1111000', '0b1111001', '0b1111010']
or
1111000 1111001 1111010
8

đầu ra

1111000 1111001 1111010

💡Thông báo độc giả

Hàm 

word = "xyz"
# convert string to bytearray
byte_arr = bytearray[word, 'utf-8']
res = []
for byte in byte_arr:
    binary_rep = bin[byte]  # convert to binary representation
    res.append[binary_rep[2:]]  # remove prefix "0b" and add to list
print[' '.join[res]]  # join all the binaries of res list
4 biến đổi một hoặc nhiều lần lặp thành một lần lặp mới bằng cách áp dụng "hàm biến đổi" cho các phần tử thứ i của mỗi lần lặp. Các đối số là đối tượng hàm biến đổi và một hoặc nhiều lần lặp. Nếu bạn chuyển n mục lặp làm đối số, thì hàm biến đổi phải là hàm n-ary lấy n đối số đầu vào. Giá trị trả về là một đối tượng bản đồ có thể lặp lại của các phần tử được biến đổi và có thể được tổng hợp

Làm chủ chức năng bản đồ Python [+Video]


Xem video này trên YouTube

Phương pháp 3. Sử dụng tham gia + định dạng + bytearray

Cách tiếp cận

  • Sử dụng hàm
    word = "xyz"
    # convert string to bytearray
    byte_arr = bytearray[word, 'utf-8']
    res = []
    for byte in byte_arr:
        binary_rep = bin[byte]  # convert to binary representation
        res.append[binary_rep[2:]]  # remove prefix "0b" and add to list
    print[' '.join[res]]  # join all the binaries of res list
    5 để chuyển đổi chuỗi đã cho thành đối tượng byte sao cho đối tượng byte đại diện cho từng ký tự của chuỗi dưới dạng byte
  • Sau đó gọi phương thức
    word = "xyz"
    # convert string to bytearray
    byte_arr = bytearray[word, 'utf-8']
    res = []
    for byte in byte_arr:
        binary_rep = bin[byte]  # convert to binary representation
        res.append[binary_rep[2:]]  # remove prefix "0b" and add to list
    print[' '.join[res]]  # join all the binaries of res list
    6 để chuyển đổi đối tượng byte thành biểu diễn nhị phân của nó và sau đó nối từng ký tự đã chuyển đổi bằng phương thức
    word = "xyz"
    # convert string to bytearray
    byte_arr = bytearray[word, 'utf-8']
    res = []
    for byte in byte_arr:
        binary_rep = bin[byte]  # convert to binary representation
        res.append[binary_rep]  # add to list
    print[res]
    5 để tạo thành một chuỗi

Mã số

word = "xyz"
# convert string to bytearray
byte_arr = bytearray[word, 'utf-8']
res = []
for byte in byte_arr:
    binary_rep = bin[byte]  # convert to binary representation
    res.append[binary_rep]  # add to list
print[res]
4

đầu ra

1111000 1111001 1111010

💡Thông báo độc giả

Hàm 

word = "xyz"
# convert string to bytearray
byte_arr = bytearray[word, 'utf-8']
res = []
for byte in byte_arr:
    binary_rep = bin[byte]  # convert to binary representation
    res.append[binary_rep[2:]]  # remove prefix "0b" and add to list
print[' '.join[res]]  # join all the binaries of res list
8 tích hợp sẵn của Python chuyển đổi đầu vào của một định dạng thành đầu ra của một định dạng khác do bạn xác định. Cụ thể, nó áp dụng công cụ xác định định dạng
word = "xyz"
# convert string to bytearray
byte_arr = bytearray[word, 'utf-8']
res = []
for byte in byte_arr:
    binary_rep = bin[byte]  # convert to binary representation
    res.append[binary_rep[2:]]  # remove prefix "0b" and add to list
print[' '.join[res]]  # join all the binaries of res list
9 cho đối số 
1111000 1111001 1111010
0 và trả về một biểu diễn có định dạng của 
1111000 1111001 1111010
0. Ví dụ: 
1111000 1111001 1111010
2 trả về biểu diễn chuỗi 
1111000 1111001 1111010
3

Hàm định dạng Python[]. Hướng dẫn không có BS bằng ví dụ


Xem video này trên YouTube

1111000 1111001 1111010
4 nối các phần tử trong một 
1111000 1111001 1111010
5. Kết quả là một chuỗi trong đó mỗi phần tử trong iterable được "dán lại với nhau" bằng cách sử dụng chuỗi mà nó được gọi là dấu phân cách

Phương thức chuỗi Python [Hướng dẫn cơ bản]


Xem video này trên YouTube

Phương pháp 4. Sử dụng tham gia[]+định dạng[]+ord[]

Cách tiếp cận. Ý tưởng ở đây khá giống với cách tiếp cận được giải thích ở trên. Sự khác biệt duy nhất, trong trường hợp này, là thay vì bytearray, hàm ord được sử dụng để chuyển đổi các ký tự của chuỗi đã cho thành biểu diễn Unicode của chúng

Mã số

word = "xyz"
# convert string to bytearray
byte_arr = bytearray[word, 'utf-8']
res = []
for byte in byte_arr:
    binary_rep = bin[byte]  # convert to binary representation
    res.append[binary_rep]  # add to list
print[res]
4

đầu ra

1111000 1111001 1111010

💡Thông báo độc giả

Hàm 

1111000 1111001 1111010
6 của Python lấy một ký tự [=chuỗi có độ dài một] làm đầu vào và trả về số Unicode của ký tự này. Ví dụ: 
1111000 1111001 1111010
7 trả về số Unicode 
1111000 1111001 1111010
8. Hàm nghịch đảo của 
1111000 1111001 1111010
6 là hàm 
Input:
given_string = "xyz"

Expected output:
['0b1111000', '0b1111001', '0b1111010']
or
1111000 1111001 1111010
80, vì vậy 
Input:
given_string = "xyz"

Expected output:
['0b1111000', '0b1111001', '0b1111010']
or
1111000 1111001 1111010
81 trả về ký tự gốc 
Input:
given_string = "xyz"

Expected output:
['0b1111000', '0b1111001', '0b1111010']
or
1111000 1111001 1111010
82

Hàm ord[] trong Python


Xem video này trên YouTube

Phương pháp 5. sử dụng hexlify

Cách tiếp cận

  • Gọi hàm
    Input:
    given_string = "xyz"
    
    Expected output:
    ['0b1111000', '0b1111001', '0b1111010']
    or
    1111000 1111001 1111010
    83 để chuyển đổi chuỗi đã cho thành đối tượng byte
  • Sử dụng
    Input:
    given_string = "xyz"
    
    Expected output:
    ['0b1111000', '0b1111001', '0b1111010']
    or
    1111000 1111001 1111010
    84 để trả về biểu diễn thập lục phân của dữ liệu nhị phân, sau đó chuyển đổi nó thành một đối tượng số nguyên bằng cách chỉ định 16 làm cơ số
  • Cuối cùng, chuyển đổi nó thành dạng biểu diễn nhị phân bằng hàm
    word = "xyz"
    # convert string to bytearray
    byte_arr = bytearray[word, 'utf-8']
    res = []
    for byte in byte_arr:
        binary_rep = bin[byte]  # convert to binary representation
        res.append[binary_rep]  # add to list
    print[res]
    4

Mã số

word = "xyz"
# convert string to bytearray
byte_arr = bytearray[word, 'utf-8']
res = []
for byte in byte_arr:
    binary_rep = bin[byte]  # convert to binary representation
    res.append[binary_rep]  # add to list
print[res]
1

đầu ra

word = "xyz"
# convert string to bytearray
byte_arr = bytearray[word, 'utf-8']
res = []
for byte in byte_arr:
    binary_rep = bin[byte]  # convert to binary representation
    res.append[binary_rep]  # add to list
print[res]
2

Sự kết luận

Phù. Đó thực sự là một hành trình toàn diện và chúng tôi đã học được tới năm cách khác nhau để chinh phục vấn đề đã cho. Xin vui lòng dùng thử chúng và sử dụng cái phù hợp với bạn

Đăng ký và theo dõi các hướng dẫn thú vị hơn. học tập vui vẻ. 🙂

🌍 Hướng dẫn đề xuất. Python Chuyển đổi chuỗi Hex thành nhị phân

Shubham Sayon

Tôi là một người tạo nội dung và Blogger Python chuyên nghiệp. Tôi đã xuất bản nhiều bài báo và tạo các khóa học trong một khoảng thời gian. Hiện tại tôi đang làm việc với tư cách là một freelancer toàn thời gian và tôi có kinh nghiệm trong các lĩnh vực như Python, AWS, DevOps và Networking

Chủ Đề