在高半字节的情况下,应首先添加第一个零

时间:2011-07-21 14:37:08

标签: ruby

我正在使用ruby 1.9.2,这就是我找到的。

> ['A'].pack('H')
=> "\xA0" 

由于H首先获得高半字节,并且由于输入A只是一个半字节,因此应在前面填充额外的半字节。这意味着上面的代码应该与

相同
> ['0A'].pack('H')

但似乎我错过了一些东西。任何人都在意解释。

由于第一种情况的答案是\xA0,很明显零被填充到右边。但是,当我们首先处理高半字节时,A应该与0A相同。

1 个答案:

答案 0 :(得分:0)

如果你打包半个字节,一个半字节,这就是你得到的。您需要指定输入字符串在半字节中的持续时间:

'X'.unpack('h')
# => ["8"]
'X'.unpack('h2')
# => ["85"]

'X'.unpack('H')
# => ["5"]
'X'.unpack('H2')
# => ["58"]

pack要与unpack相反,所以不要省略长度参数。