Maison >développement back-end >Tutoriel Python >Comment convertir entre les représentations ASCII et binaires en Python ?

Comment convertir entre les représentations ASCII et binaires en Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-30 14:52:10164parcourir

How to Convert Between ASCII and Binary Representations in Python?

Conversion du binaire en ASCII et inversement

L'extrait de code donné convertit une chaîne en représentation binaire. Pour comprendre son mécanisme, analysons une approche alternative.

Python 2 : Plage de caractères ASCII

Pour les caractères ASCII compris dans la plage [ -~], Python 2 fournit un solution plus simple :

import binascii

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

Ce code convertit la chaîne 'hello' en une représentation hexadécimale puis en une représentation binaire.

Inverser la conversion

Pour reconvertir la représentation binaire en chaîne :

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

Cela convertit la représentation binaire revenir dans une représentation hexadécimale, puis dans la chaîne d'origine 'hello'.

Python 3.2 :

Python 3.2 a introduit des méthodes supplémentaires :

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()

Prise en charge d'Unicode dans Python 3 :

Pour prendre en charge tous les Unicode caractères en Python 3 :

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

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

Cette fonction convertit entre les représentations textuelles et binaires, prenant en charge Caractères Unicode.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn