0

私は "\001\022" aの値を持っています。私の希望する10進値は274です。

次の関数を試しました。しかし、私は["0112"]を得る

a.unpack("H*")  ==>  ["0112"]  

この「0112」を電卓で10進数に変換すると274になります。

ありがとう

4

1 に答える 1

1

質問のフォーマット文字列「H *」は、「16進文字列(最初に上位ニブル)」用です。したがって、文字列を 4 ビットの 16 進数要素の配列としてデコードしました。

別の形式が必要です。

「16ビットの符号なし、ネットワーク(ビッグエンディアン)バイトオーダー」整数としてデコードするこれを試してください:

a.unpack("n") # => [274]

フォーマット文字列で使用できる文字の詳細については、Ruby ドキュメントの String#unpack を確認してください。

于 2012-09-08T06:50:08.460 に答える