【发布时间】:2011-02-21 14:39:45
【问题描述】:
为了使用 Ruby 的 String.unpack 解压缩具有混合双精度和整数的复杂二进制字符串,我需要确定二进制字符串中的偏移量。通常,双精度数是 8 个字节,整数是 4 个字节,但为了使我的代码与机器无关,我想从我的 Ruby 代码中查询这些大小。
在 Ruby 中确定整数和双精度数大小的最简单方法是什么,即请求对 C 的 sizeof( type ) 方法的请求响应?
【问题讨论】:
-
数据从何而来? Ruby 脚本是否必须在产生值的架构上运行?
-
你确定这是你想要做的吗?正如@Cristoph 所指出的,大小取决于生成二进制字符串的程序和平台,而不是使用它们的ruby 程序和平台。任何二进制接口规范都应在某处明确指定布局(项目大小、字节序、填充等)
-
是的,问题是假设二进制字符串是在与接收 Ruby 脚本相同的机器上生成的。