gpt4 book ai didi

Ruby 的打包和解包解释

转载 作者:数据小太阳 更新时间:2023-10-29 06:51:33 26 4
gpt4 key购买 nike

即使阅读了标准文档,我仍然无法理解 Ruby 的 Array#pack 是如何实现的和 String#unpack完全有效。这是给我带来最大麻烦的示例:

irb(main):001:0> chars = ["61","62","63"]
=> ["61", "62", "63"]
irb(main):002:0> chars.pack("H*")
=> "a"
irb(main):003:0> chars.pack("HHH")
=> "```"

我希望这两个操作返回相同的输出:“abc”。他们每个人都以不同的方式“失败”(并不是真正的失败,因为我可能预料到了错误的事情)。那么两个问题:

  1. 这些输出背后的逻辑是什么?
  2. 我怎样才能达到我想要的效果,即将一个十六进制数序列转换为相应的字符串。更好的是 - 给定一个整数 n,如何将其转换为与文本文件相同的字符串,当被视为数字(例如,在十六进制编辑器中)时等于 n?

最佳答案

今天早上我们正在处理类似的问题。如果数组大小未知,可以使用:

ary = ["61", "62", "63"]
ary.pack('H2' * ary.size)
=> "abc"

您可以使用以下方式反转它:

str = "abc"
str.unpack('H2' * str.size)
=> ["61", "62", "63"]

关于Ruby 的打包和解包解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13729475/

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