【发布时间】:2026-02-09 16:20:04
【问题描述】:
我正在使用访问在 sqlite 数据库中压缩的两字节整数数据的遗留 C++ 代码。该代码使用 zlib 的 uncompress 函数来提取数据,这些数据在我的 little-endian 机器上作为 little-endian 值输出。
为了考虑到这段代码可能被移植到大端机器上的可能性,我需要知道数据是否总是以小端顺序解压缩,或者 zlib 是否会以某种方式进行转换。
这是我能找到的唯一适用的花絮(来自他们网站上的 zlib 的常见问题解答):
- zlib 将在大端或小端架构上工作,我可以在它们之间交换压缩数据吗? 是的,是的。
并没有真正回答我的问题...如果需要,我已准备好处理字节序转换。无论您在哪个平台上运行解压缩,都可以安全地假设原始输入数据字节序是您返回的内容吗? (我目前无法访问自己测试的大端机器)。
【问题讨论】:
-
我怀疑 zlib 在字节流上工作,所以在任何情况下它都不会反转任何字节。
标签: zlib endianness compression