在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位二进制数并将其转换为字符串.
如果有人可以提供帮助,我将不胜感激!
如果您始终处理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)