首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Ruby中确定sizeof( double )和sizeof( int )的最简单方法?

问从Ruby中确定sizeof( double )和sizeof( int )的最简单方法?
EN

Stack Overflow用户
提问于 2011-02-21 22:39:45
回答 5查看 4.3K关注 0票数 1

为了使用Ruby的String.unpack解压包含混合双精度和整数的复杂二进制字符串,我需要确定二进制字符串中的偏移量。通常,双精度型是8字节,整数是4字节,但是为了使我的代码独立于机器,我想从我的Ruby代码中查询这些大小。

在Ruby中确定整数和双精度数大小的最简单方法是什么,即,请求对C的sizeof( type )方法的响应?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-02-24 00:16:10

我已经找到了一个可行的解决方案,通过使用String#unpack的逆方法Array#pack。通过打包1个整数或1个双精度的字符串,可以从ruby本身确定整数和双精度的大小,这与使用sizeof(int)或sizeof(double)的结果相同(因为在C中实现了Array#pack ):

代码语言:javascript
复制
[1.to_i].pack("i").size # 4
[1.to_f].pack("d").size # 8
票数 3
EN

Stack Overflow用户

发布于 2011-02-22 05:03:32

这是如此明显,以至于我可能没有抓住要点:

代码语言:javascript
复制
puts 1.size #=> 4
puts (256**10 - 1).size   #=> 12
票数 2
EN

Stack Overflow用户

发布于 2011-02-22 01:35:28

我不熟悉Ruby语言,也不熟悉它的构建/分发系统。然而,Rake的存在表明,可以在安装包时创建自定义文件-例如,将以下命令的结果导出为Ruby常量的配置文件:

代码语言:javascript
复制
echo __SIZEOF_INT__ | gcc -E -P -
echo __SIZEOF_DOUBLE__ | gcc -E -P -
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5067249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档