小编Ade*_*mar的帖子

Ruby:为什么 unpack('Q') 给出的结果与手动转换不同?

我正在尝试编写一个函数,该函数将.unpack('Q')(解包到 uint64_t)而无需访问解包方法。

当我手动从字符串转换为二进制到 uint64 时,我得到的结果与以下结果不同.unpack('Q')

Integer('abcdefgh'.unpack('B*').first, 2) # => 7017280452245743464

'abcdefgh'.unpack('Q').first # => 7523094288207667809
Run Code Online (Sandbox Code Playgroud)

我不明白这里发生了什么事。

我也不明白为什么.unpack('Q')无论输入的大小如何,输出都是固定的。如果我在 'abcdefgh' 之后添加一千个字符,然后解压('Q')它,我仍然会得到[7523094288207667809]

ruby unpack

4
推荐指数
1
解决办法
393
查看次数

标签 统计

ruby ×1

unpack ×1