用0来打包二进制数的前面

时间:2014-02-13 03:58:19

标签: python time struct.pack

我对接口如何读取我发送的数据有疑问。

我想要做的是发送当前时间的界面。然而,当我这样做时,界面使用两个恭维:

Time = time.time()
timer = struct.pack('<d', Time)

接口接收类似于此1010010111111000011111000010111的二进制数字,因为它使用了两个恭维,所以时间完全错误。它得到一个负数,似乎认为它是1942年。

我的问题是我如何将时间转换为二进制,然后将二进制数的前面打包为0,因此它是8字节长,所以我可以打包并将其发送到我的界面。

2 个答案:

答案 0 :(得分:1)

the docs类似,d用于8字节浮点数。 8字节整数使用Qq

答案 1 :(得分:0)

如果您在对Ignacio的回答的评论中指出,您已将错误的d替换为qQ,那么我认为您现在只有字节错误,因为struct.pack 确实始终将其输出填充到正确的长度。请改为struct.pack(">Q", Time)