-6ren">
gpt4 book ai didi

ruby - 将 4 字节转换为 32 位整数的更优雅的方法

转载 作者:数据小太阳 更新时间:2023-10-29 07:43:00 24 4
gpt4 key购买 nike

我通过执行以下代码将由四个字节值组成的数组转换为 32 位数字:

a = [0, 16, 82, 0]
i = a.map { |e| "%02x" % e }.join.to_i(16)
# => 1069568

它按预期工作,但我想知道是否有更优雅的方式来执行此任务。也许不使用字符串。

最佳答案

使用 packunpack1 :

a = [0, 16, 82, 0]

a.pack('C4').unpack1('L>')
#=> 1069568

C4 表示 8 位无符号(4 次),L> 表示 32 位无符号(大端)。

但是,pack 返回一个二进制字符串,所以这不是无字符串的。

关于ruby - 将 4 字节转换为 32 位整数的更优雅的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53607543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com