ホームページ >バックエンド開発 >Python チュートリアル >Python でバイナリ文字列と ASCII 文字列を効率的に変換するにはどうすればよいですか?

Python でバイナリ文字列と ASCII 文字列を効率的に変換するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-26 06:06:09683ブラウズ

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

バイナリから 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。