在Python中,我已经能够接收一个32位的字符串,并使用以下代码将其转换为二进制数:
def doConvert(string):
binary = 0
for letter in string:
binary <<= 8
binary += ord(letter)
return binary
因此对于字符串'abcd'
,此方法将返回正确的值1633837924,但是我无法弄清楚如何执行相反的操作;接受32位二进制数并将其转换为字符串。
如果有人可以提供帮助,我将非常感谢您的帮助!
答案 0 :(得分:6)
如果您总是处理32位整数,可以使用https://futurestud.io/blog/retrofit-2-log-requests-and-responses/模块执行此操作:
>>> import struct
>>> struct.pack(">I", 1633837924)
'abcd'
请确保您使用相同的struct
进行打包和解包,否则您将获得错误顺序的结果,例如:
>>> struct.pack("<I", 1633837924)
'dcba'