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'
在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'