使用python struct pack('<B',1)
将值正确地<01>
打包到一个字节但是使用ctypes我无法得到类似的结果。
是否可以使用ctypes获得相同的结果?
c_byte
似乎是4字节<01000000>
。
添加了示例代码。
class TEST(Structure):
_fields_ = [("int", c_int),("byte", c_byte)]
test = TEST(2,1)
print test.int
print test.byte
#bytes
print hexlify(buffer(test)[:])
现在打印
2
1
0200000001000000
字节应该是0200000001.是因为缓冲区调用还是应该以某种方式声明字节alligment?
答案 0 :(得分:2)
这很可能是因为对齐/填充,请使用_pack_
设置:
class TEST(Structure):
_pack_ = 1
_fields_ = [("int", c_int),("byte", c_byte)]
test = TEST(2,1)
print hexlify(test)
将打印0200000001