Преобразование 4 байта в целое число - PullRequest
0 голосов
/ 02 декабря 2018

Я изучаю Python и хотел бы преобразовать некоторые данные из двоичного заголовочного файла в целочисленные значения.Я знаю структуру файла заголовка (уже прочитанного в C ++) и знаю, какие байты образуют целое число.Я прочитал некоторые ответы, и все они указывают на класс struct и метод unpack.Однако я не знаю, как ввести 4 байта и получить целое число.Байты теперь в списке.mybytes = (byte[0],byte[1],byte[2],byte[3]) Можно ли передать этот список для распаковки и получить целое число?

Ни один из ответов до сих пор не работал для меня.Я попробовал следующее:

val = struct.unpack("i", bytes(mybytes))

, который затем выдает ошибку, что mybytes не является строкой из 4 символов, что достаточно справедливо, потому что это не строка.Но тогда как передать двоичные данные в виде строки?

1 Ответ

0 голосов
/ 02 декабря 2018

Я не уверен, где у вас есть ошибка.То, что вы пробовали, работает, если есть четыре значения.

>>> mybytes = 1,2,3,4
>>> import struct
>>> struct.unpack('i',bytes(mybytes))
(67305985,)
>>> hex(_[0])
'0x4030201'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...