Bagaimanakah Saya Boleh Menukar Antara Rentetan Binari dan ASCII dengan Cekap dalam Python?

Mary-Kate Olsen
Lepaskan: 2024-11-26 06:06:09
asal
651 orang telah melayarinya

How Can I Efficiently Convert Between Binary and ASCII Strings in Python?

Menukar Binari kepada ASCII dan Sebaliknya

Python menawarkan pelbagai kaedah untuk mengekod rentetan ke dalam perwakilan binarinya dan sebaliknya.

String ke Binari

The dengan syarat kod menggunakan reduce untuk menukar rentetan kepada binari. Walau bagaimanapun, cara yang lebih mudah ialah menggunakan modul binasci dalam Python 2 dan int.from_bytes dalam Python 3:

import binascii

binary = bin(int(binascii.hexlify('hello'), 16)) # Python 2
binary = bin(int.from_bytes('hello'.encode(), 'big')) # Python 3+
Salin selepas log masuk

Binary to String

Untuk membalikkan proses, gunakan binasci.unhexlify dalam Python 2 dan kaedah int.to_bytes dalam Python 3:

text = binascii.unhexlify('%x' % n) # Python 2
text = n.to_bytes((n.bit_length() + 7) // 8, 'big').decode() # Python 3+
Salin selepas log masuk

Sokongan UTF-8

Untuk menyokong semua aksara Unicode dalam Python 3, anda boleh mencipta fungsi tersuai untuk penukaran:

def text_to_bits(text, encoding='utf-8', errors='surrogatepass'):
    # Converts text to bits, supporting all Unicode characters
    ...

def text_from_bits(bits, encoding='utf-8', errors='surrogatepass'):
    # Converts bits back to text, supporting all Unicode characters
    ...
Salin selepas log masuk

Fungsi tersuai ini serasi dengan Python 2 dan Python 3.

Ringkasnya, Python menyediakan pelbagai kaedah untuk penukaran rentetan binari. Penyelesaian di atas menawarkan cara yang cekap dan fleksibel untuk mengendalikan tugas ini, termasuk sokongan untuk aksara Unicode.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Antara Rentetan Binari dan ASCII dengan Cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan