Python: 从二进制转换为字符串

Python: Converting from binary to String

在Python中,我已经能够接受一个32位的字符串,并使用以下代码将其转换为二进制数:

def doConvert(string):
    binary = 0
    for letter in string:
        binary <<= 8
        binary += ord(letter)

    return binary

所以对于字符串 'abcd',此方法将 return 正确的值 1633837924,但是我不知道如何做相反的事情;输入一个 32 位二进制数并将其转换为字符串。

如果有人能提供帮助,我将不胜感激!

如果您总是处理 32 位整数,您可以使用 struct 模块来执行此操作:

>>> import struct
>>> struct.pack(">I", 1633837924)
'abcd'

只需确保您使用相同的 endianness 来打包和解包,否则您将得到顺序错误的结果,例如:

>>> struct.pack("<I", 1633837924)
'dcba'