Python: 将结构对象缓冲区转换为无符号整数

0 投票
1 回答
537 浏览
提问于 2025-04-16 04:43

我刚开始学习Python,所以我想知道如何从下面定义的结构体对象中提取缓冲区,把整个缓冲区转换成一个整数。

g = 12463
h = 65342
i = 94854731
j = 9000
class Blah(Structure):
    _fields_ = [
                ("a", ctypes.c_int32, 17),
                ("b", ctypes.c_int32, 19),
                ("c", ctypes.c_int64, 54),
                ("d", ctypes.c_int64, 33)]

x = Blah(g, h, i, j)

y = [an unsigned python integer from x]

那么,当Blah对象的字节缓冲区的大小本身大于64位时,我该如何得到y的整数值呢?

1 个回答

0

与其使用ctypes结构,不如用位移操作来组合整数。

y = g << 160 + h << 128 + i << 64 + j

撰写回答