Python: преобразование из двоичного файла в строку

в Python я смог взять строку из 32 бит и преобразовать ее в двоичное число со следующим кодом:

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

    return binary

Так, по строке, 'abcd', этот метод вернет правильное значение 1633837924, однако я не могу понять, как сделать наоборот; возьмите 32-битное двоичное число и преобразуйте его в строку.

Если кто-то может помочь, буду признателен за помощь!

1 ответов


Если вы всегда имеете дело с 32-битным целым числом, вы можете использовать struct модуль для этого:

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

просто убедитесь, что вы используете тот же endianness как упаковать и распаковать в противном случае вы получите результаты, которые находятся в неправильном порядке, например:

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