ruby – 将4个字节转换为32位整数的更优雅方式

ruby – 将4个字节转换为32位整数的更优雅方式,第1张

概述我通过执行以下代码将包含四个字节值的数组转换为32位数: a = [0, 16, 82, 0]i = a.map { |e| "%02x" % e }.join.to_i(16)# => 1069568 它按预期工作,但我想知道是否有更优雅的方式来执行此任务.也许不使用字符串. 如果你有一个字节,那就是结果.如果向右侧添加一个字节,则会使原始结果向左移动两个位置(这意味着乘以0x100,或16 我通过执行以下代码将包含四个字节值的数组转换为32位数:

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

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

解决方法 如果你有一个字节,那就是结果.如果向右侧添加一个字节,则会使原始结果向左移动两个位置(这意味着乘以0x100,或16 ** 2 = 256),并添加新字节.您可以多次重复此 *** 作,因为有字节.

a.inject{|acc,byte| acc * 0x100 + byte}# => 1069568
总结

以上是内存溢出为你收集整理的ruby – 将4个字节转换为32位整数的更优雅方式全部内容,希望文章能够帮你解决ruby – 将4个字节转换为32位整数的更优雅方式所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1244889.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存