バイナリから ASCII への変換、およびその逆の変換
Python には、文字列をバイナリ表現にエンコードしたり、その逆を行うためのさまざまな方法が用意されています。
文字列Binary
提供されたコードは、reduce を使用して文字列をバイナリに変換します。ただし、より簡単な方法は、Python 2 では binascii モジュールを、Python 3 では int.from_bytes を使用することです。
import binascii binary = bin(int(binascii.hexlify('hello'), 16)) # Python 2 binary = bin(int.from_bytes('hello'.encode(), 'big')) # Python 3+
Binary to String
プロセスを逆にするには、 Python 2 では binascii.unhexlify を使用し、Python では int.to_bytes メソッドを使用します。 3:
text = binascii.unhexlify('%x' % n) # Python 2 text = n.to_bytes((n.bit_length() + 7) // 8, 'big').decode() # Python 3+
UTF-8 サポート
Python 3 ですべての Unicode 文字をサポートするには、変換用のカスタム関数を作成できます:
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 ...
このカスタム関数は、Python 2 と Python 3 の両方と互換性があります。
要約すると、Python にはバイナリ文字列変換のためのさまざまなメソッドが用意されています。上記のソリューションは、Unicode 文字のサポートなど、このタスクを処理する効率的かつ柔軟な方法を提供します。
以上がPython でバイナリ文字列と ASCII 文字列を効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。