Python:从二进制转换为String

and*_*nt7 6 python python-2.x

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

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

    return binary
Run Code Online (Sandbox Code Playgroud)

所以对于字符串来说'abcd',这个方法会返回正确的值1633837924,但是我无法弄清楚如何做相反的事情; 获取32位二进制数并将其转换为字符串.

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

shu*_*e87 6

如果您始终处理32位整数,则可以使用该struct模块执行此操作:

>>> import struct
>>> struct.pack(">I", 1633837924)
'abcd'
Run Code Online (Sandbox Code Playgroud)

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

>>> struct.pack("<I", 1633837924)
'dcba'
Run Code Online (Sandbox Code Playgroud)