Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menukar Antara ASCII dan Perwakilan Binari dalam Python?

Bagaimana untuk Menukar Antara ASCII dan Perwakilan Binari dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-11-30 14:52:10164semak imbas

How to Convert Between ASCII and Binary Representations in Python?

Menukar Perduaan kepada ASCII dan Kembali

Coretan kod yang diberikan menukar rentetan kepada perwakilan binari. Untuk memahami mekanismenya, mari kita analisa pendekatan alternatif.

Python 2: Julat Aksara ASCII

Untuk aksara ASCII dalam julat [ -~], Python 2 menyediakan penyelesaian yang lebih mudah:

import binascii

n = int(binascii.hexlify('hello'), 16)
binary_representation = bin(n)

Kod ini menukar rentetan 'hello' kepada perwakilan heksadesimal dan kemudian menjadi perwakilan binari.

Menterbalikkan Penukaran

Untuk menukar perwakilan binari kembali kepada rentetan:

n = int('0b110100001100101011011000110110001101111', 2)
string_representation = binascii.unhexlify('%x' % n)

Ini menukarkan perwakilan binari kembali kepada perwakilan heksadesimal dan kemudian ke dalam rentetan asal 'hello.'

Python 3.2 :

Python 3.2 memperkenalkan kaedah tambahan:

n = int.from_bytes('hello'.encode(), 'big')
binary_representation = bin(n)
n = int('0b110100001100101011011000110110001101111', 2)
string_representation = n.to_bytes((n.bit_length() + 7) // 8, 'big').decode()

Sokongan Unicode dalam Python 3:

Untuk menyokong semua aksara Unikod dalam Python 3:

def text_to_bits(text, encoding='utf-8', errors='surrogatepass'):
    # ...

def text_from_bits(bits, encoding='utf-8', errors='surrogatepass'):
    # ...

Fungsi ini menukar antara teks dan perwakilan binari, menyokong aksara Unicode.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Antara ASCII dan Perwakilan Binari dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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