32位/64位系统上的二进制文件?

发布于 2024-11-14 01:28:23 字数 544 浏览 1 评论 0原文

我正在使用 python 结构模块来创建自定义二进制文件。

文件本身具有以下格式:

4 字节(整数) 1 字节(无符号字符) 4 字节(浮点数)

4 字节(整数) 1 字节(无符号字符) 4 字节(浮点数)

................................(100000 行这样的行

4 字节(整数) 1 字节(无符号字符) 4 字节(浮点)


目前,我使用 32 位机器来创建这些自定义二进制文件。我很快就计划切换到 64 位机器

我可以使用两台 {32bit / 64bit} 机器读取/写入相同的文件吗?或者我应该期待兼容性问题?

(我将使用 Ubuntu Linux)

I am using python struct module to create custom binary files.

The file itself has the following format:

4 bytes (integer)
1 byte (unsigned char)
4 bytes (float)

4 bytes (integer)
1 byte (unsigned char)
4 bytes (float)

.......................... (100000 such lines)

4 bytes (integer)
1 byte (unsigned char)
4 bytes (float)


Currently, I am using a 32bit machine to create these custom binary files. I am soon planning on switching to a 64bit machine.

Will I be able to read/write the same files using both {32bit / 64bit} machines? or should I expect compatibility issues?

(I will be using Ubuntu Linux for both)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

羁绊已千年 2024-11-21 01:28:23

只要您的结构格式字符串使用“标准大小和对齐方式”(<>)而不是“本机大小和对齐方式”(@),您的文件可以跨平台使用。

As long as your struct format string uses "standard size and alignment" (< or >) rather than "native size and alignment" (@), your files can be used cross-platform.

ぺ禁宫浮华殁 2024-11-21 01:28:23

请参阅 http://docs.python.org/library/ struct.html#字节顺序大小和对齐

默认情况下,C 类型以机器的本机格式和字节顺序表示,并在必要时通过跳过填充字节来正确对齐(根据 C 编译器使用的规则)。

因此,这取决于您的代码是否可移植。

See http://docs.python.org/library/struct.html#byte-order-size-and-alignment

By default, C types are represented in the machine’s native format and byte order, and properly aligned by skipping pad bytes if necessary (according to the rules used by the C compiler).

So it depends on your code if it's portable or not.

巾帼英雄 2024-11-21 01:28:23

除了 32 位与 64 位之外,您还需要担心更多。您所谈论的广泛类别称为序列化

查看 marshal 和/或 pickle 模块。

You have more to worry about than 32-bit vs. 64-bit. The broad category you are talking about is called serialization.

Have a look at the marshal and/or pickle modules.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文