Ruby – 从文件中读取字节,转换为整数

我试图从文件中读取无符号整数(存储为连续字节)并将它们转换为整数.我试过这个:

file = File.new(filename,"r")
num = file.read(2).unpack("S") #read an unsigned short
puts num #value  will be less than expected

在这做错了什么?

解决方法

你没有读足够的字节.正如你在对tadman的回答的评论中所说,你得到202而不是3405691582

请注意,0xCAFEBABE的前2个字节是0xCA = 202

如果你真的想要一个数字中的所有8个字节,那么你需要读取超过unsigned short的内容

尝试

num = file.read(8).unpack("L_")

下划线假设本机long将是8个字节,绝对不能保证.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...