我正在使用ruby 1.9.2,这就是我找到的。
> ['A'].pack('H')
=> "\xA0"
由于H
首先获得高半字节,并且由于输入A
只是一个半字节,因此应在前面填充额外的半字节。这意味着上面的代码应该与
> ['0A'].pack('H')
但似乎我错过了一些东西。任何人都在意解释。
由于第一种情况的答案是\xA0
,很明显零被填充到右边。但是,当我们首先处理高半字节时,A
应该与0A
相同。
答案 0 :(得分:0)
如果你打包半个字节,一个半字节,这就是你得到的。您需要指定输入字符串在半字节中的持续时间:
'X'.unpack('h')
# => ["8"]
'X'.unpack('h2')
# => ["85"]
'X'.unpack('H')
# => ["5"]
'X'.unpack('H2')
# => ["58"]
pack
要与unpack
相反,所以不要省略长度参数。