需要存储和检索一些可以用已知方式进行字符串格式化的数据。但是数据需要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位对齐?
答案 0 :(得分:0)
struct.pack
完全了解C编译器的字节对齐方式,并且无需询问即可将打包字节添加到数据中。这就是为什么您的结构为32字节长的原因,即使您的数据需要4 +1 + 4 + 6 + 8(= 23)字节的数据。仔细查看,您将看到(例如)string
已在右侧填充了一个额外的空字节,以便双精度字将占据该结构的最后8个字节。所以我不确定我是否确信对齐错误。
您可以自己负责填充(格式x
),但我建议struct.pack
确切知道它在做什么。
如果打包的数据没有按预期的方式被解释,则 更有可能是struct规范出现问题或者字节顺序不是您期望的。
>