gpt4 book ai didi

ruby - 如何在ruby中转换为big endian

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

我有一个小端顺序的字符串,作为十六进制编码的字符串

000000020597ba1f0cd423b2a3abb0259a54ee5f783077a4ad45fb6200000218
000000008348d1339e6797e2b15e9a3f2fb7da08768e99f02727e4227e02903e
43a42b31511553101a051f3c0000000000000080000000000000000000000000
0000000000000000000000000000000000000000000000000000000080020000

我想将每个 32 位 block 从 little-endian 字节交换到 big-endian,结果为

020000001fba9705b223d40c25b0aba35fee549aa477307862fb45ad18020000
0000000033d14883e297679e3f9a5eb108dab72ff0998e7622e427273e90027e
312ba443105315513c1f051a0000000080000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000280

我尝试了多种方法,但都没有奏效。如果有人可以展示示例实现,那就太好了。

干杯。

最佳答案

您还可以通过以下方式使用packunpack:

  • 先去解码十六进制
  • 然后转换为 small endian 的 32 位整数
  • 用大端编码这些整数
  • 将结果编码为十六进制。

在代码中:

s = "000000020597ba1f0cd4..."
[s].pack('H*').unpack('N*').pack('V*').unpack('H*')
# => "020000001fba9705b223..."

关于ruby - 如何在ruby中转换为big endian,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16077885/

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