首页 >后端开发 >Python教程 >如何在 Python 中高效地在二进制和 ASCII 字符串之间进行转换?

如何在 Python 中高效地在二进制和 ASCII 字符串之间进行转换?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-26 06:06:09739浏览

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

将二进制转换为 ASCII,反之亦然

Python 提供了各种方法将字符串编码为二进制表示,反之亦然。

字符串转二进制

提供的代码使用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+

二进制到字符串

要反转该过程,使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn