我正在学习Python,并希望将一些数据从二进制头文件转换为整数值。我知道头文件的结构(已经用C ++读取),并且我知道哪些字节构成一个整数。我已阅读了一些答案,所有答案都指向类struct
和方法unpack
。但是我不知道如何输入4个字节并获取整数。字节现在在列表中。 mybytes = (byte[0],byte[1],byte[2],byte[3])
是否可以传递此列表以解包并获取整数?
到目前为止,没有一个答案对我有用。我尝试了以下方法:
val = struct.unpack("i", bytes(mybytes))
然后抛出错误mybytes
不是4个字符的字符串,这很公平,因为它不是字符串。但是,然后如何将二进制数据作为字符串提供呢?
答案 0 :(得分:0)
我不确定您在哪里出错。如果有四个值,您尝试的方法将起作用。
>>> mybytes = 1,2,3,4
>>> import struct
>>> struct.unpack('i',bytes(mybytes))
(67305985,)
>>> hex(_[0])
'0x4030201'