使用unpack写一个十六进制字符的字节数组?

时间:2009-10-15 17:15:07

标签: ruby

我想取一个像:

这样的值
ff0000

并将其转换为包含这些十六进制值的字节数组:

\xff\x00\x00

我不清楚如何使用str.unpack

执行此操作

2 个答案:

答案 0 :(得分:4)

"ff0000".scan(/../).map { |match| match.hex } #=> [255, 0, 0]

("ff0000".scan(/../).map { |match| match.hex }).pack('C*') #=> "\377\000\000"

取决于您想要的格式。

答案 1 :(得分:3)

我不确定unpack可以做到这一点。试试这个:

"ff0000".gsub(/../) { |match| match.hex.chr }