对齐字节数组以兼容16位

时间:2019-06-02 03:09:40

标签: python arrays struct alignment

需要存储和检索一些可以用已知方式进行字符串格式化的数据。但是数据需要16位对齐,因为存储设备不支持该数据。为了有效地存储数据,我使用struct pack将数据打包为已知格式。但是,我应该如何将数据对齐为16位,以便检索和存储不会破坏数据? 例如。

Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged

    End Sub
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button1.Click

    End Sub

如何将这些数据转换为16位对齐?

1 个答案:

答案 0 :(得分:0)

struct.pack完全了解C编译器的字节对齐方式,并且无需询问即可将打包字节添加到数据中。这就是为什么您的结构为32字节长的原因,即使您的数据需要4 +1 + 4 + 6 + 8(= 23)字节的数据。仔细查看,您将看到(例如)string已在右侧填充了一个额外的空字节,以便双精度字将占据该结构的最后8个字节。所以我不确定我是否确信对齐​​错误。

可以自己负责填充(格式x),但我建议struct.pack确切知道它在做什么。

如果打包的数据没有按预期的方式被解释,则 更有可能是struct规范出现问题或者字节顺序不是您期望的。

>