将二进制转换为 ASCII 并返回
给定的代码片段将字符串转换为二进制表示形式。为了理解其机制,我们来分析一种替代方法。
Python 2:ASCII 字符范围
对于 [ -~] 范围内的 ASCII 字符,Python 2 提供了一个更简单的解决方案:
import binascii n = int(binascii.hexlify('hello'), 16) binary_representation = bin(n)
此代码将字符串 'hello' 转换为十六进制表示,然后转换为二进制表示形式。
反转转换
要将二进制表示形式转换回字符串:
n = int('0b110100001100101011011000110110001101111', 2) string_representation = binascii.unhexlify('%x' % n)
这将转换二进制表示形式返回到十六进制表示形式,然后转换为原始字符串“hello”。
Python 3.2 :
Python 3.2 引入了额外的方法:
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()
Python 3 中的 Unicode 支持:
支持所有Python 3 中的 Unicode 字符:
def text_to_bits(text, encoding='utf-8', errors='surrogatepass'): # ... def text_from_bits(bits, encoding='utf-8', errors='surrogatepass'): # ...
这个函数在文本和二进制表示之间进行转换,支持 Unicode 字符。
以上是如何在 Python 中转换 ASCII 和二进制表示形式?的详细内容。更多信息请关注PHP中文网其他相关文章!